コンテンツにスキップ

テレビに防犯カメラを自動割り込みポップアップさせてみた(ついでに自爆IP BANされかけた話)

Amazonのアソシエイトとして、Smart Home Laboは適格販売により収入を得ています。当サイトにはアフィリエイトリンクが含まれています。

聞いてほしい。私は洗練とはほど遠い、純度100%のズボラなソファ地縛霊(カウチポテト)だ。週末に海外ドラマを3話連続で一気見している最中、誰かが家に来たとする。そのとき私が絶対にやりたくないこと……それは、ソファの隙間に消えたスマホを発掘することであり、さらに最悪なのは、わざわざ立ち上がって窓の外を覗きに行くことだ。

そんな私がいきついた究極のスマートホームの夢。それこそが、SF映画に出てくる司令部のような環境だ。インターホンが鳴ると、テレビ画面の隅っこにスマートなピクチャーインピクチャー(PiP)の小窓がフワッと浮かび上がり、外の様子をサッと見せて自動で消えていく——観ている映画を一時停止することすらなく、だ。

この「欲望に忠実な怠惰ファンタジー」を叶えるために導入したのが、今回紹介する QuickBars だ。

嬉しいおまけ機能として、このアプリはテレビリモコンの物理ボタンを乗っ取る(ジャックする)こともできる。我が家のリモコンにある、使ってもいない有料サービスの広告と化していた「開かずのNetflixボタン」は、今や部屋の照明をトグルし、好きなアプリを一発起動する神ボタンへと生まれ変わった。ボタンのリマップも便利なお供機能だが、やはり主役はハンズフリーで自動割り込みしてくるカメラのポップアップ映像だ。

……まあ、設定自体は実質1日程度で終わる内容なのだが、裏で自分で自分にDDoS攻撃を仕掛け、自作自演でHome Assistantに締め出され、絶望して放置する期間を挟んだため、完成までに約2週間もかかってしまった。

今回は、あなたのテレビを爆速でハイテク化させつつ、私と同じ自爆トラップにハマらないための手順をバッチリ伝授しよう!

QuickBars は、Home Assistantと直接連携できる無料のAndroid TVアプリだ(一部機能は有料プラン向け)。最大の特長は、テレビでどんなアプリ(NetflixやYouTubeなど)が動いていようが、その最前面に軽量なオーバーレイ(割り込み画面)を描画できることだ。

映画の再生を邪魔することなく、Home Assistantからのバックグラウンド信号を受けてリアルタイムのカメラ映像を小窓で浮かび上がらせたり、照明やエアコン、スマートデバイスを操作できるインタラクティブなコントロールバーをポップアップさせたりできる。もちろん、リモコンの物理ボタン入力を横取りして、スマートホームのアクションを割り当てることも可能だ。

ダウンロードを始める前にひとつ注意点:現在、アプリの画面UIはすべて英語表記のみだ。「えっ、英語はちょっと…」と拒絶反応が出た人も安心してほしい。最初のアカウント連携さえ済ませてしまえば、あとは自動でカメラ映像が浮かび上がるだけ。「裏でサクッと設定を終わらせて、自分も家族もスマートTVの便利さだけをしゃぶり尽くす」という割り切りスタイルでいこう!

  • Android TV、Google TV(Amazon / 楽天)または Fire TV(多分)
  • テレビと同じローカルネットワークからアクセスできる、稼働中のHome Assistant環境
  • 専用のHome Assistantユーザーを作成するための数分間の時間
  • 偉大なる目的のために犠牲にしてもよいリモコンのボタン(1つ以上)

🔌 ステップ1:アプリのインストールと接続

Section titled “🔌 ステップ1:アプリのインストールと接続”

まずは Google Play Store からQuickBarsを検索し、Android TVにインストールしよう。

アプリを開いたら、左メニューの Settings に行き、要求される2つのシステム権限(Permissions)をオンにする。これでQuickBarsが他のアプリの上に画面を描画し、リモコンのキー入力をキャッチできるようになる。

次に、Home AssistantのURLを入力する。プロの助言: 今後の謎の接続エラーという名の黒魔術を予防するために、アドレスの末尾にはポート番号(例::443:8123)を明示的に付け加えておこう。

認証画面になると、QuickBarsが便利なQRコードを表示してくれる。スマホで読み取るとブラウザが開き、長期アクセストークンを入力する準備が整う。

👤 QuickBars専用のHome Assistantユーザーを作ろう

Section titled “👤 QuickBars専用のHome Assistantユーザーを作ろう”

ここで絶対にやってはいけないのが、自分自身メインの個人アカウントを使い回すことだ!テレビのようなサブデバイス用に専用のアカウントを作成することは、スマートホームにおけるセキュリティの基本中の基本(衛生管理)である。

  • 被害の局限化とセキュリティ: 万が一アプリの脆弱性などでクレデンシャルが漏洩しても、被害はそのデバイスだけに留まる。メインアカウントのパスワードを変更することなく、TV用のトークンを1つ無効化するだけで対処可能だ。
  • きれいな監査ログ: 自動化によってカメラ映像が画面にポップアップした際、Home Assistantのログブックには「あなた」ではなく「QuickBarsが実行した」と明確に記録される。

