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"
}

スポンサーリンク

スポンサーリンク

Section Variables セクション変数

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る