SwitchBotロックを公式APIを使って開閉する方法
SwitchBotロックの開閉操作を行うには、非公開のAPIコマンドを使わなくても公式APIでできます。
SwitchBotロックは、
・リモートボタンで開錠・施錠の動作ができます。
・SwitchBotボットがAPIで操作できます。
この2つを組み合わせることで、APIで開錠・施錠を行うことが可能となります。
具体的には、リモートボタンにSwitchBotロックの開錠・施錠を設定し、リモートボタンに両面テープでSwitchBotボットを張り付けます。
そしてSwitchBotボットをAPIでpress操作をします。
両面テープだけではすぐにSwitchBotボットが外れてしまうので、クランプなどを使って固定をするとよいです。
注意点
SwitchBotのBLE版APIは、
・必要ライブラリのインストール
・Gitからコードをダウンロード
これだけで、特別な認証をしなくてもSwitchBotデバイスのBLE MACアドレスを指定してデバイス操作ができます。
つまりSwitchBotボットのMACアドレスが分かればだれでも操作ができてしまいます。
より安全な方法
リモートボタンを分解し、タクトスイッチの結線を1チャンネルリレーモジュールでON/OFFする仕組みを作り、Raspberry Piで制御するという方法があります。
この方法だとSwitchBotボットのONからリモートボタンが押されるまでのタイムラグがなくなります。
またBluetoothが不安定なSwitchBotボットより確実な動作が行えます。
ほかにもSwitchBotボットではなくマイクロサーボで操作する方法がなどがあります。
リレーモジュールでON/OFFする方法
リモートボタンを分解すると下のようになっています。
タクトスイッチの赤枠の部分に配線をつなぎます。
(電池側のSW1・SW2のテスト端子でもできるかもしれません)
リレーモジュールとつなぎます。
リレースイッチでON/OFFするコードは下記のようになります。
import RPi.GPIO as GPIO from time import sleep RELAY_PIN = 18 GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) GPIO.setup(RELAY_PIN, GPIO.OUT) GPIO.output(RELAY_PIN, True) sleep(0.35) GPIO.output(RELAY_PIN, False) sleep(0.35) GPIO.cleanup()
過去に使用できていた非公開APIコマンド
SwitchBotロックは非公開のAPIコマンド(lock/unlock)で開閉できていましたが、2022年7月29日より使用できなくなっています。
GitHub API Issue
{ "statusCode": 190, "body": {}, "message": "not support device type" }
スポンサーリンク
スポンサーリンク