Hallo!
Ich habe da ein kleines Verständnisproblem bzgl. zweier Abschnitte im WebUI Handbuch. Es geht um das Triggern von Programmen bzw. wann die einzelnen Bedinungen eines Programmes überprüft werden. Dazu steht im Handbuch ab Seite 167 folgendes:
Das bedeutet für mich, dass die Bedinungen NUR geprüft werden, wenn sich der entsprechende Kanalzustand ändert. Anderseits steht auf Seite 154 als Einleitung zur Programmierung folgendes:
...was ja auf eine ständige Überprüfung hindeutet. Was ist da jetzt also der Unterschied bzw. für was benötige ich eine Triggerung?
Gruß,
kaju
Frage zu Programmierung (Triggerung)
Moderator: Co-Administratoren
Re: Frage zu Programmierung (Triggerung)
Das mit dem "ständig auswerten" ist wohl eine eher technische Beschreibung der inneren Abläuft der HomeMatic. Die Auswertung der Bedingungen könnte z.B. durch eine Endlos-Programmierschleife realisiert sein. Der Ablauf könnte wie folgt sein:
1) Bei "Nur Prüfen": Ist die Bedingung erfüllt, dann True, sonst False
2) Bei "Bei Änderung": Hat sich der Wert seit dem letzten Schleifendurchlauf geändert? Wenn ja, dann prüfen wie bei 1), sonst nichts machen.
3) Bei "Bei Aktualisierung": Hat sich das Aktualiseurungsdatun (inkl. Zeit) seit dem letzen Schleifendurchlauf geändert? Wenn ja dann prüfen wie bei 1), sonst nicht machen.
- Christoph
1) Bei "Nur Prüfen": Ist die Bedingung erfüllt, dann True, sonst False
2) Bei "Bei Änderung": Hat sich der Wert seit dem letzten Schleifendurchlauf geändert? Wenn ja, dann prüfen wie bei 1), sonst nichts machen.
3) Bei "Bei Aktualisierung": Hat sich das Aktualiseurungsdatun (inkl. Zeit) seit dem letzen Schleifendurchlauf geändert? Wenn ja dann prüfen wie bei 1), sonst nicht machen.
- Christoph
Re: Frage zu Programmierung (Triggerung)
Hallo und Danke für die Antwort.
Ich habe mich heute nochmal ausführtlicher damit beschäftigt und dabei nun folgendes festgestellt:
- Die Bedingungen eines Programmen werden mindestens EINMAL ausgeführt, wenn es aktiv geschaltet wird. Ist die einzige Bedinung eine "nur prüfen" Anweisung, wird dieses Programm dann während des Betriebs NIEMALS mehr ausgeführt es sei denn, es wird manuell aktiviert.
- "Nur prüfen" wird also nur beim erstmaligen Start geprüft oder ALS TEIL weiterer Bedingungen, um bestimmte Kanalzustände zu prüfen und NICHT auf deren Änderung zu reagieren.
- "Auslösen auf Änderung" wird NUR ausgeführt, wenn sich der Kanalzustand verändert hat, also z. Bsp. von "Aus" auf "An" oder umgekehrt.
- "Auslösen auf Aktualisierung" wird AUCH ausgeführt, wenn der Kanalzustand sich NICHT verändert hat, z. Bsp. bei "Aus" auf "An" aber EBEN AUCH bei "An" auf "An". Dies kann man z. Bsp. dafürt benutzen, die Einschaltdauer eines Treppenhauslichts bei jedem Tastendruck um eine entsprechende Zeit ZU VERLÄNGERN.
FAZIT:
Es werden wohl alle aktivierten Programme in einer Schleife (Loop) permanent überprüft. Jedes Programm wird dabei MINDESTENS EINMAL bei der Aktivierung ausgeführt. Stößt die Überprüfung eines Programmes auf einen ausgelösten Trigger (Änderung oder Aktualisierung), werden die Bedienungen überprüft und das Programm ausgeführt. Bestehen Programme also aus Bedingungen mit Triggern auf "Änderung" und/oder "Aktualisierung" werden diese NICHT bei jeder Schleife ausgeführt SONDERN NUR, wenn sich der Kanalzustand geändert und/oder erneut gesetzt wurde.
Folgend zwei Screenshots, die das vedeutlichen sollen:
Bei diesem Beispiel wird auf einen kurzen Tastendruck der Fernbedienung geprüft und ob das Treppenhauslicht ausgeschaltet ist. Das Programm wird also NUR AUSGEFÜHRT, wenn es ermalig aktiviert wird ODER die FB gedrückt wird, SONST NIE, da die zweite Bedienung auf "Nur prüfen" gesetzt wurde, das keinen Trigger auslöst! Das Programm schaltet dann das Treppenhauslicht entsprechend ein oder aus -> also ein einfaches "Toggle"!
Bei diesem Beispiel handelt es sich bei der oben beschriebenen Treppenhauslicht-Verlängerung. Geprüft wird also, ob sich der Zustand des Treppenhauslichts verändert hat, es also ersmalig EIN oder ERNEUT EIN-geschaltet wurde. Dann wird das Licht nach Ablauf von testweise 5 Sekunden UND OHNE ERNEUTES DRÜCKEN automatisch ausgeschaltet.
So...hoffe das war soweit verständlich!
Gruß,
kaju
Ich habe mich heute nochmal ausführtlicher damit beschäftigt und dabei nun folgendes festgestellt:
- Die Bedingungen eines Programmen werden mindestens EINMAL ausgeführt, wenn es aktiv geschaltet wird. Ist die einzige Bedinung eine "nur prüfen" Anweisung, wird dieses Programm dann während des Betriebs NIEMALS mehr ausgeführt es sei denn, es wird manuell aktiviert.
- "Nur prüfen" wird also nur beim erstmaligen Start geprüft oder ALS TEIL weiterer Bedingungen, um bestimmte Kanalzustände zu prüfen und NICHT auf deren Änderung zu reagieren.
- "Auslösen auf Änderung" wird NUR ausgeführt, wenn sich der Kanalzustand verändert hat, also z. Bsp. von "Aus" auf "An" oder umgekehrt.
- "Auslösen auf Aktualisierung" wird AUCH ausgeführt, wenn der Kanalzustand sich NICHT verändert hat, z. Bsp. bei "Aus" auf "An" aber EBEN AUCH bei "An" auf "An". Dies kann man z. Bsp. dafürt benutzen, die Einschaltdauer eines Treppenhauslichts bei jedem Tastendruck um eine entsprechende Zeit ZU VERLÄNGERN.
FAZIT:
Es werden wohl alle aktivierten Programme in einer Schleife (Loop) permanent überprüft. Jedes Programm wird dabei MINDESTENS EINMAL bei der Aktivierung ausgeführt. Stößt die Überprüfung eines Programmes auf einen ausgelösten Trigger (Änderung oder Aktualisierung), werden die Bedienungen überprüft und das Programm ausgeführt. Bestehen Programme also aus Bedingungen mit Triggern auf "Änderung" und/oder "Aktualisierung" werden diese NICHT bei jeder Schleife ausgeführt SONDERN NUR, wenn sich der Kanalzustand geändert und/oder erneut gesetzt wurde.
Folgend zwei Screenshots, die das vedeutlichen sollen:
Bei diesem Beispiel wird auf einen kurzen Tastendruck der Fernbedienung geprüft und ob das Treppenhauslicht ausgeschaltet ist. Das Programm wird also NUR AUSGEFÜHRT, wenn es ermalig aktiviert wird ODER die FB gedrückt wird, SONST NIE, da die zweite Bedienung auf "Nur prüfen" gesetzt wurde, das keinen Trigger auslöst! Das Programm schaltet dann das Treppenhauslicht entsprechend ein oder aus -> also ein einfaches "Toggle"!
Bei diesem Beispiel handelt es sich bei der oben beschriebenen Treppenhauslicht-Verlängerung. Geprüft wird also, ob sich der Zustand des Treppenhauslichts verändert hat, es also ersmalig EIN oder ERNEUT EIN-geschaltet wurde. Dann wird das Licht nach Ablauf von testweise 5 Sekunden UND OHNE ERNEUTES DRÜCKEN automatisch ausgeschaltet.
So...hoffe das war soweit verständlich!
Gruß,
kaju
HomeMatic-INSIDE: http://www.homematic-inside.de
Re: Frage zu Programmierung (Triggerung)
...biddeschööööhhnnn.... ja, so langsam blicke ich durch...auch wenn's am Anfang so einfach aussah, die Tücken stecken im Detail Ich hoffe, dass das Systemhandbuch bald rauskommt - da sind noch ein paar Parameter, die sich nicht so von selbst erklären. Interessant wird's ja dann auch mit dem "skripten"....
Gruß,
kaju
Gruß,
kaju
HomeMatic-INSIDE: http://www.homematic-inside.de
- UwePa
- Beiträge: 329
- Registriert: 26.08.2015, 06:27
- System: CCU
- Wohnort: Berlin (Speckgürtel)
- Hat sich bedankt: 25 Mal
- Danksagung erhalten: 3 Mal
Re: Frage zu Programmierung (Triggerung)
Jetzt habe ich es auch kapiert.
Danke
Danke
Mit freundlichen Grüßen
Uwe
--------------////////-------------
CCU3 und fast nur noch HMIP
Mutter gibt es wirklich sowas, wie den perfekten Mann?
Sicher Kind, sie werden Biker genannt
Uwe
--------------////////-------------
CCU3 und fast nur noch HMIP
Mutter gibt es wirklich sowas, wie den perfekten Mann?
Sicher Kind, sie werden Biker genannt
Re: Frage zu Programmierung (Triggerung)
Wow, Uwe, nach nur fast 10 Jahren?
(Sorry, konnte jetzt mit Blick auf das Erstelldatums des Beitrags, auf den Du Dich beziehst, nicht anders )
Gruß
Elec
(Sorry, konnte jetzt mit Blick auf das Erstelldatums des Beitrags, auf den Du Dich beziehst, nicht anders )
Gruß
Elec