Verhalten CUxD-Timer (TIMER EVENT / STATE / TIMER GET)

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

dodi
Beiträge: 137
Registriert: 26.12.2016, 11:59
Hat sich bedankt: 2 Mal

Re: Verhalten CUxD-Timer (TIMER EVENT / STATE / TIMER GET)

Beitrag von dodi » 30.06.2017, 10:48

Aber wieso wird denn getriggert, obwohl die UND Bedingung garnicht wahr ist? Das leuchtet mir nicht ein. Wenn dem so ist, hast du natürlich vollkommen recht mit deiner Erklärung. Versuche das nächste Woche mal nachzustellen...
Danke schonmal

Xel66
Beiträge: 14169
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 586 Mal
Danksagung erhalten: 1501 Mal

Re: Verhalten CUxD-Timer (TIMER EVENT / STATE / TIMER GET)

Beitrag von Xel66 » 30.06.2017, 16:07

dodi hat geschrieben:Aber wieso wird denn getriggert, obwohl die UND Bedingung garnicht wahr ist?
Sie ist doch wahr, sowohl bei "State=TRUE" als auch bei "TIMER_GET<=0" ergibt bei einer Prüfung ein WAHR, wenn der Timer abgelaufen (oder gestoppt) ist. Das TIMER_EVENT scheint aber nur ein kurzfristiges Ereignis - eben ein Event - zu sein, welches bei einer späteren Prüfung eben den Wahrheitsgehalt FALSCH ergibt.

Insofern ergeben sich eben unterschiedliche Verhaltensweisen bei der Abfrage. Die Ursache ist u.a. die Art und Weise, wie die CCU die Programme abarbeitet. Egal welcher Trigger die Programmabarbeitung angestoßen hat, es läuft von oben nach unten durch und prüft die Bedingungen. Und sowohl "bei Änderung" als auch "bei Aktualisierung" ergeben ein Wahr, wenn der jeweilige Zustand zum Zeitpunkt der Prüfung erfüllt ist. Das Verhalten ist somit identisch wie "nur prüfen". Und es wird dann das DANN der ersten WAHR-ergebenden Bedingung ausgeführt. Die Prüfung auf EVENT ergibt dann ein FALSCH.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

dodi
Beiträge: 137
Registriert: 26.12.2016, 11:59
Hat sich bedankt: 2 Mal

Verhalten CUxD-Timer (TIMER EVENT / STATE / TIMER GET)

Beitrag von dodi » 30.06.2017, 16:34

Verstehe ich das richtig, dass, wenn sich das triggernde Element in einer UND Abfrage befindet, welche nicht wahr ist (in meinem Fall der Timer), trotzdem das komplette Programm abgearbeitet wird. Und wenn dann ein anderes UND zu diesem Zeitpunkt wahr ist, dieses ausgeführt wird? Ich war der Meinung, dass das UND des Triggers wahr sein muss, um die Abarbeitung des Programms zu starten...

Können wir den Fall am Beispiel für einen Wochentag mal "durchdeklinieren"?

Wenn ich dich richtig verstanden habe, dann ist an einem Wochentag das erste UND wahr, wenn der Astro Timer triggert und die Variable wird zum ersten mal gesetzt. Um 8:30 triggert jetzt der feste Timer, obwohl weder das zweite noch das dritte UND wahr sind. Da der erste Timer aber immer noch STATE True hat, wird die Variable gesetzt.

Hab ich das richtig verstanden?

Benutzeravatar
uwe111
Beiträge: 4821
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 246 Mal
Kontaktdaten:

Re: Verhalten CUxD-Timer (TIMER EVENT / STATE / TIMER GET)

Beitrag von uwe111 » 30.06.2017, 17:59

dodi hat geschrieben:Verstehe ich das richtig, dass, wenn sich das triggernde Element in einer UND Abfrage befindet, welche nicht wahr ist (in meinem Fall der Timer), trotzdem das komplette Programm abgearbeitet wird. Und wenn dann ein anderes UND zu diesem Zeitpunkt wahr ist, dieses ausgeführt wird?
Ja, egal welcher Datenpunkt in der Programmverknüpfung die Triggerung auslöst... es wird immer das gesamte Programm von oben nach unten abgearbeitet.

Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

dodi
Beiträge: 137
Registriert: 26.12.2016, 11:59
Hat sich bedankt: 2 Mal

Verhalten CUxD-Timer (TIMER EVENT / STATE / TIMER GET)

Beitrag von dodi » 30.06.2017, 18:20

Ja super, das ich das nun endlich auch gerafft habe. Danke euch für eure Ruhe mir das nochmal klar zu machen. Ich habe es mehrfach schon gelesen aber immer anders interpretiert, erst mit dem Post von XEL66 ist der Groschen gefallen.
Sorry dafür und nochmals Danke.

Xel66
Beiträge: 14169
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 586 Mal
Danksagung erhalten: 1501 Mal

Re: Verhalten CUxD-Timer (TIMER EVENT / STATE / TIMER GET)

Beitrag von Xel66 » 30.06.2017, 21:31

Wenn Du die Reihenfolge umkehrst, also mit dem spätesten Auslöser beginnst, dann kannst Du das Programm auch mit den anderen Triggern nutzen. Man muss bei Programmen mit solch verODERten Triggerblöcken die Reihenfolge beachten oder auf eine zusätzliche Art gegeneinander verriegeln. Manchmal kann man diese Eigenheit auch ausnutzen. Das sind dann aber ganz spezielle Anwendungsfälle.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

dodi
Beiträge: 137
Registriert: 26.12.2016, 11:59
Hat sich bedankt: 2 Mal

Re: Verhalten CUxD-Timer (TIMER EVENT / STATE / TIMER GET)

Beitrag von dodi » 01.07.2017, 00:04

Ja, da habe ich als ich es dann verstanden hatte auch gleich drüber nachgedacht. An der Stelle bin ich dann aber ein Freund von Verriegelungen. Die verstehe ich dann auch noch in ein paar Monaten, wenn ich mir die Logik nochmal anschaue.
Nochmal vielen Dank.

Antworten

Zurück zu „CUxD“