Ausgelöste Ereignisse mit Bedingunen in php

Liebes Forum,

folgende Frage zu den bedingten Ereignissen (also ausgelöste Ereignisse, in denen „weitere Bedingungen“ definiert sind):

Wie kann ich per Script abfragen, ob diese weiteren Bedingungen erfüllt sind? Im Objektbaum kann man das ja sehr einfach am grünen Haken oder gelbem Kreuz erkennen. Im php Code breche ich mir dazu aber gerade einen ab. Ich kann natürlich über die IPS_GetEvent Struktur die „EventConditions“-Struktur abfragen, aber das erscheint mir sehr aufwändig. Zudem sehe ich dort unter „VariableRules“ bei „Value“ auch gar keinen Wert, egal ob die Bedingung erfüllt ist oder nicht.

Geht es einfacher?

Danke,
Tom

Einfacher vielleicht nicht, aber die Prüfung kannst du mit IPS_IsConditionPassing machen.
Die Funktion braucht aber dazu auch das JSON aus dem Ereignis.
Michael

Ist es an der Stelle nicht einfacher das Script einfach ohne Bedingung auszulösen und im Script zu prüfen ob die Bedingungen erfüllt sind?

Dann kann doch direkt drauf reagieren :wink:

@Nall-chan Super, das ist auf jeden Fall schon mal einfacher

@firebuster Theoretisch ja, allerdings gibt es das Ereignis schon seit Jahren bedingungslos - die Bedingungen sind jetzt aber erst dazugekommen.

ääh, hast du noch einen Tip, wie ich das JSON aus dem Ereignis kriege? Probiert habe ich den mit json_enocde behandelten Teil des VariableRules-Abschnitts. Das schmeckt der IPS_IsConditionPassing Funktion aber nicht:

Warning: [json.exception.type_error.302] type must be number, but is null

Meine Ahnung, habe ich noch nicht genutzt.
Auf jeden Fall muss es wieder ein JSON also String und kein Array sein.
Michael

Jo, das lese ich aus so. Allerdings werde ich aus der SelectCondition der Doku auch nicht schlau. Der in dem Beispiel gezeigte JSON String geht jedenfalls auch nicht, da wohl das array fehlt. Ich zögere noch, die Bedingungen in php selbst in die Hand zu nehmen, da gerade die Datums und Zeit-Regeln aufwändig würden.

Vielleicht hat ja jemand ein Beipiel mit einem funktionierendem IPS_IsConditionPassing ?