[こちらの記事]({{< ref "turn-on-light-by-switchbot.md" >}})で SwitchBot を使って玄関ライトをオンオフしました。
でもときどきうまく動いてくれないんですよね。帰ってきて真っ暗だと暗いのもあるけどなんで動かないんだって気持ちが落ち込みます。
調べてみるとgatttool
でのコマンド送信に失敗することがあることがわかりました。発生のきっかけとしては短時間に複数コマンドを送ったときや、他のクライアントと接続中のとき、あと原因はわかりませんがランダムのように失敗するようです。
そこで失敗したら何度かリトライするようにしました。
スクリプトのソースコードはこちらです。 SwitchBot 操作スクリプト
homebridge
のconfig.json
はこのようになります。
"accessories": [
{
"accessory": "Script2",
"name": "Switchbot1",
"on": "/path/to/switchbot XX:XX:XX:XX:XX:XX ON",
"off": "/path/to/switchbot XX:XX:XX:XX:XX:XX OFF",
"state": "/path/to/switchbot XX:XX:XX:XX:XX:XX",
"on_value": "ON"
}
]
これが大当りでずいぶんと信頼性が向上しました。