正しい設定手順は以下の通りだ:

  1. Home Assistantで、**ローカル環境(Local)、アクティブ(Active)管理者(Administrator)**権限を持つ新規ユーザーを作成する。私はありったけの創造性を絞り出して「QuickBars」と名付けた。
  2. シークレットウィンドウなどを使い、ブラウザでその新規ユーザーとしてログインする(メインセッションと混ざらないようにするため)。
  3. プロフィール画面を開き、一番下までスクロールして セキュリティ から「長期アクセストークン」を生成する。
  4. QRコード経由で開いたスマホのブラウザ画面にそのトークンを貼り付け、Test Connection を押す。
  5. Persistent Background Connections(常時バックグラウンド接続)をオンにする。これでQuickBarsが常にHome Assistantとリンクし、カメラの割り込みシグナルを待ち受けるようになる。

えっ、テレビアプリに「管理者権限」が必要なの?! 私のド直球なセキュリティパラノイア(被害妄想)が即座に発動した。「なんでテレビアプリごときに管理者権限が必要なんだ?リビングから核ミサイルでも発射する気か?」と。そこで私は権限のない一般ユーザーを作成してみた。アプリもドキュメントも何も警告してくれず、ただ静かに黙り込んで動かなくなった。……実は、Home Assistantからテレビへ「リアルタイムでカメラのイベントをプッシュ通知させる」には、HAの内部イベントバスを読み取る必要があり、これが管理者限定の権限だったのだ。無駄な毛根を減らさないためにも、最初から素直に管理者権限を与えておこう。

🔨 私を2週間締め出した「怒涛のバックグラウンド連打ループ」

Section titled “🔨 私を2週間締め出した「怒涛のバックグラウンド連打ループ」”

ここから、私の単純な休日の設定作業がどのようにして2週間の悲劇へと発展したのかをお話ししよう。

一般ユーザーで試してカメラ映像がサクッと動かなかったとき、私は「アクセストークンが間違っていたのかな?」と思い込んだ。そして、トークンを削除し、新しいトークンを作り、ユーザーを消し、また作り直し……というカオスな泥沼ループに突入した。

だが、私は知らなかったのだ。QuickBarsの Persistent Background Connections(常時バックグラウンド接続)機能は、認証に失敗した途端、未練がましい元カノのようにしつこくなるということを。トークンが消された瞬間、アプリは静かに諦めるどころか、1分間に何十回もの不正ログインリクエストをHome Assistantへ叩きつける「怒涛の狂暴バックグラウンド連打ループ」モードに入っていたのだ!

Home Assistantには、ブルートフォース(総当たり)攻撃を防ぐための標準防衛機能(ip ban)が備わっている。リビングルームから突然押し寄せたこの凶暴で大量の未認証リクエストの嵐を見て、Home Assistantは私のGoogle TVを「ロシアのクラッカー」と誤認し、そのIPアドレスを即座にBAN(アクセス拒否)した

こうして、地獄の不可視フィードバックループが完成した:

  1. QuickBarsが古いトークンで認証失敗する。
  2. QuickBarsが即座にバックグラウンドで超高速リトライ連打を開始する。
  3. HAがテレビのローカルIPアドレスを永久BANする。
  4. 私がQuickBarsにピカピカの新しいトークンを入力するが、テレビのIP自体がBANされているため、HAはすべてのリクエストを玄関払いに拒否する。
  5. QuickBarsは拒否されても連打を止めず、BANタイマーを自ら永久にリセットし続ける。

テレビ画面には「お前はBANされたぞ!」という親切な表示など一切出ないため、私は「あれ〜おかしいな、トークンが壊れてるのかな?」と思い込み、さらに新しいトークンを発行し続け、空いた時間にちまちま検証しては敗北し……を繰り返して2週間が過ぎ去ったのだった。

私と同じ自爆の悪夢を見ないための予防策:

  • 最初から「ローカル」「アクティブ」「管理者権限」のユーザーを作成すること。
  • トークンを検証している間は、http 設定でHAのログイン試行制限(IP BAN機能)を一時的に緩めておくこと。
  • トークンを変更したら、必ずAndroid TV本体を再起動すること。 これでQuickBarsのバックグラウンドキャッシュがクリアされ、古いトークンでの狂暴な連打ループがピタッと止まる。

👀 ステップ2:QuickBarsに見せるエンティティを選ぶ

Section titled “👀 ステップ2:QuickBarsに見せるエンティティを選ぶ”

接続が完了したら、アプリ内の Entities メニューへ行き、QuickBarsから操作・表示したい特定のデバイスを選択しよう。Home Assistant内の全デバイスを自動で読み込むわけではないため、テレビ画面をシンプルかつ高速に保つことができる。

QuickBars import entities settings

私は数台のカメラに加え、リビングの照明とエアコンを読み込ませた。ソファから見えない場所への視界と、手元で操作したい最小限の環境設定だ。

