Hallo zusammen,
ich habe meine Shelly Plus 2PM bei den Rollläden verbaut. Nun möchte ich gerne via Cloud API die Rollläden steuern.
wenn ich folgende URL eingebe erhalte ich einen Status:
https://shelly-server.shelly.cloud/device/status?id=device_id&auth_key=my_key
shelly-server ist natürlich der Cloud Server auf dem das Gerät läuft
device_id die Device Id
auth_key ist mein Authentifizierungs Key aus der App
als Response erhalte ich JSON, welcher für mich auf den ersten Blick gut aussieht. Dort steht ausserdem auch "cloud":{"connected":true}, was ja auch durch den Request selbst schon ersichtlich ist...
Nun möchte ich aber den Rollladen steuern. Laut API Doku muss ich also einen POST Request auf folgendem Endpunkt absetzen:
https://shelly-server.shelly.cloud/device/relay/roller/control?direction=close&id=device_id&auth_key=my_key
hier kann direction laut Doku close,open und stop sein.
Nun bekomme ich bei egal welcher direction immer folgende Response:
Ich habs sowohl mit GET als auch mit POST probiert.
Hier mal ein kurzes Python Script, welches meinen POST Request ausführen würde und den gleichen Fehler bekommt:
import requests
def execute_post(direction, id, auth_key, shelly_server):
url = f"https://{shelly_server}.shelly.cloud/device/relay/roller/control"
params = {
"direction" : direction,
"id": id,
"auth_key": auth_key
}
try:
response = requests.post(url, params=params)
if response.status_code == 200:
print("POST request successful.")
print(response.text)
else:
print(response.text)
except Exception as e:
print(f"An error occurred: {str(e)}")
if __name__ == "__main__":
direction = 'close'
#direction = 'stop'
#direction = 'open'
id = 'device_id'
auth_key = 'my_key'
shelly_server = 'shelly-xx-xx'
execute_post(direction, id, auth_key, shelly_server)
Alles anzeigen
Weiss jemand, wieso die API immer wrong direction provided als Fehler zurück gibt?
Muss ich, damit das geht, irgendwelche speziellen Konfigurationen am Shelly vornehmen, ausser die Cloud zu aktivieren?
Danke für die Unterstützung.