Event durch Script erzeugen: Wie erstelle ich die Aktion?

Hi,
ich möchte durch ein PHP-Skript ein Event anlegen. Funktioniert auch alles bis auf das Anlegen der Aktion. Und zwar möchte ich die Statusvariable des Targets auf einen bestimmten Wert setzen. Welche Aktionsparameter muss ich der Aktion dafür übergeben? Bisher übergebe ich nur ein leeres Array als Parameter. Damit wird die bool-Statusvariable auf false gesetzt:

IPS_SetEventAction($eventId, "{E616C2B2-A827-1712-4AE0-841C57B3DD74}", []);

Ich vermute das ist eine Wert setzen oder schalten Aktion? Diese haben eigentlich immer den Parameter VALUE, welcher auf den neuen Wert gesetzt wird, also beispielsweise [ ‚VALUE‘ => 42 ]

Das ist die „Schalte Statusvariable“-Aktion, die ich auf Aktionen — IP-Symcon :: Automatisierungssoftware gefunden habe. Ich möchte damit eine bool-Statusvariable schalten. Allerdings funktioniert es mit diesen Beispielen nicht. Im UI des erzeugten Events steht „Parameter für Schalte auf Wert“ immer auf „Aus“.

IPS_SetEventAction($event, "{E616C2B2-A827-1712-4AE0-841C57B3DD74}", ["VALUE" => true]);
IPS_SetEventAction($event, "{E616C2B2-A827-1712-4AE0-841C57B3DD74}", ["VALUE" => "1"]);
IPS_SetEventAction($event, "{E616C2B2-A827-1712-4AE0-841C57B3DD74}", ["VALUE" => 1]);

Ah, schalte für Statusvariable braucht ein bisschen mehr. Ich glaube du musst noch in ‚IDENT‘ den Ident der Statusvariable mitgeben. Wenn du aber einfach mal ein Event mit der Aktion vorbereitest und per IPS_GetEvent ausliest, dann findest du da auch die Parameter in EventActionParameters

Die Aktion ist (laut dem Beispiel in der Doku) sogar kaskadiert.
Es enthält nur den ident und dann eine weitere Aktion welche auf Basis der verfügbaren Aktionen zu diesem Ident ausgewählt werden kann (wie schalte auf Wert oder Setze auf Wert).
Target ist hier ja eine Instanz und Ident der Ident einer Variable des Target.

Die Aktion „Schalte auf Wert“ ist da einfacher.
Die braucht nur den Target und den VALUE :slight_smile:
Michael

Danke, das Auslesen eines bestehenden Events hat die Lösung gebracht. So funktioniert’s nun:

IPS_SetEventAction($event, "{E616C2B2-A827-1712-4AE0-841C57B3DD74}", ["ACTION" => "{\"actionID\":\"{FCE37F48-DA3F-45DD-AC77-71343792CC2D}\",\"parameters\":{\"VALUE\":true}}", "IDENT" => "Value"]);