Programm mit Trigger auf Systemvariable löst bei Änderung via IOBroker nicht aus

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

Sandomor
Beiträge: 239
Registriert: 07.11.2007, 15:27
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wien
Hat sich bedankt: 1 Mal

Programm mit Trigger auf Systemvariable löst bei Änderung via IOBroker nicht aus

Beitrag von Sandomor » 31.10.2018, 07:37

Hallo Leute,

seit Tagen beschäftigt mich ein Fehler:

Ich habe ein Programm auf der RM. (HW_RM_Prg.png). Hier sollte die Änderung einer Systemvariable (HZ_EG_WZ_SET_TEMP, Typ Zeichenkette) überwacht werden. Und bei Änderung ein Script gestartet werden.

Wenn ich die Systemvariable mittels eines Programms ändere - oder auch via HQ WebUI, dann läuft das Script (der den Wert in eine Heizungsgruppe überträgt).

Nun habe ich eine Visualisierung in IOBroker, welches die Systemvariable beschreibt. Der eingestellte Wert kommt in der Systemvariable an (auch das ACK in IO Broker ist zu sehen) aber das Programm triggert nicht.

Ich habe auch schon versucht die Systemvariable als Typ Zahl anzulegen und den Trigger auf größer als 0 mit "bei Änderung auslösen" - gleicher Effekt.
Auch habe ich schon versucht in beiden Varianten (Typ Zahl und Typ Zeichenkette) "bei Aktualisierung auslösen" zu verwenden - gleicher Effekt.

RM Version: 3.37.8.20181026
IoBRoker: alle Adapter auf der aktuellsten Version


Kennt diesen Effekt wer?

Danke für Eure Hilfe.
Dateianhänge
HW_RM_Prg.png
---------------------------------------------
Auf mehrfachen Wunsch hier keine Inventur meiner Homematic mehr... Viele Komponenten in BEtrieb

Benutzeravatar
Black
Beiträge: 5463
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 418 Mal
Danksagung erhalten: 1069 Mal
Kontaktdaten:

Re: Programm mit Trigger auf Systemvariable löst bei Änderung via IOBroker nicht aus

Beitrag von Black » 31.10.2018, 08:37

zeichenkette kannst du nur sinnig auf aktualisierung triggern in der ccu, nicht auf änderung.

also im iobroker so schrieben, das die systemvariable nur geändert wird bei änderung oder script in der ccu anpassen, dass dort auf änderung geprüft wird nach dem triggeraufruf.

Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Sandomor
Beiträge: 239
Registriert: 07.11.2007, 15:27
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wien
Hat sich bedankt: 1 Mal

Re: Programm mit Trigger auf Systemvariable löst bei Änderung via IOBroker nicht aus

Beitrag von Sandomor » 31.10.2018, 09:10

Black hat geschrieben:
31.10.2018, 08:37
zeichenkette kannst du nur sinnig auf aktualisierung triggern in der ccu, nicht auf änderung.

also im iobroker so schrieben, das die systemvariable nur geändert wird bei änderung oder script in der ccu anpassen, dass dort auf änderung geprüft wird nach dem triggeraufruf.

Black
Danke für die Antwort - wie in meinem ersten Post geschon geschrieben ändert sich das Verhalten nicht, wenn ich den Programmtrigger auf "bei Aktualisierung" ändere. Verhalten gleich: Änderunge in IOBRoker - kein Trigger, Änderung via HQWebUI oder Programm - Trigger. Auch das gleiche Verhalten bei Typ Zahl der Systemvariablen.


lg
---------------------------------------------
Auf mehrfachen Wunsch hier keine Inventur meiner Homematic mehr... Viele Komponenten in BEtrieb

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Programm mit Trigger auf Systemvariable löst bei Änderung via IOBroker nicht aus

Beitrag von alchy » 31.10.2018, 09:22

Doppeltes gleiches WENN anlegen in dem du es veroderst bei Zeichenkettenvergleich.
Grundverraussetzung ist aber das Ändern der Systemvariablen mittels. State()

Beim Ändern des Typs einer Systemvariablen, welche schon in einem Programm als Trigger verwendet wird, kann es auch Sinn machen das komplette Programm NEU anzulegen.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Benutzeravatar
jmaus
Beiträge: 9819
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 459 Mal
Danksagung erhalten: 1856 Mal
Kontaktdaten:

Re: Programm mit Trigger auf Systemvariable löst bei Änderung via IOBroker nicht aus

Beitrag von jmaus » 31.10.2018, 09:29

Ist das wirklich so? Dann könnte man das mal ReGAHss ticket im RaspberryMatic GitHub reporten, dann kann ich mir das mal in ReGa näher anschauen wenn ich die Zeit dazu finde. Sollte sich ja ändern/reparieren lassen wenn man nen gut beschriebenen Testcase dazu hat.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Benutzeravatar
Black
Beiträge: 5463
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 418 Mal
Danksagung erhalten: 1069 Mal
Kontaktdaten:

