Raspberry PiからSesame 5 ProをAPI経由で解錠しようとすると200が返るが鍵が動かない
解決したいこと
Raspberry PiからPythonスクリプトを使い、Sesame 5 ProをAPI経由で解錠・施錠したいです。
APIリクエスト自体は成功しているように見えるのですが、物理的に鍵が全く動作しません。
実行環境
Raspberry Pi 4 B
Python 3.11
使用ライブラリ: requests
デバイス構成:
Sesame 5 Pro
Sesame Hub 3(ペアリング済み、LED点灯確認済み)
試したコード
以下のsasame_control.pyを実行しました。
import requests
import base64
import hashlib
import hmac
import time
# ---- 情報 ----
API_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
DEVICE_ID = "xxxxxxxxxxxxxxxxxxxxxxxxxxFFFFF"
SECRET_KEY = bytes.fromhex("xxxxxxxxxxxxxxxxxxxxxxxxxx209443")
# ---------------------
def generate_sign(secret, ts):
message = ts.encode("utf-8")
sign = hmac.new(secret, message, hashlib.sha256).hexdigest()
return sign
def send_command(cmd):
ts = str(int(time.time()))
sign = generate_sign(SECRET_KEY, ts)
url = f"https://app.candyhouse.co/api/sesame2/{DEVICE_ID}/cmd"
headers = {
"x-api-key": API_KEY,
"Content-Type": "application/json"
}
payload = {
"cmd": cmd, # 82=lock, 83=unlock, 88=toggle
"history": base64.b64encode("raspi-control".encode()).decode(),
"sign": sign,
"timestamp": ts
}
r = requests.post(url, headers=headers, json=payload)
print("Response:", r.status_code, r.text)
if __name__ == "__main__":
print("🔓 Unlocking Sesame...")
send_command(83) # 解錠
time.sleep(5)
print("🔒 Locking Sesame...")
send_command(82) # 施錠
実行結果
python3 sesame_control.py
🔓 Unlocking Sesame...
Response: 200 {"statusCode":200}
🔒 Locking Sesame...
Response: 200 {"statusCode":200}
APIからのレスポンスは常に 200 {"statusCode":200}
Sesame Hub 3のLEDは強く点灯しており、リクエストを受けている反応はあり
Candy House公式のAPI利用回数カウントにも反映される
しかし Sesame 5 Pro本体の鍵は一切動作しない
補足
Sesameアプリからの操作(スマホ→Hub経由)は正常に解錠・施錠できます。
APIキーは正しく設定済みです。
Device Secret KeyもSesameアプリから取得済みのものを使用しています。
知りたいこと / 質問
レスポンスが200であっても鍵が動作しない場合、考えられる原因は何でしょうか?
Hub 3とSesame 5 Pro間の設定に不足がある?
同じように「200は返るが鍵が動かない」という現象を経験された方はいますか?
デバッグのために確認すべきAPIレスポンスやログの取り方があれば教えていただきたいです。
🙏 どなたかヒントをいただけると助かります!
0 likes