QuickBars import entities settings expanded

🏎️ Step 3: Home Assistantに操縦桿を渡す(自動カメラ割り込み!)

Section titled “🏎️ Step 3: Home Assistantに操縦桿を渡す(自動カメラ割り込み!)”

さあ、メインイベントだ!QuickBarsはHome Assistantからのトリガーを待ち受け、リモコンに一切触れることなくカメラ映像をテレビへ自動割り込み表示させることができる。

🖼️ ブループリント1:PiP(小窓)でカメラを表示する

Section titled “🖼️ ブループリント1:PiP(小窓)でカメラを表示する”

この カメラ用ブループリント を使うと、テレビ画面上に浮遊する小窓(PiP)でカメラのライブ映像を表示するスクリプトを作成できる。ブループリントをインポートしてスクリプトを作成し、QuickBarsに読み込ませたカメラエンティティと紐付けよう。

プロの助言: ブループリント内で必ず「自動非表示タイマー(Auto-hide duration)」を設定すること(例:45秒)。誰もいないガレージの映像が、映画のクライマックスシーンを永遠に遮り続ける地獄を見たくないなら、タイマーの設定は必須だ。

QuickBars camera PiP overlay settings

スクリプトを保存したら、あとはHome Assistantのオートメーションのトリガー(インターホンが押された、屋外の人感センサーが反応した、人・動物・車の検出など)と組み合わせるだけ。これで、外で何かが起きた瞬間にテレビが自動で知らせてくれるようになる!

QuickBars camera PiP overlay

📊 ブループリント2:QuickBar自体の表示・非表示

Section titled “📊 ブループリント2:QuickBar自体の表示・非表示”

もうひとつ、画面全体のコントロールパネルを自動で開閉させる ブループリント も用意されている。画面上にメニューを出すカッコいいオートメーションのシナリオを思いついた人は、ぜひ公式の ドキュメント をチェックしてみてほしい。私にはそんなおしゃれなシナリオはありませんでしたが。

🕹️ ステップ4:リモコンをスマートリモコン化する(おまけ機能)

Section titled “🕹️ ステップ4:リモコンをスマートリモコン化する(おまけ機能)”

Trigger Keys メニューでは、リモコンの物理ボタンを横取りして、カスタムしたスマートホームのアクションを割り当てることができる。

無料版ではトリガーキーに設定できるボタンが1つまでに制限されているので、慎重に選ぼう。

安全上の警告: 十字キー、電源ボタン、戻るボタンなどをリマップするのは絶対にやめよう。家族からの怒りを買い、リモコンが高価な文鎮へと変わる最短ルートだ。YouTubeボタンやNetflixボタンなど、専用のアプリショートカットボタンを狙うのが鉄則だ。

QuickBars trigger keys settings

1つのボタンに対して最大3つのアクション(1回押し、2回押し、長押し)を設定できる。アプリの起動、エンティティのオン/オフ、QuickBarメニューの呼び出し、カメラ映像の直接呼び出しなどが選択可能だ。ポップアップが出ている最中に同じボタンを押すと画面が閉じるので、直感的で使いやすい。

我が家の設定例:

ボタン 1回押し(Single Press) 2回押し(Double Press) 長押し(Long Press)
YouTube YouTubeを起動(デフォルト) リビングの間接照明を切り替え 裏庭カメラを表示
Netflix お気に入りのメディアアプリを起動 メインの天井照明を切り替え 玄関ポーチカメラを表示
QuickBars trigger keys settings details

手に持っているリモコンを2回カチカチッとするだけで、リビングにいるときに行うスマートホーム操作の半分が完了するようになった!

🛠️ ステップ5:画面上のQuickBarメニューを作る

Section titled “🛠️ ステップ5:画面上のQuickBarメニューを作る”

画面上に手動の操作パネルを作りたい場合は、アプリ内の「QuickBars」セクションへ行こう。読み込んだエンティティを選び、スタイルや画面のポップアップ位置を指定する。

QuickBars QuickBar settings

覚えておきたいポイント:

  • 無料版ではQuickBarパネルは1つまで作成可能。
  • QuickBarメニュー内のカメラボタンは、メニュー行の中で動画がストリーミング再生されるわけではない。 クリックすることでカメラのフルオーバーレイ表示を呼び出す「起動ボタン」として機能する。
On-screen QuickBar

ボタンのリマップ機能は本当に便利で、毎日使い倒している。しかし、やはり真のヒーローは「ハンズフリーの自動割り込み」だ。ガレージや玄関に人、車、配達員が到着すると、観ている番組の再生を1秒たりとも止めることなく、美しいPiP画面で外の様子をサッと見せてくれる。

Home AssistantのIP BANハンマーとQuickBarsの猛烈リトライループに悶絶した2週間だったが、結果的には100%その価値があったと言い切れる。無料アプリ1つと、ドキュメントに書かれていない管理者権限の罠を乗り越えただけで、我が家のテレビはSFに出てくるホームモニタリング基地へと進化したのだ。