REST API Szenenaktivierung mit PHP

Hallo allerseits,

ich komme seit Tagen mit einem Problem nicht weiter und hoffe hier Hilfe zu finden.

Ich möchte aus einer externen Weboberfläche über die REST API einzelne Szenen aktivieren und deaktivieren.
Ich kann bisher alle möglichen Geräte abfragen und schalten und sogar Szenen deaktivieren aber einfach nicht aktivieren, hat da jemand eine Idee woran das liegen kann, laut Fibaro Dokumentation sollte es gehen? Alternativ freue ich mich auch über jede Anregung das Problem anderweitig zu händeln.
Im JSON Objekt zu den einzelnen Szenen gibt es auch den Eintrag “runconfig” für den die Werte: “Manual” sowie “Trigger_and_manual” gültig sind, eine Lösung wie ich dies über API ändern kann würde mich auch riesig weiter bringen.

Funktioniert
http://hc2.ip/api/scenes/6/action/disable

Funktioniert nicht:
http://hc2.ip/api/scenes/6/action/enable

=> Response Code: 405 (Method not allowed)

Software: 4.111 Beta (Mit der letzten stabilen Version hat es auch nicht funktioniert)

Vielen Dank im voraus,
Lukas

Hi,

sofern das aktivieren wirklich funktioniert, klingt das für mich stark nach einem Bug der Software. Hast du dazu mal ein Ticket beim Support geöffnet? Alternativ kannst du auch ein PUT-Befehl über PHP realisieren, welcher dann als Workaround fungiert.

Gruß

Hi, ja das deaktivieren (nicht das aktivieren) funktioniert problemlos.

Gibt es eine gute Quelle, die einem die Logik der Fibaro HTTP Requests näher bringt als fibaro.ip/docs ?

Bei einem PUT Befehl muss ich immer den GANZEN Body mit angeben? Für die Szenen sieht er ja bspw. so aus:

{
“id”: 0,
“name”: “”,
“type”: “”,
“roomID”: 0,
“iconID”: 0,
“enabled”: “bool”,
“autostart”: “bool”,
“protectedByPIN”: “bool”,
“killable”: “bool”,
“runningInstances”: 0,
“visible”: “bool”,
“isLua”: “bool”,
“lua”: “”,
“properties”: “”,
“liliStartCommand”: “”,
“liliStopCommand”: “”,
“html”: “”,
“triggers”: {
“properties”: [
null
],
“globals”: [
null
]
},
“sortOrder”: 0
}

Und dann versteh ich auch noch nicht wie ich die Szene darüber aktivieren bzw. deaktivieren kann, da “enabled” einen Datentyp und keinen Status erwartet o.0…
Bin leider noch sehr grün hinter den Ohren was JSON und HTTP Requests angeht aber das ist das letzte mir noch fehlende Puzzleteil :confused:

Hi,

anscheinend funktioniert es mit dem PUT-Befehl leider nicht. Bei mir sieht auch die API anders (allerdings FW 4.110) aus. Mach am Besten mal ein Support-Ticket bei Fibaro auf. Vielleicht wird es ja zeitnah gefixt.

Unter https://developer.fibaro.com findest du zu dem Thema mehr Informationen.

Gruß

Vielen Dank für die Antworten schonmal.

Kannst du mir vielleicht sagen ob der Request generell bei dir funktioniert? Das wäre total Klasse. Im zweifelsfall hat sich bei mir dann nur durch die Konfiguration irgendwo etwas zerschossen.

Ist das zufälligerweise ein Feature aus der neuen Beta? Bei mir gibt es so einen API-Call gar nicht…

Gruß

Ich hab einen Screenshot angehängt. Die Action Calls findet man auch erst wenn man das Feld leer lässt und einmal absendet.
Dann kriegt man eine: “Start, Stop, enable, disable” als Parameter erwartet response.

Das Ticket habe ich btw eröffnet und ich werde die Antwort hier teilen…

Darüber hinaus bin ich auch noch im Forum verrutscht, mein Gerät ist ein HCL o.0…

enable.jpg

Hi Lukas,

Und dann versteh ich auch noch nicht wie ich die Szene darüber aktivieren bzw. deaktivieren kann, da „enabled“ einen Datentyp und keinen Status erwartet o.0.. Bin leider noch sehr grün hinter den Ohren was JSON und HTTP Requests angeht aber das ist das letzte mir noch fehlende Puzzleteil :/
Als Datentyp ist ja bool angegeben. Versuche mal 0 oder 1 als Parameter bzw. true oder false. Wenn das ganze noch typsicher abgefragt wird in der Api, dann ohne Anführungszeichen, da es sonst evtl. als String interpretiert wird.

Viele Grüße