Secret Staircase

SwitchBot操作の信頼性を向上させる

[こちらの記事]({{< ref "turn-on-light-by-switchbot.md" >}})で SwitchBot を使って玄関ライトをオンオフしました。

でもときどきうまく動いてくれないんですよね。帰ってきて真っ暗だと暗いのもあるけどなんで動かないんだって気持ちが落ち込みます。

調べてみるとgatttoolでのコマンド送信に失敗することがあることがわかりました。発生のきっかけとしては短時間に複数コマンドを送ったときや、他のクライアントと接続中のとき、あと原因はわかりませんがランダムのように失敗するようです。

そこで失敗したら何度かリトライするようにしました。

スクリプトのソースコードはこちらです。 SwitchBot 操作スクリプト

homebridgeconfig.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"
  }
]

これが大当りでずいぶんと信頼性が向上しました。