ロボ図鑑

Tapo C200をHome Assistantへつなぐ — ONVIF映像とPTZ試験

公開: 2026-09-02

Tapo C200をHome Assistantへ入れるときは、映像を見る口首を振る口を同じ成功判定にしない。TP-Link日本のRTSP/ONVIF FAQは対象製品欄にC200を含め、非バッテリー式Tapoカメラの多くがONVIF Profile Sへ対応すると案内する。ただし同じページは、対象製品欄への掲載が機能対応の約束ではないとも明記している。C200個体とHome Assistantの互換性は、実機で映像が出るまで確定しない。

本稿は2026年9月2日に公式文書を確認した手順で、ロボ図鑑ではC200実機との往復確認を終えていない。Home Assistantにはonvif.ptzアクションがある一方、TP-Link日本は専用アプリ以外のパン・チルトを非対応と明記する。映像が出てもPTZまで保証されたことにはならない。

最初に分ける3つの口

  1. 映像: TapoのカメラアカウントとONVIF Profile Sを使い、Home Assistantにcameraエンティティを作れるか試す。
  2. PTZ: Home Assistantのonvif.ptzを小さい移動量で試す。日本向けC200では、TP-Linkが第三者互換性を保証していない前提で扱う。専用アプリ以外のパン・チルトは日本公式FAQで非対応とされている。
  3. AI: PTZが実機で通った場合だけ、確認済みの小さなHome Assistantスクリプトに包む。AssistのLLM会話経路とMCP経路は別々に設定・検証する。

Home Assistantの「TP-Link Smart Home」統合はTapoカメラに対応しているが、2026年9月2日の公式対応カメラ一覧にC200は載っていない。未掲載機種も動く可能性はあると公式は注記するものの、確認済み経路とは数えない。本稿では、TP-Link日本FAQがC200を対象製品欄に含めるONVIF経路を試験する。

先に用意するもの

TP-Link日本はカメラアカウントを6〜32文字で作るよう案内している。この資格情報は他サービスと使い回さず、Home Assistantの統合設定だけへ保存する。ONVIFのサービスポートは2020、RTSPは554である。Home AssistantとC200が同じLANにいる構成では、ルーターでこれらのポートをインターネットへ開けない。

また、Tapo Care・microSD・NVR/NAS/ONVIFソフトウェアは同時に3系統すべてを使えないという公式制約がある。すでにmicroSDとTapo Careを併用している場合は、ONVIFを疑う前にこの組み合わせを切り分ける。

1. まず映像だけをONVIFへ追加する

  1. Home Assistantで設定 → デバイスとサービス → 統合を追加 → ONVIFを開く。自動検出されたC200があれば選ぶ。
  2. 検出されない場合は、C200の固定IP、ONVIFポート2020、カメラアカウントを手動で入力する。
  3. 追加後、作成されたcameraエンティティでライブ映像を確認する。複数プロファイルが出たら、不要なものは無効化する。

Home AssistantのONVIF統合はProfile S機器を対象にし、ffmpeg統合を前提とする。No usable cameras were foundが出る場合、Home Assistant公式は少なくとも1本の映像プロファイルをH.264にするよう案内している。ここでの完了条件はライブ映像が出ることだけで、PTZの成否はまだ判定しない。

2. PTZは小さい移動を1回だけ試す

Home Assistantで設定 → 開発者ツール → アクションを開き、onvif.ptzを対象のC200へ実行する。最初は低速・小移動にする。

action: onvif.ptz
target:
  entity_id: camera.tapo_c200
data:
  pan: RIGHT
  distance: 0.1
  speed: 0.1
  move_mode: RelativeMove

camera.tapo_c200は実際に作られたエンティティIDへ置き換える。カメラが少し右へ動いたら、その個体・ファーム・Home Assistant構成ではPTZが成立した記録になる。動かない場合は距離や速度を上げて乱打せず、映像専用のONVIF接続として使う。

公式文書は対象範囲が異なる。Home Assistant公式はPTZ対応ONVIFカメラ向けにonvif.ptzを提供する。TP-Link日本の一般FAQはProfile Sの基本機能にPTZを含め、PTZできない場合の切り分けも案内する。一方、C200を対象製品欄に含む設定ガイドは、専用アプリ以外のパン・チルトを非対応と明記する。したがって、アクションの存在やProfile Sの一般仕様をC200の動作保証へ読み替えず、実機で動いた個体だけを成功とする。動いてもTP-Linkの第三者互換性保証を得たことにはならない。

3. AIには確認済みスクリプトだけを渡す

PTZが実機で通った場合だけ、方向ごとに小さなHome Assistantスクリプトを作る。最初から任意方向・任意速度を受け取る汎用ツールにしない。

alias: Tapo C200を少し右へ向ける
description: 室内のTapo C200へ低速の右向きPTZ命令を1回送る。実行前に撮影範囲を人が確認する。
sequence:
  - action: onvif.ptz
    target:
      entity_id: camera.tapo_c200
    data:
      pan: RIGHT
      distance: 0.1
      speed: 0.1
      move_mode: RelativeMove
  - stop: PTZ命令を送信しました。カメラが実際に動いたことは確認していません。

この説明文は人の確認を強制する仕組みではない。実行前に操作する人が撮影範囲を確認できる運用だけで使う。人物検知などの決定的なゲートを別に持たない構成では、無人確認済みとは扱わない。

AssistのLLM会話経路

LLM会話統合をAssistモードで設定し、スクリプト画面の設定 → 音声アシスタントから、そのスクリプトだけをAssistへ公開する。Home Assistant公式は、公開したスクリプトをLLM会話エージェントの呼び出し可能なツールへ変換すると説明している。Assist Debugで、意図した依頼に対して実際のtool callが起き、Stop actionの「命令送信・動作未確認」という結果が返ることまで確認する。

MCP経路

MCPは別の統合である。Model Context Protocol Serverを追加し、Control Home Assistantを有効にした上で、使うLLM APIと公開範囲を設定する。/api/mcpは設定時に選んだLLM API、/api/mcp/assistは組み込みAssist APIを提供する。MCP Serverは選択したLLM APIが公開するツールを配るが、Assistでスクリプトを有効にしただけで全MCPクライアントへ必ず現れるとは公式文書から断定できない。クライアントのツール一覧と実際のtool callで確認し、見えない場合にカメラ全体や汎用PTZを広く公開して埋め合わせない。

MCP接続には認証が要る。外部から使うならOAuth対応のHTTPS公開URL、またはVPN内のローカルMCPプロキシを使う。long-lived access tokenをソースコード、設定例、リポジトリへ書かず、実行環境の秘密として渡す。映像そのものをLLMへ読ませる場合は、カメラ×LLMレシピのように静止画抽出とvision処理を別段にする。

完了判定

ロボ図鑑ではこの手順をまだ実機確認していない。映像・PTZ・AIツール呼び出しの3段をすべて往復確認するまで、実測済みとは扱わない。

出典(2026-09-02確認)

他のガイド