キャンピングカーにはHomePodとモバイルルーターを設置しているのでApple HomeKit対応製品で室内LEDライトの操作はできるようになりました。次はエントランスドアのロック解除に挑戦します。
シリーズ化してます( ゚∀゚)アハハ
- ドアロック解除! Apple HomeKitとSwitchBotとRaspberry PiとHomeBridgeでキャンピングカーのドアロックを操作するょ!
- <覚え書き>ラズパイにhomebridge-config-ui-xを入れるときにエラー! さぁどうする??
- <覚え書き>ラズパイでpythonを使いたいけどgattlibインストールでエラー! 超初心者なりにいろいろ試すの巻
- <覚え書き>ラズパイ再起動でHomeBridgeを自動起動させるよ!
- PySwitchBotもPythonもわかんない! SwitchBotの設定から逃げるの巻!
ドアロックの再確認
キャンピングカーのバーストナーA576(2007年式)のドアロックハンドルはカブトガニのような形をしていて、リモコンによるドアロック施錠・解錠には対応していません。 どうにかリモコンドアロックを後付けできないか?と考えたことは今までにもありましたが、ここまでモーターを動かす電気を引っ張ってくる方法や内張のない一体整形のドアのどこにモーターなどを仕込むか?などをクリアできずにいました。
ドアロック解錠の状態
ドアロック施錠の状態
ドア側のロック機構
車両側ドアロック機構。調整の幅は大きそうですがこんな無骨な感じ。
2017年にドアロックハンドルが壊れたので分解したことがあります。
ロックを上に上げるか、ピストルのトリガー形状を動作させることでロックは解錠できます。このどちらかをうまく使うことができれば…(*゚ー゚)
SwitchBotでできるのか?
Apple HomeKitで操作を統一したいを思っていた中、SwitchBotを使えばなんとかなりそうな話を見つけたためまずはSwitchBotを購入しました。
コレです。
オプションのSwitchBot Hub Miniを組み合わせればSiriショートカットに対応できます。
壁スイッチ・炊飯器・コーヒーメーカー・給湯器など様々なスイッチ・ボタンに適用です。
SwitchBot自体には無線LAN(Wi-Fi)機能はなくBluetoothのみに対応します。電池交換可能ですがCR2タイプなのでコンビニにはなさそう。
CR2リチウム電池はこんなのです。
今回の大きさ比較対象はタマゴちゃん。しめじ監督からお借りしました。 ちなみにしめじ監督はタマゴちゃんのピューピュー鳴る笛を「秒」で壊します。 小動物をいじめてる感じ?(||゚Д゚)ヒィィィィ
タマゴちゃんよりは持ってる人が多そうなAmazon Fire TV Stickのリモコンとの比較です。
さっそくSwitchBotをカブトガニ ドアハンドルの上に両面テープで貼り付けてみました。
SwitchBotのON/OFF動作を利用してロックノブを引き上げる作戦です。
黒色のSwitchBotを選んだので違和感はそれほど… ないと思い込みます。
SwitchBotでロック解除ができる! これで次に進めます。
Raspberry PiとHomeBridge
SwitchBotでロック解除ができるとわかったので次のステップに進みます。 次に準備したのはRaspberry Piです。ラズベリーパイ、ラズパイなどと呼ばれたりもする小さいパソコン(シングルボードコンピュータ)です。Raspberry Piを選ぶ理由はHomeBridgeサーバーとしてずっと起動している必要があるため省電力で小型でないと実用的でないから。
2021年には11,000円くらいでしたが、半導体不足などで今は価格が2倍になっててびっくりです。
これで全部。
白い箱の上に載っているのがRaspberry Pi本体です。 ケースも付属しているパッケージ物を購入しました。
やることと言ったら熱を放出しやすくするためのヒートシンクを貼り付けるくらい。大きさはこんなの。
貼り付ける場所は3箇所
ぺたぺたぺたっと貼り付け完了。
microSDも付属しますがプッシュ式?で全部隠れるタイプではなく差し込むだけでです。これくらい飛び出る状態でOKです。
こんな感じになるので動作中に誤って触らないように注意です。
ケースに入れたら完成!
お手軽セットなので起動させるとどのOSをインストールするのか選択です。
Raspberry Pi OS Full(32-bit)を選択してインストール開始。
SwitchBotをHomeKitに対応させるにはRaspberry Piに”homebridge”と”homebridge-switchbot”をインストールしてやります。 詳しい手順を説明できるほど詳しくないので省略します。検索するといろいろでてきます。
設定ファイル”config.json”の記載方法を紹介いただいているサイトの多くはアドレス部分に”xx:xx:xx:xx:xx:xx”とありますが、もちろんこの部分には実際のアドレスを入れる必要があります。 下の場合は①:②:③:④:⑤:⑥はRaspberry Pi本体のBluetoothアドレスが入りますし、⑴:⑵:⑶:⑷:⑸:⑹はSwitchBot子機のBluetoothアドレスが入ります。 SwitchBot子機のBluetoothアドレスはSwitchBot APPで確認できます。
{ "bridge":{ "name": "Homebridge", "username": "①:②:③:④:⑤:⑥", #Raspberry PiのBluetoothアドレス "port": 51826, "pin": "123-45-678" #すきな数字 }, "description": "SwitchBot Control", "accessories":[ #「{」ではなくて「[」です { "accessory": "SwitchBot", "name": "Burstner DOOR", "macAddress": "⑴:⑵:⑶:⑷:⑸:⑹" #SwitchBotのBluetoothアドレス } ] #「}」ではなくて「]」です }
Raspberry Pi本体のBluetoothアドレスの確認方法です。 もっと簡単に調べる方法がある気がしますが、わからなかったので”bluetoothctl”で確認しました。 表示される①:②:③:④:⑤:⑥部分がBluetoothアドレスです。
pi@raspberrypi:~/.homebridge $ bluetoothctl Agent registered [bluetooth]# show Controller ①:②:③:④:⑤:⑥ (public) "Raspberry PiのBluetoothアドレス Name: raspberrypi Alias: raspberrypi Class: 0x000c0000 Powered: yes Discoverable: no Pairable: yes UUID: Headset AG (UUIDの数字) UUID: Generic Attribute Profile (UUIDの数字) UUID: A/V Remote Control (UUIDの数字) UUID: Generic Access Profile (UUIDの数字) UUID: PnP Information (UUIDの数字) UUID: A/V Remote Control Target (UUIDの数字) UUID: Audio Source (UUIDの数字) UUID: Audio Sink (UUIDの数字) UUID: Headset (UUIDの数字) Modalias: usb:何かの数字 Discovering: no [bluetooth]# exit
Apple HomeKitでロック解除
Raspberry Pi 4にはHDMI出力があるのでキャンピングカーの液晶テレビにも簡単に接続してPCモニタ代わりになります。 小型のキーボードとマウスを繋げてますが小型の無線キーボード・マウスがあった方がスマートかも。
ターミナルを起動してhomebridgeを実行させてQRコードを表示させます。
アクセサリの追加です。
QRコードを読み込ませると…
ブリッジをホーム画面に追加します。
ブリッジの場所はドアロック解除用なので入口にしました。
iPhoneのホーム APPにSwitchBotが登場!
動作したらモニターやキーボード、マウスを繋いでおく必要はないのでRaspberry Piは邪魔にならないところに置いておきます。
動作はこんな感じ。 ただいま!
新たな問題
Apple ホームAPPで操作できるのでユーザーインターフェースも統一されて良い感じです。 ただ、使用してみていくつか気になることが出てきました。
- Raspberry Pi 4のUSB電源アダプタは5.1V/3Aの仕様なので最大約15Wの消費電力になります。 15Wとはいえ24時間動かしているとサブバッテリーの消費も気になります。
- SwitchBotはパスワード設定しないと誰でも操作できる! お出かけして戻ってくると誰かがキャンピングカーの中でコーヒー飲んでるかも??
1についてはデーモン設定してhomebridgeを自動起動することで電源を切って、入れた時に自動的にhomebridgeが実行するように設定しておけば不要時にはシャットダウンするってことが気分的にらくになるかも。
2についてはSwitchBotが持つパスワード機能を利用したら良いのですが、現状homebridge-switchbotがパスワード機能に対応していないのでSwitchBotにパスワードを設定するとホームAPPで操作しても言うことをきいてくれなくなります。 パスワードを設定したSwitchBotをコントロールできるPythonコードがGitHub pySwitchbotで2020年12月に発表されているので誰かがパスワード対応版を作ってくれるまではSwitchBotを操作する違う方法を考えないといけないかも。 だって、知らない人がキャンピングカー内でコーヒー飲んでたらびっくりするからね。
コメント
HomeKitでのドア開錠出来ましたね\(^o^)/
おめでとうございます。
まさかラズパイまで投入するとは思ってませんでしたが、、、、
今度watchからの開錠も見せてくださいネ。
バーストナースさんもスマートになってきましたねぇ〜
ありがとーございます!
今なら勝手に入ってコーヒー飲めますよ( ゚∀゚)アハハ