Steuern Sie Ihr Home Smart Lock (Sesami) über die Raspeltorte.
Verwenden Sie ein eindeutiges Token.
python
#Rufen Sie Geräteinformationen mit str ab, indem Sie den Schlüssel angeben
# args: device_id, serial, nickname
def get_device_info(key):
url = "https://api.candyhouse.co/public/sesames"
headers = {"Authorization": token}
r = requests.get(url, headers=headers)
json_data = r.json()
return json_data[0][key]
Beachten Sie, dass sich die URL geringfügig von STEP1 unterscheidet. STEP1:https://api.candyhouse.co/public/sesames STEP2:https://api.candyhouse.co/public/sesame
#Entsperren, wenn der Schlüsselstatus gesperrt ist,entsperren, wenn entsperren
def toggle_device_key(device_id):
url = "https://api.candyhouse.co/public/sesame/" + device_id
headers = {"Authorization": token}
if key_is_locked(device_id) is True: # locked
r = requests.post(url, headers=headers, data='{"command":"unlock"}')
elif key_is_locked(device_id) is False: # unlocked
r = requests.post(url, headers=headers, data='{"command":"lock"}')
else:
print("error! toggle_device_key")
return
json_data = r.json()
return json_data["task_id"]
python
# task_Geben Sie die ID an und geben Sie das Ausführungsergebnis als Booleschen Wert zurück
def check_task_state(task_id):
url = "https://api.candyhouse.co/public/action-result?"
headers = {"Authorization": token}
# task_Tun Sie nichts, wenn die ID leer ist
if task_id is None:
return
r = requests.get(url + "task_id=" + task_id, headers=headers)
json_data = r.json()
#Status abgeschlossen(terminated)Warte bis
while json_data["status"] != "terminated":
# wait
time.sleep(3)
# retry
r = requests.get(url + "task_id=" + task_id, headers=headers)
json_data = r.json()
else:
#Gibt den Status des Ausführungsergebnisses als boolesch zurück
return json_data["successful"]
Recommended Posts