Re: Programm mit Trigger auf Systemvariable löst bei Änderung via IOBroker nicht aus

Beitrag von Black » 31.10.2018, 09:30

sehr suspekt... (solche sachen laufen auf meinen beiden systemen ohne probleme bisher)

ok...

speicher dir das script mal auf deinem PC ab.
dann lösch das programm

leg neues programm an
systemzustand deine systemvariable, auf aktualiserung

dann
script
dom.GetObject("CUxD.CUX2801001:1.SYSLOG").State("Habe getriggert");

wenn das programm getriggert wird schreibt es dir einen Eintrag ins CUXd Syslog...
(Es braucht ein CUXd Exec Gerät)

Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Sandomor
Beiträge: 239
Registriert: 07.11.2007, 15:27
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wien
Hat sich bedankt: 1 Mal

Re: Programm mit Trigger auf Systemvariable löst bei Änderung via IOBroker nicht aus

Beitrag von Sandomor » 31.10.2018, 10:02

jmaus hat geschrieben:
31.10.2018, 09:29
Ist das wirklich so? Dann könnte man das mal ReGAHss ticket im RaspberryMatic GitHub reporten, dann kann ich mir das mal in ReGa näher anschauen wenn ich die Zeit dazu finde. Sollte sich ja ändern/reparieren lassen wenn man nen gut beschriebenen Testcase dazu hat.
Gerne logge ich mal alle Dinge diesbezüglich und schicke Dir den Case....

danke
---------------------------------------------
Auf mehrfachen Wunsch hier keine Inventur meiner Homematic mehr... Viele Komponenten in BEtrieb

Sandomor
Beiträge: 239
Registriert: 07.11.2007, 15:27
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wien
Hat sich bedankt: 1 Mal

Re: Programm mit Trigger auf Systemvariable löst bei Änderung via IOBroker nicht aus

Beitrag von Sandomor » 31.10.2018, 10:06

alchy hat geschrieben:
31.10.2018, 09:22
Doppeltes gleiches WENN anlegen in dem du es veroderst bei Zeichenkettenvergleich.
Grundverraussetzung ist aber das Ändern der Systemvariablen mittels. State()
Die Änderung kommt von IoBroker - das ACK kommt auch an. Wenn ich es auf der CCU ändere (Clicky-Bunty Programm oder Scipt mit .State()) geht es - auch mit der HQWebUI. Nur bei der Änderung von IoBroker nicht.
alchy hat geschrieben:
31.10.2018, 09:22
Beim Ändern des Typs einer Systemvariablen, welche schon in einem Programm als Trigger verwendet wird, kann es auch Sinn machen das komplette Programm NEU anzulegen.
Das Testweise Ändern der Systemvariable hatte immer folgende Schritte:
- Löschen des Programms
- Löschen der Systemvariable
- Neuanlegen der Systemvariable (mit neuem Typ)
- Neuanlegen des Programms

leider jeweils ohne Effekt.

Aber danke für die Inputs - jeder kann mal was übersehen - und ich habe es jetzt gerade nochmal geprüft - mit o.a. Procedure...

Danke Alchy
---------------------------------------------
Auf mehrfachen Wunsch hier keine Inventur meiner Homematic mehr... Viele Komponenten in BEtrieb

Sandomor
Beiträge: 239
Registriert: 07.11.2007, 15:27
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wien
Hat sich bedankt: 1 Mal

Re: Programm mit Trigger auf Systemvariable löst bei Änderung via IOBroker nicht aus

Beitrag von Sandomor » 31.10.2018, 10:07

Black hat geschrieben:
31.10.2018, 09:30

speicher dir das script mal auf deinem PC ab.
dann lösch das programm

leg neues programm an
systemzustand deine systemvariable, auf aktualiserung

dann
script
dom.GetObject("CUxD.CUX2801001:1.SYSLOG").State("Habe getriggert");

wenn das programm getriggert wird schreibt es dir einen Eintrag ins CUXd Syslog...
(Es braucht ein CUXd Exec Gerät)

Black
Für meine Tests, schreibe ich natürlich ins Syslog - triggert einfach nicht bei der Änderung von IoBroker.
Auch schon mehrfach, alles "from the Scratch" neu angelegt...

Danke Dir aber für die Inputs...
---------------------------------------------
Auf mehrfachen Wunsch hier keine Inventur meiner Homematic mehr... Viele Komponenten in BEtrieb

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Programm mit Trigger auf Systemvariable löst bei Änderung via IOBroker nicht aus

Beitrag von alchy » 31.10.2018, 10:30

Wenn du den Rest von mir bedacht hast, dann bleibt noch die Grundvoraussetzung. Ändern mittels. State() das Ändern mittels. Variable() ändert zwar den Wert der Systemvariable, wird aber als Trigger nicht beachtet.

@jmaus
Was brauchst für meine Aussage für ein Testcase?

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Antworten

Zurück zu „RaspberryMatic“