投稿

SwitchBotロックの解錠をHome Assistantで自動化してみた

イメージ
はじめに 我が家では、玄関の鍵としてSwitchBotロックUltraを使用しています。 以前から、Home Assistantと連携して玄関の解錠をオートメーション化したいと考えていました。 しかし、SwitchBotアプリでは施錠はオートメーションに設定できますが、 解錠はオートメーションの対象外 となっています。 これは、意図しない解錠による防犯上のリスクを考慮した仕様だと考えられます。実際、解錠を自動化すると、センサーの誤検知や設定ミスなどにより、意図せず玄関の鍵が開いてしまう可能性があります。 一方、Home Assistantでは、SwitchBot Cloud APIを利用することで、SwitchBotロックの**「アンロック」**をオートメーションのアクションとして利用できます。そのため、SwitchBotアプリでは実現できない解錠の自動化が可能になります。 ただし、これはSwitchBotが安全性を考慮して設けている制限を利用者自身の判断で回避することになります。 そのため、 便利だからという理由だけで導入するのではなく、どのような条件で解錠するのか、誤動作が起きた場合にどのような影響があるのかを十分に検討したうえで運用することが重要 です。 私自身も、この方法が「安全」だとは考えておらず、現在も運用しながら条件の見直しを続けています。 この記事では、私が実際に構築・運用している環境を例に、 SwitchBotロックの解錠をHome Assistantでオートメーション化する方法 を紹介します。 Home Assistantの導入方法については、以前公開した記事をご覧ください。 Windows 11 Hyper-VでHome Assistantを動かす方法(2026年版) この記事では、SwitchBot Cloud APIの設定からHome Assistantとの連携、解錠オートメーションの作成まで、実際の画面を使って順番に説明します。 動作環境 今回使用した環境は次のとおりです。 Home Assistant SwitchBot Hub Mini SwitchBotロックUltra(2台) SwitchBot Motion Sensor FA SwitchBot Cloud API ...

Home AssistantでTapo P105をオートメーションから操作する方法

イメージ
はじめに 私のデスクトップPCにはLogicool Z407スピーカーを接続しています。 普段は問題なく使えていますが、PCがスリープすると、スピーカーから「ボッ、ボッ」という音が一定間隔で鳴ることがありました。スピーカーの電源を切ると音は止まるため、PCの起動時は電源を入れ、スリープ時は自動で切る方法を考えました。 そこで利用したのが、TP-Linkのスマートプラグ「Tapo P105」です。 Home Assistantからオートメーションで制御できれば、PCの状態に合わせて自動でON/OFFできます。 この記事では、その設定方法を紹介します。 動作環境 Home Assistant TP-Link Tapo P105 Tapoアプリで初期設定済み Home AssistantとP105が同じネットワークに接続されていること 最初に知っておきたいこと インターネットで調べると、PythonライブラリやPowerShellなどを利用してTapo P105を操作する方法が紹介されています。 しかし、 現在はそのような方法を利用する必要はありません。 Home Assistant標準の TP-Link Tapo 統合を利用すれば、オートメーションから簡単にON/OFFできます。 TP-Link Tapoを追加する Home Assistantで 設定 → デバイスとサービス を開きます。 **[統合を追加]**をクリックし、 TP-Link Tapo を検索して追加します。 TP-Link ID(Tapoアプリで使用しているメールアドレス)とパスワードを入力すると、P105が自動的に検出されます。 P105が追加されたことを確認する 追加が完了すると、P105がデバイスとして表示されます。 この画面では、 スイッチの状態 ファームウェア Wi-Fiの電波強度 関連するオートメーション などを確認できます。 今回の例では、「スピーカーの電源」という名前で登録しています。 オートメーションを作成する 新しいオートメーションを作成します。 アクション で デバイス を選択します。 続いて、 デバイス: スピーカーの電源 アクション: オンにする を選...

Home Assistantで気付いたこと・分かったこと

