SwitchBotロックを公式APIを使って開閉する方法(サーバ障害があっても動作できる方法)
SwitchBotロックの開閉操作は2022年9月19日に公開されたAPI v1.1によって、公式に対応がされています。
公式のアナウンス
[参考記事] SwitchBot API v1.1のリクエスト用curlを生成する
この記事の方法ではSwitchbotAPIのサーバを介さないため、Switchbotサーバの障害があっても操作できます。
SwitchBotボットを使う方法
SwitchBotボットの注意点
より安全な方法
リレーモジュールでON/OFFする方法
Node-REDとAlexaで操作する方法
過去に使用できていた非公開APIコマンド
SwitchBotボットを使う方法
SwitchBotロックの開閉操作を行うには、非公開のAPIコマンドを使わなくても公式APIでできます。SwitchBotロックは、
・リモートボタンで開錠・施錠の動作ができます。
・SwitchBotボットがAPIで操作できます。
この2つを組み合わせることで、APIで開錠・施錠を行うことが可能となります。
具体的には、リモートボタンにSwitchBotロックの開錠・施錠を設定し、リモートボタンに両面テープでSwitchBotボットを張り付けます。
そしてSwitchBotボットをAPIでpress操作をします。
両面テープだけではすぐにSwitchBotボットが外れてしまうので、クランプなどを使って固定をするとよいです。

[参考記事] SwitchBotボットの危険性 使用方法によってはとても危険です
SwitchBotボットの注意点
SwitchBotのBLE版APIは、
・必要ライブラリのインストール
・Gitからコードをダウンロード
これだけで、特別な認証をしなくてもSwitchBotデバイスのBLE MACアドレスを指定してデバイス操作ができます。
つまりSwitchBotボットのMACアドレスが分かればだれでも操作ができてしまいます。
[参考記事] SwitchBotボットの危険性 使用方法によってはとても危険です
より安全な方法
リモートボタンを分解し、タクトスイッチの結線を1チャンネルリレーモジュールでON/OFFする仕組みを作り、Raspberry Piで制御するという方法があります。
この方法だとSwitchBotボットのONからリモートボタンが押されるまでのタイムラグがなくなります。
またBluetoothが不安定なSwitchBotボットより確実な動作が行えます。
SwitchbotAPIのサーバを介さないため、インターネットがつながっていなくてもSwitchbotサーバの障害があっても操作できます。
SwitchbotAPIはリクエストに失敗することが多いだけでなく、リクエストに成功しても動作しないことがあります。
ほかにも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()
Node-REDとAlexaで操作する方法
Alexaとswitchbotロックを連携して、Node-REDサーバにnode-red-contrib-alexa-remote2ノードを追加して、Alexaアクションを操作することでサーバから動作させることができます。
http in => Alexa Smarthome => http response などで操作を設定します。
過去に使用できていた非公開APIコマンド
SwitchBotロックは非公開のAPIコマンド(lock/unlock)で開閉できていましたが、2022年7月29日より使用できなくなっています。
GitHub API Issue
{ "statusCode": 190, "body": {}, "message": "not support device type" }
関連記事
- SwitchBotボットの危険性 使用方法によってはとても危険です
- SwitchBot API v1.1のリクエスト用curlを生成する
- SwitchBotのAPIでテレビの電源のON/OFF状態を取得する方法
- switchbotシーリングライトをサーバから操作するいくつかの方法(APIの代用)
スポンサーリンク