NEWS
UNSOLVED Ich möchte Shelly Scene mit HTTP(POST) Baustein steuern
-
zurück kommt:
script.js.common.Thermostat_Steuern: {"isok":false,"errors":{"invalid_header":"Unauthorized! Wrong authorization header provided!","invalid_token":"The login information is invalid! Please login again!"}}
Authorisierung ist mit der HTTP Shortcuts App auch nicht von nöten, das Format wird nicht passen.?
-
@lötauge sagte in Ich möchte Shelly Scene mit HTTP(POST) Baustein steuern:
Hast Du mal ein Link zur Doku? Wo hast die Url her?
Hier habe ich gerade nix zu Szenen gefunden:https://shelly-api-docs.shelly.cloud/cloud-control-api/communication
@codierknecht sagte in Ich möchte Shelly Scene mit HTTP(POST) Baustein steuern:
Hast Du das mal so versucht? (ungetestet - habe keine Shelly)
Zu JSON konvertieren ist nicht nötig und passiert eh intern.
-
@lötauge sagte in Ich möchte Shelly Scene mit HTTP(POST) Baustein steuern:
Authorisierung ist mit der HTTP Shortcuts App auch nicht von nöten
Offenbar schon
The login information is invalid! Please login again!
-
@haus-automatisierung sagte in Ich möchte Shelly Scene mit HTTP(POST) Baustein steuern:
Zu JSON konvertieren ist nicht nötig und passiert eh intern
Hatte ich auch noch im Kopf. War eher der Hosenträger zum Gürtel
-
@lötauge sagte in Ich möchte Shelly Scene mit HTTP(POST) Baustein steuern:
Authorisierung ist mit der HTTP Shortcuts App auch nicht von nöten, das Format wird nicht passen.?
Das sieht für mich erstmal alles richtig aus. Nur die Uri mit
scene/enable
habe ich noch nie gesehen und in der Doku nicht gefunden. Ich denke daher Du suchst am falschen Ende.Blockly sah von Anfang an erstmal richtig aus.
-
@haus-automatisierung said in Ich möchte Shelly Scene mit HTTP(POST) Baustein steuern:
Hast Du mal ein Link zur Doku? Wo hast die Url her?
Hier habe ich gerade nix zu Szenen gefunden:Ehrlich gesagt ist die URL aus dem ehem. Shelly Forum (Name hat sich geändert) Es wurde auf Facebook gepostet und zum Forum getragen. Könnte hier ein Link posten fals erlaubt.
Ein Link zu einem PDF mit beschreibung zu Devices kann ich anbieten.Ziel ist, ein Fenstersensor soll den Raumthermostat, der in der ShellyApp eingerichtet wurde, aktivieren/deaktivieren.
Das geht mit der weiter oben genannten App ohne Authentifizierung.Ich könnte also näher auf die Quellen eingehen, aber die gehen ins Smarthome-Forum.
Der Button der gemeint ist, den möchte ich de-/aktiviere
Edit: Screenshoots der HTTP Shortcuts APP
-
@lötauge sagte in Ich möchte Shelly Scene mit HTTP(POST) Baustein steuern:
Und das funktioniert so? "Form data" ist natürlich etwas anderes als hier gezeigt (und wie die API sonst arbeitet). Dann müsstest Du den Content-Type Header auf
application/x-www-form-urlencoded
setzen und die Daten anders übergeben. Das geht in Blockly aktuell nicht. -
Ja das funktioniert so mit der App, ich schalte so auch das Licht auf dem Grundstück aus dem Auto heraus ein. (device)
Ok, danke für die Antwort.
Also keine Lösung mit Blockly.
Die andere Bemerkung verstehe ich nicht. -
@lötauge Du kannst ja mal testen, ob der Header wirklich erforderlich ist. Eventuell wird der auf der anderen Seite gar nicht ausgewertet. Dann geht es ggf. auch mit Blockly.
Dann die Parameter wie GET-Parameter als String im POST übergeben. Also
auth_key=MWYyY2V1aWQBE18F1...&enabled=true&id=16725...
-
So geht's tatsächlich
Zum Nachstellen:
URL: https://shelly-XY-eu.shelly.cloud/scene/enable
Daten im Textbaustein: & auth_key=MW....E60 & enabled=false & id=123456789012Wie man die Daten bekommt:
Server URL und Auth-Key:
In der Shelly Control App
Einstellungen / Zugang und Berechtigung> Cloud Authorisierungs-Schlüssel > Schlüssel anfordern und notieren/kopierenShelly Cloud-Scenen auflisten:
https://shelly-xy-eu.shelly.cloud/scene/list?auth_key=xyz
im Log die ID zur Scene finden.
Die eine Scene abfragen (nice to have):
https://shelly-xy-eu.shelly.cloud/scene/get&id=xyz&auth_key=xyz
Scene steuern:
https://shelly-xy-eu.shelly.cloud/scene/enable Body: auth_key=ABC123...456DEF; enabled=(true/false); id=123...987
Danke Euch sehr.