スリープ中でもPingセンサーは一瞬だけ反応することがある はじめに PCのスリープと起動に合わせて、スピーカーの電源を自動でON・OFFするオートメーションを作成しています。 トリガーにはPingセンサーを使用しています。 動作はほぼ期待どおりでしたが、ログを確認していると気になる現象がありました。 スリープ中なのに接続済みになる PCをスリープすると、Pingセンサーは off になります。 ところが、そのままログを見ていると、スリープ中にもかかわらず、一瞬だけ on になることがありました。 もちろん、その直後には再び off に戻ります。 毎回発生するわけではなく、間隔も一定ではありませんでした。 最初に考えた方法 最初は、この一瞬の on を無視するため、 「offが30秒続いたらスピーカーをOFFにする」 という設定にしました。 これでも問題なく動作します。 ログを見直して気付いたこと その後、何度もログを確認していると、もう一つ気付いたことがありました。 スリープ中には一瞬だけ on になることがあります。 しかし、 起動したときに、一瞬だけoffになることはありません。 つまり、誤判定が起こるのは ON側だけ でした。 現在の設定 そこで、オートメーションを次のように変更しました。 PCがスリープしたら、すぐにスピーカーをOFF Pingセンサーが on の状態で5秒続いたらスピーカーをON この設定にしてからは、誤ってスピーカーがONになることはなくなりました。 しかも、起動時の反応も速くなりました。 おわりに オートメーションを作るときは、「何秒待つか」を先に考えてしまいがちです。 しかし、実際にログを確認すると、どちらの状態で誤判定が起きているのかが見えてきます。 今回もログを見直したことで、待ち時間を入れる場所を変更し、よりシンプルなオートメーションにすることができました。

Home Assistantで気付いたこと・分かったこと

  PCのスリープ検知にはPingセンサーが向いていた はじめに Lenovo PCがスリープしたらスピーカーの電源を切り、起動したら再び電源を入れるオートメーションを作っています。 以前は正常に動いていましたが、設定を見直す中でPCの状態を device_tracker で判定するよう変更しました。 ところが、PCをスリープしてもスピーカーの電源が切れません。 アクションは正常だった 最初にオートメーションの「アクションの実行」を試してみました。 スピーカーの電源は正常にON・OFFします。 つまり、問題はアクションではなく、トリガーにあることが分かりました。 device_tracker を確認する 開発者ツールで device_tracker の状態を表示したままPCをスリープさせました。 2分以上待っても状態は home のままで変化しません。 これではオートメーションは実行されません。 Pingセンサーを確認する 以前使用していたPingセンサー( binary_sensor )も確認してみました。 こちらはPCをスリープすると約30秒で off になり、起動すると on に戻ります。 そこでオートメーションのトリガーをPingセンサーへ変更したところ、以前と同じように動作するようになりました。 もう一つ分かったこと ログを見ていると、PCがスリープしている間でも、Pingセンサーが一瞬だけ on になることがありました。 そのため最初は、 「offが30秒続いたらスピーカーをOFFにする」 という設定にしました。 しかし、さらにログを確認すると、 スリープ中に一瞬だけ on になることはある。 起動時に一瞬だけ off になることはない。 ということが分かりました。 そこで現在は、 スリープしたらすぐスピーカーをOFF onが5秒続いたら スピーカーをON という設定にしています。 こちらの方が反応も速く、安定して動作しています。 おわりに 同じPCの状態を表すエンティティでも、今回の環境では動作に違いがありました。 実際に状態を確認しながら比較した結果、PCのスリープや復帰を検知する目的には、Pingセンサーの方が期待どおりの動作になりました。

Home Assistantで気付いたこと・分かったこと

オートメーションの「切断」は2種類ある はじめに Home Assistantでオートメーションを作成していたときのことです。 PCがスリープしたらスピーカーの電源を切り、起動したら電源を入れるという単純なオートメーションを作っていました。 ところが、何度試しても期待どおりに動きません。 設定を何度見直しても間違いは見つからず、原因が分かりませんでした。 「切断」が2つある トリガーの「変化後」を開くと、 切断 切断 接続済み と表示されていました。 最初は、 「同じ項目が2つ表示されている。どちらを選んでも同じだろう。」 と思っていました。 ところが、それが間違いでした。 実際には意味が違っていた いろいろ試してみると、 ある「切断」を選ぶとオートメーションは動かず、 もう一方の「切断」を選ぶと正常に動作しました。 原因を調べると、 表示は同じでも、内部で表している状態が異なっていた のです。 つまり、 画面上ではどちらも「切断」と表示されますが、 Home Assistant内部では別の状態として扱われています。 なぜ気付きにくいのか 今回使用していたのは binary_sensor でした。 binary_sensor は本来 on と off の2つの状態を持っています。 一方、Home Assistantには device_tracker のように、接続状態を表すエンティティもあります。 日本語UIでは、これら異なる状態が同じ「切断」と表示されることがあります。 そのため、 表示だけでは、どの状態を選択しているのか判断できません。 原因に気付いたきっかけ 何度設定を見直しても原因が分からなかったため、 オートメーションを実際に動かしながら、一つずつ状態を変更して確認しました。 すると、 「切断」の選び方によって動作が変わることに気付きました。 そこでエンティティの状態を確認したところ、 画面表示は同じでも、内部状態が異なることが分かりました。 今回分かったこと 今回一番の気付きは、 Home Assistantでは画面の表示だけで判断してはいけない ということです。 日本語表示では同じ文字列でも、 内部では異なる状態を表している場合があります。 オートメーションが期待どおりに動かないときは、 設定ミスを疑う前に、 エンティティが実際にどの状態...

