今までスマートロックはロマンのあるガジェットとして気になっていましたが、品質と価格ゆえに様子見してました。
ヤフオクを見ていたら、ほぼ未使用の中古品が出ていたので、落札相場の切りの良い金額から+200円(5,200円)で入札したら的中して落札できました。
ということで、ロマンのあるオモチャとして遊んで行こうと思います。
シンプルな見た目
中古品で入手のため、不足部品があるかもしれません。
外箱
中身(早く使ってみたいという思いがダダ漏れで配置がゴチャゴチャ)
製品の外観
製品の裏側
製品上部のカバーが外れて、電池部があらわになる。
ドアに接着させる場所と鍵のつまみの高さ調節は、下記のように調整する。
基本的にスマートフォンアプリで初期セットアップをしていく。
電池を抜いて入れ直すことでペアリングが始まります。
勝手にペアリングしないのでセキュリティとしては申し分ない。
設置とAPIと・・・
設置前にSwitchBot API v1.1を実行してみた。
■アカウントに紐づいたデバイス一覧情報
URL:
https://api.switch-bot.com/v1.1/devices
BODYの結果(抜粋):
{'deviceId': 'XXXXXXXXXXXX', 'deviceName': 'ロック', 'deviceType': 'Smart Lock', 'enableCloudService': False, 'hubDeviceId': '', 'master': True}
■デバイス状態
URL:
https://api.switch-bot.com/v1.1/devices/XXXXXXXXXXXX/status
BODYの結果:
{'deviceId': 'XXXXXXXXXXXX', 'deviceType': 'Smart Lock'}
プラグの場合の例)
{'deviceId': 'XXXXXXXXXXXX', 'deviceType': 'Plug Mini (JP)', 'hubDeviceId': 'XXXXXXXXXXXX', 'power': 'on', 'voltage': 102.3, 'weight': 101.8, 'electricityOfDay': 374, 'electricCurrent': 10.34, 'version': 'V1.5-1.5'}
■SwitchBotロックの操作(lock、unlock)
URL:
https://api.switch-bot.com/v1.1/devices/XXXXXXXXXXXX/commands
BODYの結果:
{}
デバイス一覧は問題なく取れる。
この結果からデバイスIDが判明する。
デバイスIDを指定してデバイス状態を取得する・・・が、SwitchBotロックのステータス情報はあまり返却してくれない。
サンプルとしてSwitchBotプラグの例を出してみた。こちらはpowerにて現在の状態がわかる。
SwitchBotロックのステータスは本来下記のような項目で取得出来てないといけないのだが・・・。
とりあえずSwitchBotロックのlock/unlockコマンドを実行。
ステータスがきちんと動作していないためか、lock/unlockコマンドを実行しても結果値のBODY返却はなかった。
下記の記事を参考にしたが、SwitchbotのHubが無いのが問題なのだろうか。
Hubと連携することで機能制限が解除されるというのだろうか。
参考記事:[Switchbot API v1.1が登場] APIでSwitchBotロックを遠隔操作する
確証はないが、Hubを用意してから後日試してみる。
代替品があるからHubはいらないと思ってずっと買わなかったんだけどなぁ。
★2024-02-26追記
Hubを導入してみた。
結果として、ロックのステータス情報の取得が出来たりロックの施錠解錠の操作がAPIで出来るようになった。
★ハブ導入前(SwitchBotロック)BODYの結果:
{'deviceId': 'XXXXXXXXXXXX', 'deviceType': 'Smart Lock'}
★ハブ導入後(SwitchBotロック)BODYの結果:
{'deviceId': 'XXXXXXXXXXXX', 'deviceType': 'Smart Lock', 'hubDeviceId': 'XXXXXXXXXXXX', 'lockState': 'locked', 'doorState': 'opened', 'calibrate': True, 'version': 'V6.5', 'battery': 95}
API実行に6秒くらいかかるので実行環境を改善するしかないのか。
もしくはプログラムをPythonと互換があるMojo(モジョ)へ移行して高速化してみるとか。
まずは実行環境の改善かなぁ。
流石にRaspberry Pi Zero でPythonを動作させるのは遅いかもしれない。
ということで、NAS上の仮想Ubuntu環境でも試した。
Raspberry Pi Zero:情報取得に6秒、SwitchBotロックの施錠・解錠に7秒。
NAS上の仮想Ubuntu環境:情報取得に3秒、SwitchBotロックの施錠・解錠に6秒。
SwitchBotAPI-BLEというBluetooth専用APIもある。
SwitchBotプラグの操作は可能みたいだが、SwitchBotロックの操作は無理でデバイス状態の情報のみ取れるみたい。
これはセキュリティの問題で出来ないようにしているのか・・・。
SwitchBotプラグの例:https://qiita.com/pbjpkas/items/e96bf25ea2af901e31ad
概ねの課題は見えたので、あとは実際に設置して運用していくだけか。
玄関ドアはダブルロック(2つ鍵がある)だから、もう一つSwitchBotロックがいるような気もする。
ただ、メイン鍵とサブ鍵の挙動が特殊なので、実物の鍵を所持していればいいような気もしている。
★2024-03-10追記
ようやく玄関ドアに設置してみた。
本体と磁石が30mm以内なので気持ち内側に貼り付けてみた。
鍵が2つあるので状況によってはツインロック機能が必要になるだろう。
下の鍵は横向きにしないとダメかな?
★2024-03-13追記
Node-REDに下記の赤囲みを追加。20時に自動施錠するようにルーチン化させた。
なお、SwitchBotアプリではロックに対して定刻実行の機能はありません。
-
購入金額
6,300円
-
購入日
2024年02月19日
-
購入場所
Yahoo!オークション
ZIGSOWにログインするとコメントやこのアイテムを持っているユーザー全員に質問できます。