SwitchBotロックの解錠をHome Assistantで自動化してみた
はじめに
我が家では、玄関の鍵としてSwitchBotロックUltraを使用しています。
以前から、Home Assistantと連携して玄関の解錠をオートメーション化したいと考えていました。
しかし、SwitchBotアプリでは施錠はオートメーションに設定できますが、解錠はオートメーションの対象外となっています。
これは、意図しない解錠による防犯上のリスクを考慮した仕様だと考えられます。実際、解錠を自動化すると、センサーの誤検知や設定ミスなどにより、意図せず玄関の鍵が開いてしまう可能性があります。
一方、Home Assistantでは、SwitchBot Cloud APIを利用することで、SwitchBotロックの**「アンロック」**をオートメーションのアクションとして利用できます。そのため、SwitchBotアプリでは実現できない解錠の自動化が可能になります。
ただし、これはSwitchBotが安全性を考慮して設けている制限を利用者自身の判断で回避することになります。
そのため、便利だからという理由だけで導入するのではなく、どのような条件で解錠するのか、誤動作が起きた場合にどのような影響があるのかを十分に検討したうえで運用することが重要です。
私自身も、この方法が「安全」だとは考えておらず、現在も運用しながら条件の見直しを続けています。
この記事では、私が実際に構築・運用している環境を例に、SwitchBotロックの解錠をHome Assistantでオートメーション化する方法を紹介します。
Home Assistantの導入方法については、以前公開した記事をご覧ください。
この記事では、SwitchBot Cloud APIの設定からHome Assistantとの連携、解錠オートメーションの作成まで、実際の画面を使って順番に説明します。
動作環境
今回使用した環境は次のとおりです。
- Home Assistant
- SwitchBot Hub Mini
- SwitchBotロックUltra(2台)
- SwitchBot Motion Sensor FA
- SwitchBot Cloud API
※本記事は、この環境で動作を確認しています。
1.SwitchBot Cloud APIを有効にする
Home AssistantからSwitchBotロックを操作するには、SwitchBot Cloud APIを利用します。
最初に、SwitchBotアプリでAPIトークンとAPIキー(クライアントシークレット)を取得します。
基本データを開く
SwitchBotアプリで(本記事で使用するスマホはiPhoneです)
プロフィール → 設定 → 基本データ
を開きます。
図1 基本データ画面
「開発者向けオプション」が表示されていない場合は、アプリバージョンを数回タップすると表示されます。
APIトークンとAPIキーを取得する
「開発者向けオプション」を開くと、
- APIトークン
- APIキー(クライアントシークレット)
が表示されます。
図2 開発者向けオプション
Home Assistantの設定で使用するため、この2つを控えておきます。
注意
APIトークンとAPIキーは、SwitchBotデバイスを操作するための重要な情報です。第三者へ公開しないよう注意してください。
2.Home AssistantへSwitchBot Cloudを追加する
次に、Home AssistantへSwitchBot Cloudを追加します。
Home Assistantで
設定 → デバイスとサービス
を開き、右下の**「+ 統合を追加」**をクリックします。
検索ボックスに
SwitchBot Cloud
と入力し、表示された「SwitchBot Cloud」を選択します。
図3 SwitchBot Cloudを追加する
APIトークンとAPIキーの入力画面が表示されます。
先ほど取得した
- APIトークン
- APIキー
を入力し、**「送信」**をクリックします。
図4 APIトークンとAPIキーを入力する
3.SwitchBot Cloudとの連携を確認する
設定が完了すると、「デバイスとサービス」の統合一覧にSwitchBot Cloudが追加されます。
図5 SwitchBot Cloud統合
SwitchBot Cloudをクリックすると、Home Assistantが認識したSwitchBotデバイスの一覧が表示されます。
図6 認識されたSwitchBotデバイス
ここにロックUltraが表示されていれば、Home Assistantとの連携は正常に完了しています。
続いて、ロックUltraをクリックします。
ロックの状態やバッテリー残量などの情報が表示されれば、Home Assistantから正常に認識されています。
図7 ロックUltraのデバイス画面
ここまで確認できたら、オートメーションを作成する準備は完了です。
4.解錠オートメーションを作成する
Home Assistantで
設定 → オートメーションとシーン
を開きます。
「オートメーションを作成」を選択し、
さらに「新しいオートメーションを作成」を選択し、
トリガーとアクションを設定します。
オートメーション全体は図9のようになります。
図9 オートメーション全体
トリガーを設定する
今回の例では、SwitchBot Motion Sensor FAが人を検知したことをトリガーにしています。
図10 トリガーの設定
トリガーは、
- デバイス:Motion Sensor FA
- トリガー:占有
- 状態:「検出されました」
を設定しています。
アクションを設定する
アクションでは、ロックUltraに対して**「アンロック」**を実行します。
図11 アクションの設定
ここがこの記事で最も重要なポイントです。
SwitchBotアプリでは、解錠をオートメーションのアクションとして設定することはできません。
一方、Home AssistantでSwitchBot Cloudと連携すると、ロックUltraに対して**「アンロック」**をアクションとして設定できます。
そのため、人感センサーだけでなく、Home Assistantで利用できるさまざまなセンサーやデバイス、条件と組み合わせて解錠をオートメーション化できるようになります。
ただし、解錠の条件をどのように設定するかは、防犯上とても重要です。
今回は仕組みを分かりやすく紹介するための最小限の構成を例にしていますが、実際に運用する場合は、ご自身の利用環境に合わせて十分に検討してください。
5.動作確認
オートメーションを有効にしたら、実際に動作を確認します。
Motion Sensor FAが人を検知すると、Home Assistantのオートメーションが実行され、SwitchBotロックUltraが解錠されることを確認してください。
動作しない場合は、次の点を確認してください。
- APIトークンとAPIキーが正しく入力されているか
- SwitchBot Cloudが正常に追加されているか
- ロックUltraがオンラインになっているか
- オートメーションが有効になっているか
また、意図した条件以外で解錠されないことも十分に確認してください。
注意事項
SwitchBotアプリでは、解錠をオートメーションの対象外としています。
これは、防犯上のリスクを考慮した仕様だと考えられます。
本記事で紹介した方法は、Home AssistantとSwitchBot Cloud APIを利用することで、その制限を超えて解錠をオートメーション化するものです。
そのため、便利になる一方で、オートメーションの内容によっては意図しない解錠につながる可能性があります。
例えば、
- センサーの誤検知
- 通信障害
- Home Assistantの不具合
- 家族がセンサーの向きを変えてしまう
- デバイスやファームウェアの仕様変更
など、さまざまな要因によって想定どおりに動作しないことがあります。
また、本記事では仕組みを分かりやすく紹介するため、最小限の構成を例にしています。
実際に運用する場合は、
- 解錠する時間帯を限定する
- 在宅状況を条件に追加する
- 複数の条件を組み合わせる
など、ご自身の利用環境に合わせて十分に検討してください。
私自身も、この構成が「安全」だとは考えておらず、現在も動作を確認しながら、必要に応じて条件を見直しています。
本記事を参考に導入される場合は、十分な検証を行い、ご自身の責任において運用してください。
おわりに
SwitchBotアプリでは、解錠をオートメーション化することはできません。
しかし、Home AssistantとSwitchBot Cloud APIを利用することで、解錠をオートメーションに組み込めるようになりました。
本記事では、SwitchBot Cloud APIの設定から、Home Assistantとの連携、解錠オートメーションの作成まで、一連の手順を紹介しました。
SwitchBotが解錠をオートメーションの対象外としている理由を理解したうえで、導入を検討される場合は、ご自身の利用環境に合わせて十分に検証し、安全性を考慮して運用してください。
コメント
コメントを投稿