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

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

Beitrag von dodi » 28.06.2017, 11:58

Hallo zusammen,
ich habe folgende Beobachtung gemacht mit der ich so nicht gerechnet habe, und wollte mal fragen, ob das so richtig ist.

Ich habe ein Programm, welches das "Auto Auf" für meine Rolladen ermitteln soll.
An "normalen" Wochentagen soll dazu zum ermittelten Astro Zeitpunkt (frühestens 6:45) die Variable "Auto Auf" gesetzt werden.
An Wochenendtagen und Feiertagen soll um 8:30 die Variable "Auto Auf" gesetzt werden.

Nun passiert folgendes:
Bei Abfrage der Timer auf TIMER EVENT funktioniert die Logik so, wie sie funktionieren soll.

Bei Abfrage der Timer auf STATE oder TIMER GET wird die Variable an jedem Tag einmal um 6:45 und einmal um 8:30 gesetzt.

Mache ich da was falsch?

Grüße
Sascha
Dateianhänge
2017-06-27_171102.jpg

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

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

Beitrag von uwe111 » 28.06.2017, 14:24

Hallo Sascha,
dodi hat geschrieben:Mache ich da was falsch?
Dazu müsstest Du die nicht funktionierenden Programmverknüpfungen hier posten.

Wenn Du das Systemprotokoll der CCU für die Kanäle aktivierst, dann kannst Du Dir alle vom CUxD gesendeten Events ansehen.

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

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

Beitrag von dodi » 28.06.2017, 15:10

Hallo Uwe,
was meinst du mit nicht funktionierenden Programmverknüpfungen?
Das getestete Programm ist ja das Gleiche.
Im geposteten Screenshot wurden zum Test alle "TIMER EVENT" Abfragen gegen "STATE auf Aktualisierung auslösen" bzw. "TIMER GET <=0 auf Aktualisierung auslösen" geändert.
Meiner Beobachtung nach werden dann allerdings bei "STATE auf Aktualisierung auslösen" die weiteren Bedingungen im UND-Block nicht mehr beachtet,
und die Variable immer um 6:45 und um 8:30 gesetzt.
Bei "TIMER EVENT" funktioniert alles wie erwartet.
Die vom CUxD gesendeten Events helfen da nicht weiter, da dieser ja täglich um 6:45 (Astro Programm) und um 8:30 (fester Timer täglich 8:30) ein Event sendet.
Dieses sollte in der logischen Abarbeitung des Programms aber entsprechend verriegelt sein.

Beispiel:
Heute ist Montag und kein Feiertag
Somit sollte nur vom Astro Timer eine Ansteuerung um 6:45 stattfinden.

Bei TIMER EVENT -> A AUF um 6:45
Bei STATE / TIMER GET -> A AUF um 6:45 und 8:30

Grüße
Sascha

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

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

Beitrag von uwe111 » 28.06.2017, 18:33

dodi hat geschrieben:Im geposteten Screenshot wurden zum Test alle "TIMER EVENT" Abfragen gegen "STATE auf Aktualisierung auslösen" bzw. "TIMER GET <=0 auf Aktualisierung auslösen" geändert.
Das hattest Du vorher nicht geschrieben und "STATE auf Aktualisierung auslösen" gibt es so nicht. Entweder Du triggerst STATE=TRUE oder STATE=FALSE und das macht schon einen Unterschied. Deshalb auch die Frage nach den nicht funktionierenden Programmverknüpfungen.
dodi hat geschrieben:Die vom CUxD gesendeten Events helfen da nicht weiter, da dieser ja täglich um 6:45 (Astro Programm) und um 8:30 (fester Timer täglich 8:30) ein Event sendet.
Natürlich hilft das Protokoll für das Verständnis der Programmverknüpfungen weiter! Da siehst Du nämlich genau, auf welchen Wert TIMER_GET und STATE zu den Zeitpunkten gesetzt wird und auch andere Datenpunkte, die Du zum Triggern nutzen kannst.

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 » 28.06.2017, 21:21

Ich meinte natürlich STATE = TRUE bei Aktualisierung auslösen.

@uwe: Offensichtlich ist das Erklären von Problemen in schriftlicher Form nicht meine Stärke...sorry dafür.
Hast du das Problem denn verstanden? Kannst du das Verhalten eventuell versuchen nachzustellen?

Die Protokolierung der 3 Timer habe ich nun eingeschaltet.
Verstehe aber trotzdem nicht, warum die Variable getriggert werden kann bei Auslösung des Timers, obwohl die anderen Eingänge der UND Bedingung nicht wahr sind.

Gruß Sascha

Cash
Beiträge: 1184
Registriert: 09.01.2016, 17:42
Wohnort: Sauerland
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

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

Beitrag von Cash » 29.06.2017, 10:02

Bei mir machen die Programme genau das was sie sollen und wann sie es sollen sofern alle "nur prüfen" Dinge erfüllt sind.

Dabei spielt es keine Rolle wie der Timer getriggert wird.

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 » 29.06.2017, 12:50

Bei mir werden die nur prüfen Bedingungen anscheinend ignoriert. Ich versteh nicht warum...

Cash
Beiträge: 1184
Registriert: 09.01.2016, 17:42
Wohnort: Sauerland
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

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

Beitrag von Cash » 29.06.2017, 14:05

Leg das Programm nochmal neu an.

Und die bist sicher das die Bendinungen zu den Schaltzeitpunkten nicht wahr sind?

Und Du beachtest auch die Logik das er bei jeden Triggern oben anfängt und sobald ein Zweig wahr ist wird genau dieser ausgeführt?

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 » 29.06.2017, 16:03

Das Programm habe ich bereits neu angelegt, der Zustand der Variablen ist eindeutig wie beschrieben.
Das Verhalten ist immer noch das Gleiche.

Und es geht ja darum, das TIMER EVENT so wie erwartet funktioniert.
Stelle ich aber auf STATE / TIMER GET um, wird immer beim Timer Event geschaltet, egal welche Bedingungen noch in der Abfrage sind...

Ich kann ja TIMER EVENT benutzen und alles ist gut, aber ich würde gerne verstehen, warum das so ist.
Der CUxD-Doku nach sollte das Ergebnis der Funktionen identisch sein...

Cash
Beiträge: 1184
Registriert: 09.01.2016, 17:42
Wohnort: Sauerland
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

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

Beitrag von Cash » 30.06.2017, 08:22

Du hast nicht geschrieben wie die Systemvariablen stehen aber ich vermute ich verstehe nun Dein Problem...

Du beachtest die Logik nicht....

Das Programm wird immer von oben nach unten abgearbeitet egal welcher Zweig das Programm antriggert.

Timer_event ist nur zum Zeitpunkt wahr...

Während die anderen z. B. State True auch nach Ablauf vom Timer immer noch True ist und somit der Zweig erfüllt ist.

Du müßest quasi nach Ablauf des Timers diesen auf State = False stellen...

oder was hier gerne empfolhen wird Dein Programm auf mehrere kleine aufteilen auch dann hast Du das Problem nicht.

Antworten

Zurück zu „CUxD“