HomeAssistantでSwitchBotスマートロックの鍵状態を表示する(Bluetooth接続編)
前回、SwitchBot API V1.1を使ってSwitchBotスマートロックの鍵の状態を取得してみました。
このAPIを使ってHomeAssistantで鍵の状態を表示しようと思いましたが、他の記事を読んでいたところ、Bluetoothを使えば簡単に登録ができるということが分かりましたので、まずはその方法でSwitchBotスマートロックを追加してみようと思います。
完成イメージ
こんな感じでHomeAssistantのダッシュボード上にSwitchBotスマートロックの鍵状態と扉状態が表示されます。
また、鍵アイコンをタップすると、HomeAssistant上から鍵の操作(解錠・施錠)ができるようになります。
HomeAssistantでBluetoothアダプタが使えるようにする
自宅のHomeAssistant環境はSkyBarium PC + ProxmoxVEの構成となっています。
今までBluetoothを使っていなかったので全く気にしていませんでしたが、いざBluetoothを使おうと思ったら、SkyBarium PC内蔵のBluetoothアダプタがHomeAssistant上では使えないことが分かりました。
SkyBarium PCのBluetoothはIntel AX200が搭載されていますが、調べてみるとProxmoxVEの設定ファイルを編集することでHomeAssistant上でBluetoothが使えるようになるみたいです。
そのため、以下のページを参考にしながらProxmoxVEの設定ファイルを編集してBluetoothアダプタが使えるようにしてみました。
また、シェルを使った操作が必要になりますが、以下の症状が発生したため、最初に対処してから作業を進めました。
1.ProxmoxVEの管理画面にログインする
WebブラウザからProxmox VEの管理者画面を開きます。
「データセンター>ProxmoxVEのサーバ名」を選択して、「コンソール」をクリックします。
2.ProxmoxVEに読み込まれたBluetoothアダプタのモジュールを確認する
次のコマンドを入力して、Bluetoothアダプタのモジュールを検索します。
lsmod | grep btusb
何か画面に出てきたら、とりあえずProxmoxVEでBluetoothアダプタが読み込まれている状態となっています。
次に、このコマンドを入力して接続されているUBSデバイスを検索します。
lsusb | grep Bluetooth
「AX200 Bluetooth」デバイスが接続されていることが確認できました。このデバイスIDを確認しておきます。
3.pve-blacklist.conf ファイルを編集する
viを使って、pve-blacklist.conf ファイルを開きます。
viとは、Linuxでよく使われるテキストエディタになります。Windowsでいうメモ帳のようなものになります。(viの方が多機能だと思いますが、全然使いこなせてません・・・)
vi /etc/modprobe.d/pve-blacklist.conf
「i」キーを押して編集モードにしたら、以下の1行を追加します。
blacklist btusb
追加したら「ESC」キーを押して編集モードを終了してください。
最後に「:wq」と入力して「Enter」キーを押下すると、編集した設定ファイルを保存してviが終了します。
4.Proxmoxを再起動する
「再起動」ボタンをクリックして、ProxmoxVEを再起動します。
5.HomeAssistant マシンにBluetoothアダプタを接続する
「データセンター>(Proxmox VEのサーバ)>(HomeAssistantのVM)」を選択して、ハードウェアを選択します。
「追加」ボタンをクリックして、「USBデバイス」をクリックします。
「USBベンダ/デバイスIDを使用」を選択して、Bluetoothアダプタを選択します。
製造者やプロダクトは空白になっていますが、あらかじめ確認しておいたBluetoothアダプタのデバイスIDと同じものを選択します。
「追加」ボタンをクリックして、USBデバイスとしてBluetoothアダプタが追加されていることを確認します。
6.HomeAssistantを起動する
「開始」ボタンをクリックして、HomeAssistantを起動します。
しばらくするといつものHomeAssistant画面が表示されますが、この画面が出るまでの間にエラーが出なければ問題ないと思います。
Bluetoothアダプタを登録する
まずはHomeAssistantにBluetoothアダプタを登録します。
HomeAssistant画面から「設定>デバイスとサービス」を選択します。
「統合」タブを開き、画面右下の「統合を追加」を選択します。
画面の「発見」というところにBluetoothアダプタが表示されていればそちらの「設定」ボタンを選択しても問題ありません。
「ブランド名で検索」項目に”Bluetooth”と入力すると、Bluetooth関連の項目が出てきますので、先頭の「Bluetooth」を選択します。
「発見」のところに表示されたBluetoothアダプタを選択します。
「Bluetoothアダプターhci0(Bluetoothのアドレス)をセットアップしますか?」とメッセージが表示されたら「送信」を選択します。
「(Bluetoothアドレス)の設定を作成しました。」のメッセージが表示されたら「完了」を選択してBluetoohアダプタの登録は完了です。
SwitchBotスマートロックを登録する
Bluetoothアダプタの登録も完了しましたので、これから設置済みのSwitchBot機器を登録していきます。
今回はSwitchBotスマートロックの登録となりますが、他のデバイスでも基本的に操作は同じです。
「設定>デバイスとサービス」を選択して「統合を追加」ボタンを選択します。
「ブランド名で検索」項目に”SwitchBot”と入力すると、SwitchBotの項目が出てきますので、出てきた「SwitchBot」を選択します。
既に自宅に設置しているSwitchBot機器がいくつか出てきてますが、とりあえず「利用可能な統合」にある「SwitchBot Bluetooth」を選択します。
検出されたSwitchBot機器が選択できます。
今回はSwitchBotスマートロックを登録してみようと思いますので、「Lock XXXX(XXXXはBluetoothアドレスの一部を表示しています)」を選択して「送信」を選択します。
SwichBotスマートロックから情報を取得したり、制御するためにはキーIDと暗号化キーが必要となります。SwitchBotアカウントから必要な情報が取得できるみたいですので、推奨と書かれてる「SwitchBotアカウント」を選択しました。
SwitchBotアカウントのユーザー名とパスワードを入力して、「送信」ボタンを選択します。
「Lock XXXX」の設定を作成しました。」のメッセージが表示されたらSwitchBot機器の登録が完了しました。「完了」ボタンをクリックしてください。
SwitchBotスマートロックの状態をダッシュボードに表示する
登録したSwitchBotスマートロックの鍵状態が確認できるように、ダッシュボードに追加したいと思います。
ダッシュボードへの追加方法はお好みの方法で設定していけばいいですが、今回はボタンを使った方法になります。
また、扉の開閉状態も表示できそうですので、鍵状態と扉状態を並べて表示できるようにしました。
1.SwitchBotスマートロックの鍵状態を表示する
SwitchBotスマートロックの状態を表示したいダッシュボードの右上にある「編集」アイコンを選択して、画面右下の「カードを追加」ボタンを選択します。
「カード別」タブにある、「水平スタック」を選択します。
「ボタン」を選択します。
「エンティティ」項目に"Lock"と入力すると、スマートロックから取得できる項目が出てきます。
「Lock XXXX」の項目が鍵の状態(解錠・施錠)を検知したり、制御するためのエンティティとなりますので、このエンティティを選択します。
2.扉の開閉状態を表示する
次に扉の開閉状態を表示できるようにします。
水平スタックカードの「+」を選択します。
鍵状態の表示方法と同じように「ボタン」を選択します。
「エンティティ」項目に"Lock"と入力すると、SwitchBotスマートロックから取得できる項目が出てきますので、扉アイコンが表示されている「Lock XXXX」(エンティティIDが"binary_sensor〜"となっているエンティティ)を選択します。
プレビューを確認したら「保存」を選択します。
作成したカードが追加されたことを確認したら「終了」ボタンを選択します。
これでHomeAssistant上からSwitchBotスマートロックの鍵状態と扉状態を確認できるようになりました。
最後に
Bluetoothを使うことによって、簡単にSwitchBot機器がHomeAssistant上で確認することができました。
今回はスマートロックで試してみましたが、温度計や扉センサーでも使えますので、まだHomeAssistantに登録していないSwitchBot機器を追加していきたいと思います。
また、HomeAssistantを動かしているPCがそのままではBluetoothが使えない状態になっているため、ひと工夫が必要でしたが、一度設定してしまえば簡単にSwitchBot機器が登録できるようになったため、試して良かったと思いました。