Home Assistantで気付いたこと・分かったこと

Hyper-Vで「別のプロセスが使用中です」の原因 はじめに Home AssistantをVirtualBoxからHyper-Vへ変更することにしました。 仮想マシンの作成は順調に進み、最後に起動ボタンを押したところ、 別のプロセスが使用中です というエラーが表示されました。 Hyper-Vを使い始めて最初に遭遇したトラブルです。 最初はHyper-Vの設定を疑った エラーメッセージを見ると、「仮想マシンの設定が間違っているのだろう」と考えるのが普通だと思います。 私も、 Secure Bootの設定 自動チェックポイント VHDXファイルの指定 仮想マシンの作り直し など、Hyper-Vの設定ばかり確認していました。 しかし、何をやっても状況は変わりません。 エラーメッセージをもう一度考えてみる ここで一度立ち止まり、エラーメッセージをそのまま読んでみました。 「別のプロセスが使用中です」 Hyper-Vの設定が間違っているのであれば、「設定が不正です」や「起動できません」といったメッセージになるはずです。 しかし、このメッセージは**「誰かが使っている」**と言っています。 それなら、Hyper-V以外の何かがVHDXファイルを開いている可能性があるのではないかと考えました。 Windowsが使っていた そこで、PowerShellでVHDXの状態を調べてみました。 Get-DiskImage "C:\Hyper-V\HomeAssistant\haos_ova-18.1.vhdx" すると、 Attached : True と表示されました。 つまり、WindowsがVHDXをディスクとしてマウントしていたのです。 Hyper-Vも同じファイルを使おうとしていたため、 別のプロセスが使用中です というエラーになっていました。 解決方法 WindowsからVHDXを切り離します。 Dismount-DiskImage -ImagePath "C:\Hyper-V\HomeAssistant\haos_ova-18.1.vhdx" 再度確認すると、 Attached : False になりました。 この状態でHyper-Vを起動すると、Home Assistantは問題なく起動しました。 今回の気付き 今回、一番印象に残っ...

Windows 11 Hyper-VでHome Assistantを動かす方法(2026年版)

はじめに これまでHome AssistantはVirtualBoxで運用していましたが、Windows 11 ProではHyper-Vが標準で利用できます。 今回は、Home Assistant OSをHyper-Vへインストールし、正常に起動するまでの手順をまとめます。 この記事では移行方法やバックアップの復元ではなく、 Hyper-V上でHome Assistantを新規に動作させる方法 を紹介します。 動作環境 今回の環境は次のとおりです。 Windows 11 Pro Hyper-V Home Assistant OS 18.1 1. Hyper-Vを有効にする Windowsの「Windowsの機能の有効化または無効化」を開き、次の項目を有効にします。 Hyper-V Hyper-V管理ツール Hyper-Vプラットフォーム 設定後はWindowsを再起動します。 2. Home Assistant OSをダウンロード Home Assistant公式サイトからWindows用(Hyper-V用)のVHDXファイルをダウンロードします。 ダウンロードしたZIPファイルを展開し、VHDXファイルを任意のフォルダーへ保存します。 C:\Hyper-V\HomeAssistant\ 3. 外部仮想スイッチを作成する Hyper-Vマネージャーで 仮想スイッチマネージャー を開き、次の設定で仮想スイッチを作成します。 外部 使用中のLANアダプター 4. 仮想マシンを作成する 仮想マシンは次の設定で作成しました。 項目 設定 世代 第2世代 メモリ 4096MB 動的メモリ 有効 CPU 2 ネットワーク 作成した外部仮想スイッチ 仮想ディスク 既存のVHDXを使用 5. 仮想マシンの設定を変更する 起動前に次の2か所を変更します。 Secure Boot 無効 自動チェックポイント 無効 Home Assistantでは自動チェックポイントは不要なので、最初から無効にしておくことをおすすめします。 6. 起動する 仮想マシンを起動すると、Home Assi...