SwitchBot で大ハマりしたはなしです.
結論から言うと,
SwithBot を制御するコマンドのオプションがいつのまにか変更になった
のが原因で動かなかったみたいです.詳細は記事本文をご覧ください.
はじめに
SwitchBot は「ボタンを押す」に特化した IoT 製品で,製品公式ページは
だと思います.Amazon の商品ページだと以下の通り.
本製品良いところは,
- 比較的安価である
- BluetoothLE でローカルから制御できる
ところで,私の場合も2年ほどまえから空調の制御のため活用して来ました.
もう少し具体的に言うと,部屋の温度がある一定以上になったら空調の電気を入れるというだけなんですが,最近,最近,暑くなって来たのになぜだか動いている形跡がありません.これから夏本番なので,これはマズイと本格的にメインテナンスしたのですが,複数の原因が重なり大ハマりしてかなり時間を使ってしまいました.
ハマった原因(その1電池)
大ハマりした理由の一つ目は,
電池切れ!
です.本製品,外に LED 等ないので電池切れかどうかパッと目で判断しにくいです.また使用する電池は CR2 リチウムイオン電池なので,その辺のコンビニなどでは手に入らないのもちょっと面倒なところ.
電池の交換方法ですが,
の通りで,交換すると内部にある(緑色の)小さな LED が小さく光るので,交換した電池が空か否かはこれで判断できます.
ハマった原因(その2)
大ハマりした原因の2つ目は,Switchbot を制御するコマンドのオプションがいつのまにか変更になったことです.
はじめにのところで書いた通り,SwitchBot の良いところは BluetoothLE でローカルから制御できるところなんですが,このための制御用アプリとして,
を使っていました.しかしこのアプリ,いつのまにか使い方,少し変更になっており,さらに,上のページの説明が(少なくとも本blog執筆時点では)きちんと修正されていません.具体的には,元ページの説明だと,
$ sudo python switchbot.py $ sudo python switchbot.py [mac_addr action_cmd]
の順で動作するとするされているのですが,正しくは,
sudo python switchbot.py sudo python switchbot.py Bot [mac_addr] Bot [action_cmd]
です.つまり,Bot というオプションを追加しないとだめなようです(多分この Bot というのは公式アプリで見たときのこの SwichBot の機器名だと思います).
実際に使用した様子は以下の通りです.
$ sudo python switchbot.py Usage: "sudo python switchbot.py [mac dev_type cmd]" or "sudo python switchbot.py" Scanning... Scan timeout. (' 0', [u'dd:dd:dd:dd:dd:dd', 'Bot', 'Press']) Input the device number to control: % ここで 0 を入力すると動作チェックが行える $ sudo python switchbot.py dd:dd:dd:dd:dd:dd Bot Press Usage: "sudo python switchbot.py [mac dev_type cmd]" or "sudo python switchbot.py" Preparing to connect. Connection successful. Complete
なお,dd:dd:dd:dd:dd:dd は SwichBot 本体の MAC アドレスで,これは公式アプリからも確認できることにご注意ください.
おわりに
今回はこれで無事元通り動くようになってくれて一安心しました.
なお,ハマったポイント2番ですが,上で取り上げた Python アプリの仕様が変わったからではなく,SwitchBot の制御用のコマンドが変更になったことが原因なんじゃないかなと思います.
それにしても SwitchBot ですが,いつのまにか関連製品がたくさん出ています.公式サイト
をみると,ドアロックやら音質度計やら,びっくりしたのがロボット掃除機まである.さすがに私の場合,ロボット掃除機は買う気にはなりませんが,スマートコンセントくらいなら買ってみて試しても良いかなと感じています.実際にもし買ったらまた記事にしたいと思います.
以上!