Problem mit $_IPS['TRIGGER'] seit IPS V6.0

Hallo zusammen

Seit ich von IPS V5.5 auf V6.0 aktualisiert habe, stelle ich ein komisches Verhalten mit $_IPS[‚TRIGGER‘] fest. Ich sehe im Statusprotokoll mehrere solcher Warnings:

Result for Event 16938 Notice: Undefined index: TRIGGER in C:\ProgramData\Symcon\scripts\11644.ips.php on line 118

Auf der betreffenden Zeile steht folgender Befehl:

if($_IPS['TRIGGER'] == "OnChange")

Der Script wird auf Variablenänderung und aktualisierung getriggert, beide Fälle prüfe ich und reagiere im Script unterschiedlich darauf. Allerdings wird die Prüfung auf Variablenaktualisierung nicht reklamiert, sondern offenbar nur die Prüfung auf Variablenänderung.

Wie auch immer, ich habe das einmal weiter analysiert und mir bei Scriptausführung jeweils ins Log schreiben lassen, ob der Script auf Variablenaktualisierung oder Variablenänderung getriggert wird. Dazu habe ich folgende Zeilen aufgenommen:

//DEBUG-CODE
IPS_LogMessage("DEBUG Brandmelderscript", "Variablenzugriff via ".$_IPS['TRIGGER']." von Variable ".$_IPS['VARIABLE']);
echo("Check Log");

mit dem Resultat, dass im Statusprotokoll nun auch diese Zeile mit Notice: Undefined index: TRIGGER beanstandet wird. Zusätzlich findet sich auch wie gewünscht dieses Zeile:

26.08.2021, 22:38:05 | DEBUG Brandmelderscript | Variablenzugriff via  von Variable 14283

Das würde ja bedeuten, dass der Script weder durch Variablenänderung, noch durch Variablenaktualisierung aufgerufen wurde. Somit kann ich die Fehlermeldung ja noch verstehen, nur warum ist das erst seit V6.0 der Fall ? Weil es sind nur Events definiert, welche entweder auf Variablenänderungen oder Aktualisierungen den Script triggern. Ein manuelles Ausführen wird ebenfalls abgefangen.

Wurde am Verhalten von $_IPS['TRIGGER'] in V6.0 etwas verändert ?

Besten Dank für eure Hilfe.

Letraz

Eigentlich nicht. Ich möchte aber nicht einen Fehler in Zusammenhang mit den neuen Ablaufplänen ausschließen, da wir an der Ecke gearbeitet haben :slight_smile:

Magst du mal das $_IPS['SENDER'] mit einfügen? Und gerne auch $_IPS['EVENT'].

paresy

Vielen Dank. Habe ich soeben eingebaut, warte nun auf das erneute Triggern des Scripts und werde berichten.

@paresy Das Problem ist wieder aufgetreten. Folgende Zeilen stehen im Log:

28.08.2021, 09:57:22 | ScriptEngine         | Result for Event 38739
Notice: Undefined index: TRIGGER in C:\ProgramData\Symcon\scripts\11644.ips.php on line 118
Notice: Undefined index: TRIGGER in C:\ProgramData\Symcon\scripts\11644.ips.php on line 132
Check Log
28.08.2021, 09:57:22 | DEBUG Brandmelderscript | Event: 38739 Variablenzugriff via  von Variable 14283 von Sender: Variable

Ich hatte wie gewünscht folgende Zeile im Script eingefügt:

//DEBUG-CODE
IPS_LogMessage("DEBUG Brandmelderscript", "Event: ".$_IPS['EVENT']." Variablenzugriff via ".$_IPS['TRIGGER']." von Variable ".$_IPS['VARIABLE']." von Sender: ".$_IPS['SENDER']);
echo("Check Log");

Die Variable 14283 triggert den Script, via Event 38739, aber IPS kann dann mit dem Befehl $_IPS['TRIGGER'] nicht erkennen ob die Triggerung auf Aktualisierung oder Änderung geschah. Das Problem tritt auch mit anderen Variablen auf, die den gleichen Script triggern. In dieser Ecke ist meines Erachtens ein Bug vorhanden.

Letraz

Problem gefunden. Sehr schöner Bug der sich mit der 6.0 eingeschlichen hat. Fix kommt zum nächsten Update!

paresy

Vielen Dank. Dann warte ich mal auf das Update und resette regelmässig das Statusprotokoll … :slight_smile:

Da ich gerade gefragt wurde, ob dieser Fix schon verfügbar ist:

Ja, im Beta Kanal ist dafür bereits ein Fix verfügbar :slight_smile:

paresy

In der stable Version nun ja auch :slight_smile:

1 „Gefällt mir“