Ein durch ein Ereignis getriggertes Skript wird nicht korrekt ausgeführt

Ich habe ein sehr seltsames Verhalten beobachtet und kann mir das nicht erklären. Einfaches Ziel ist es mit einem Homematic 6fach Taster eine Skript auszuführen das eine Lampe schaltet.

Also zunächst zwei Skripte angelegt, eines zum Einschalten und eines zum Ausschalten. Beide Skripte getestet, die Lampe lässt sich mit den beiden Skripten ein- / und ausschalten.

Jetzt habe ich ein Ereignis auf das Skript gelegt bei Variablenaktualisierung der Variable Press_Short des Tasters soll das Skript ausgeführt werden.
Wenn jetzt der Taster gedrückt wird die Variable Press_Short aktualisiert, man sieht wie das Ereignis ausgeführt wird und das das Skript wohl auch gelaufen ist allerdings schaltet die Lampe nicht. Am Skript liegt es nicht, denn das funktioniert ja, wenn man es alleine ausführt.

Irgendjemand eine Idee warum das Skript über das Ereigniss nicht richtig ausgeführt wird und die Lampe nicht schaltet?

Jetzt kommt aber das wirklich komische. Also wollte ich prüfen ob vielleicht irgendwas mit dem Ereignis nicht stimmt bzw. ob das ein Bug in IPS ist. Also habe ich eine Boolean Hilfsvariable angelegt und ein Skript was diese Variable abwechselnd auf true/false setzt. Jetzt wieder ein Ereignis auf das Toggle Skript gelegt das bei Variablenaktualisierung der Variable Press_Short das Skript ausführt. Die Variable ändert sich ganz normal zwischen true/false.

Was ist jetzt der Unterschied dass das bei dem einem Skript mit Ereignis funktioniert und bei dem anderen nicht?

Zu guter Letzt habe ich jetzt noch was ausprobiert. Ich lege ein weiteres Ereignis auf die Hilfsvariable das bei true das Einschaltsskript ausführt und ein weiteres Skript das bei false das Ausschaltskript ausführt. Und was soll ich sagen, auf einmal wird das gleiche Skript, was oben nicht mit einem Ereignis funktioniert, mit einer Hilfsvariable ausgeführt.

Das ganze Verwirrende sieht jetzt so aus
fehler.png

Es kann doch nicht sein, das man so ein komplizierten Konstrukt mit drei Ereignissen und Hilfsvariable bauen muss nur damit sich die Lampe schalten lässt. Das sollte doch auch mit nur einem Skript direkt auf das auszuführende Skript funktionieren.

Wer kann mir das erklären, ist das ein Bug, ein Bedienungsfehler oder denke ich vielleicht einfach falsch?

Wenn du im Objektbaum siehst, dass das Skript ausgeführt wurde, dann kann es eigentlich nur am Skript liegen. Ich würde im Skript mit echos etc. versuchen, der Ursache näher zu kommen. Sonst zeig doch mal dein Skript.

Gruß

Burkhard

Das ist das Skript mit passender Objekt ID


OSR_SetValue(33086,'STATE', true); //Lampe einschalten

bzw.


OSR_SetValue(33086,'STATE', false); //Lampe ausschalten

Dummy-Programm in der CCU angelegt?

In der CCU ist alles richtig konfiguriert, die Variable PRESS_SHORT aktualisiert sich auch stets beim Druck auf den Taster in IP-Symcon. Anhand des Zeitstempels sieht man auch das die Ereignisse bei Variablenaktualisierung der Variable des Tasteres ausgeführt werden. Der Unterschied ist eben nur dass das exakt gleiche Skript wenn das Ereignis direkt auf dem Skript liegt die Lampe nicht schaltet. Über das Konstrukt mir der Hilfsvariable schaltet das selbe Skript die Lampe und dieses Verhalten ist mir persönlich völlig unerklärlich warum dies in einem Fall funktioniert und im anderem nicht.

Ergänzend zur Analyse, es ist nicht mein Rechner bei dem dieses Phänomen auftritt. Ich kam da drauf wegen Ereignis Parameter und das scheint nicht zu funktionieren, daher wollte ich das mal näher anschauen. Auffällig ist nur das auf dem Raspberry selber TeamViewer läuft, diese Kombination ist mir persönlich unbekannt ich greife wenn per Remotedesktop oder SSH auf den Raspberry zu. Könnte das eventuell auch mit eine Ursache sein? Ich habe keinerlei Erfahrung ob es Einschränkungen mit TeamViewer auf einem Raspberry und IP Symcon auf dem gleichen System gibt.

Bau doch da mal ein echo ein, um erstmal herauszufinden, ob das Skript überhaupt gestartet wird…

Also das fällt unter Dinge die die Welt nicht versteht, jetzt geht es auf einmal. Keine Ahnung warum und wieso aber egal, Hauptsache es funktioniert.