Wie lange ist "bei Änderung auslösen" gültig ?

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Dönermän
Beiträge: 5
Registriert: 31.12.2022, 14:39
System: CCU

Re: Wie lange ist "bei Änderung auslösen" gültig ?

Beitrag von Dönermän » 25.03.2024, 12:58

Ist doch offensichtlich, dass ich nicht beim Bund war :P
Man könnte den Soldaten ja auch vorher befohlen haben, sich nach der Aktion selbstst.... nein? ok.

Danke auch an Baxxy, bin jetzt im Bilde.

NickHM
Beiträge: 3733
Registriert: 23.09.2017, 12:04
Hat sich bedankt: 66 Mal
Danksagung erhalten: 120 Mal

Re: Wie lange ist "bei Änderung auslösen" gültig ?

Beitrag von NickHM » 25.03.2024, 13:46

Dönermän hat geschrieben:
25.03.2024, 12:58

Man könnte den Soldaten ja auch vorher befohlen haben, sich nach der Aktion selbstst.... nein? ok.
Doch das kann man. Nennt sich "Einschaltdauer" oder "einschalten für xxx sekunden".
Dann läuft der Timer im Soldaten abwärts.

Aber Deine Frage bezog sich ja auf den Befehlsgeber und der ruft nur einmal.

Gerti
Beiträge: 3035
Registriert: 28.01.2016, 18:06
System: CCU
Wohnort: Hürth
Hat sich bedankt: 16 Mal
Danksagung erhalten: 274 Mal

Re: Wie lange ist "bei Änderung auslösen" gültig ?

Beitrag von Gerti » 25.03.2024, 19:07

Hi,

die bisherigen Antworten waren grundsätzlich richtig, es gibt jedoch etwas zu bedenken.
Angenommen, ich habe eine Systemvariable "Rollladen_schliessen", die als Werte ok und fertig hat.

Nun habe ich für drei Rollläden ein Programm wie dieses hier erstellt, die auf Änderung dieser Variable triggern:

WENN Rollladen_schliessen ist ok bei Änderung auslösen
DANN
Rolladen_xy (1 - 3) sofort Behanghöhe 0%
Rollladen_schliessen sofort fertig

In diesem Fall wird nur einer der Rollläden fahren, die anderen nicht mehr.
Die Programme werden zwar noch getriggert, die Bedingung ist aber inzwischen nicht mehr erfüllt.

Man muß hier also darauf achten, dass der geänderte Status so lange erhalten bleibt, bis alle zu triggernden Programme abgearbeitet wurden.

Gruß
Gerti

NickHM
Beiträge: 3733
Registriert: 23.09.2017, 12:04
Hat sich bedankt: 66 Mal
Danksagung erhalten: 120 Mal

Re: Wie lange ist "bei Änderung auslösen" gültig ?

Beitrag von NickHM » 26.03.2024, 08:28

Gerti hat geschrieben:
25.03.2024, 19:07
Hi,

WENN Rollladen_schliessen ist ok bei Änderung auslösen
DANN
Rolladen_xy (1 - 3) sofort Behanghöhe 0%
Rollladen_schliessen sofort fertig

Man muß hier also darauf achten, dass der geänderte Status so lange erhalten bleibt, bis alle zu triggernden Programme abgearbeitet wurden.
Und deshalb könntest Du die Variable auch 2min verzögert auf "Fertig" stellen.
das ein Programm eine SysVar verändert, die es selbst als Trigger nimmt, ist immer schwierig. Und sicherlich ein Sonderfall.

CCU3-Tester
Beiträge: 26
Registriert: 10.01.2022, 21:11
System: CCU
Danksagung erhalten: 1 Mal

Re: Wie lange ist "bei Änderung auslösen" gültig ?

Beitrag von CCU3-Tester » 27.04.2024, 13:32

Gerti hat geschrieben:
25.03.2024, 19:07
Hi,

die bisherigen Antworten waren grundsätzlich richtig, es gibt jedoch etwas zu bedenken.
Angenommen, ich habe eine Systemvariable "Rollladen_schliessen", die als Werte ok und fertig hat.

Nun habe ich für drei Rollläden ein Programm wie dieses hier erstellt, die auf Änderung dieser Variable triggern:

WENN Rollladen_schliessen ist ok bei Änderung auslösen
DANN
Rolladen_xy (1 - 3) sofort Behanghöhe 0%
Rollladen_schliessen sofort fertig

In diesem Fall wird nur einer der Rollläden fahren, die anderen nicht mehr.
Die Programme werden zwar noch getriggert, die Bedingung ist aber inzwischen nicht mehr erfüllt.

Man muß hier also darauf achten, dass der geänderte Status so lange erhalten bleibt, bis alle zu triggernden Programme abgearbeitet wurden.

Gruß
Gerti
Das ist genau die Frage die ich mir schon seit langem stelle. Das grosse Fragezeichen ist doch wie die Programme abgearbeitet werden. Da genau dieser Zustand auftreten kann das mehrere Programme einen geänderten Zustand zur Ausführung benötigen, hätte ich erwartet das der Ablauf so ähnlich wie in einer SPS zyklisch erfolgt:

Zyklus-Start:
if (Variable_alter_Wert != Variable_aktueller_Wert)
{
Variable_hat_sich_geändert = true;
Variable_alter_Wert = Variable_aktueller_Wert
}

Jetzt laufen alle Programme und schauen und schauen nur bei Änderung auf Variable_hat_sich_geändert

Zyklus-Ende:
Variable_hat_sich_geändert = false

Somit wäre sichergestellt das alle Programme die den geänderten Zustand benötigen, ihn auch bekommen.
Alternativ sollte es möglich sein Programme gezielt an den Anfang oder ans Ende zu setzen damit die Variablen gesteuert manipuliert werden können.


Von NickHM: Und deshalb könntest Du die Variable auch 2min verzögert auf "Fertig" stellen.
das ein Programm eine SysVar verändert, die es selbst als Trigger nimmt, ist immer schwierig. Und sicherlich ein Sonderfall.

Warum soll das ein Sonderfall sein? Ich habe 3 Kameras die jeweils bei Bewegung eine Systemvariable auf true setzen, und am Ende der Bearbeitung direkt auf false. Die Bewegungserkennung ist damit abgeschlossen

Matsch
Beiträge: 5455
Registriert: 30.05.2019, 11:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Chemnitz
Hat sich bedankt: 116 Mal
Danksagung erhalten: 743 Mal

Re: Wie lange ist "bei Änderung auslösen" gültig ?

Beitrag von Matsch » 27.04.2024, 13:50

Das System ist aber nun mal ein eventgetriggertes System - aus Performancegründen. Darauf muss man sich einstellen.

Antworten

Zurück zu „HomeMatic allgemein“