Die Logik von WebUI - Programmen
Moderator: Co-Administratoren
-
- Beiträge: 2268
- Registriert: 22.06.2012, 17:46
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Tirol/Austria
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 2 Mal
Re: AW: Die Logik von WebUI - Programmen
Hi,
sollte eigentlich auch bei einem Neustart gelten, da auch dann die erste mögliche Aktion ausgeführt wird. Zumindest habe ich meine Programme danach ausgelegt.
Vielleicht kann jemand etwas dazu sagen.
Viele Grüße
Chris
Gesendet von meinem Nexus 10 mit Tapatalk
sollte eigentlich auch bei einem Neustart gelten, da auch dann die erste mögliche Aktion ausgeführt wird. Zumindest habe ich meine Programme danach ausgelegt.
Vielleicht kann jemand etwas dazu sagen.
Viele Grüße
Chris
Gesendet von meinem Nexus 10 mit Tapatalk
System: RaspberryMatic 3.41.11.20190126 auf RPi3, ReverseProxy auf RPi3
Re: Die Logik von WebUI - Programmen
Diese Aussage ist falsch wie auch die Aussage zur Auslösung bei Änderung von analogen Werten.grissli1 hat geschrieben:Ansonsten wäre folgender Satz der homematic-inside.de Seite ja falsch:
homematic-inside.de hat geschrieben:Auslösen beim Starten der Zentrale
Enthält ein Programm nur einen »Dann«-Abschnitt, wird dieser auch ausgeführt.
Enthält ein Programm auch einen »Sonst«-Abschnitt, wird stattdessen dieser ausgeführt.
Ein Überblick:
- manuelles Auslösen: Es wird immer der Dann-Zweig ausgeführt
- CCU-Restart & keine Wenn-Bedingung: Dann-Zweig wird ausgeführt
- CCU-Restart & Wenn-Bedingung ist wahr: Dann-Zweig wird ausgeführt
- CCU-Restart & Wenn-Bedingung ist falsch: Sonst-Zweig wird ausgeführt
- Auslösung per Ereignis & Wenn-Bedingung ist wahr: Dann-Zweig wird ausgeführt
- Auslösung per Ereignis & Wenn-Bedingung ist falsch: Sonst-Zweig wird ausgeführt
Anmerkung: Wenn der Dann-Zweig oder der Sonst-Zweig keine Aktion enthält, wird er trotzdem ausgeführt wie in der Übersicht beschrieben; es erfolgt halt keine Aktion.
Versionen: HM-CC-TC 2.1, HM-LC-Sw1 1.9, HM-CC-RT-DN 1.1, HM-MOD-RPI-PCB 1.2.1 (keine CCU)
-
- Beiträge: 1113
- Registriert: 17.11.2013, 01:54
- System: CCU
- Hat sich bedankt: 36 Mal
- Danksagung erhalten: 3 Mal
Re: Die Logik von WebUI - Programmen
Hi, ich hab noch nen anderen Fall: Im WENN-Teil steht "WENN Systemzustand "Alarm" = Scharf (bei Änderung auslösen") DANN mache was... Nun soll der ja nur reagieren, wenn eine Änderung von unscharf auf scharf stattfand, das klappt auch. Bei umgekehrt (scharf auf unscharf) bleibt dieses Programm still.paul53 hat geschrieben: - CCU-Restart & keine Wenn-Bedingung: Dann-Zweig wird ausgeführt
- CCU-Restart & Wenn-Bedingung ist wahr: Dann-Zweig wird ausgeführt
- CCU-Restart & Wenn-Bedingung ist falsch: Sonst-Zweig wird ausgeführt
Jetzt starte ich die CCU neu, und dann wird der DANN-Zweig auch ausgeführt?! WENN ist ja nur "bedingt" erfüllt: Das System ist scharf (hat sich die CCU gemerkt), aber es wurde ja nicht geändert dahin, sondern maximal "aktualisiert" - das habe ich aber explizit nicht eingestellt (nicht "bei Aktualisierung", sondern "bei Änderung").
Re: Die Logik von WebUI - Programmen
Ja, der Dann-Zweig wird ausgeführt, wenn die SV "Alarm" auf scharf steht.homey21 hat geschrieben:...Jetzt starte ich die CCU neu, und dann wird der DANN-Zweig auch ausgeführt?!
Der CCU-Restart ist - verglichen mit "bei Änderung auslösen" - ein zusätzlicher Auslöser (Trigger) für das Programm.
Zuletzt geändert von paul53 am 02.02.2014, 11:35, insgesamt 1-mal geändert.
Versionen: HM-CC-TC 2.1, HM-LC-Sw1 1.9, HM-CC-RT-DN 1.1, HM-MOD-RPI-PCB 1.2.1 (keine CCU)
Re: Die Logik von WebUI - Programmen
Man muss auslösen und ausführen komplett getrennt sehen:
1. Schritt auslösen:
Wenn irgend eine Auslösebedingung greift wird das Programm ausgelöst. Danach folgt der
2. Schritt "ausführen":
Das Programm wird von ganz oben ausgeführt unabhängig davon wo ausgelöst wurde, es wird immer das Programm ausgelöst, nicht eine Bedingung etc.
1. Schritt auslösen:
Wenn irgend eine Auslösebedingung greift wird das Programm ausgelöst. Danach folgt der
2. Schritt "ausführen":
Das Programm wird von ganz oben ausgeführt unabhängig davon wo ausgelöst wurde, es wird immer das Programm ausgelöst, nicht eine Bedingung etc.
Re: Die Logik von WebUI - Programmen
Danke für diese Info.
Dann heisst das:
Gruß
Rainer
Dann heisst das:
nicht die Erfüllung der "WENN-Bedingung" löst das Programm aus, sondern auch eine Erfüllung einer weiter unten stehenden "Sonst, Wenn-Bedingung"??DrTob hat geschrieben: es wird immer das Programm ausgelöst, nicht eine Bedingung etc
Gruß
Rainer
Alle meine Hinweise sind auf eigene Gefahr umzusetzen. Immer einen Fachmann zu Rate ziehen!
Die Logik von WebUI - Programmen
Nein. Programme werden nicht durch erfüllen von Bedingungen ausgelöst, sondern entweder durch die Änderung des Wahrheitswertes einer Bedingung, oder durch Aktualisierung des Wertes eines Aktors bzw. einer Variable.Homoran hat geschrieben:Danke für diese Info.
Dann heisst das:nicht die Erfüllung der "WENN-Bedingung" löst das Programm aus, sondern auch eine Erfüllung einer weiter unten stehenden "Sonst, Wenn-Bedingung"??DrTob hat geschrieben: es wird immer das Programm ausgelöst, nicht eine Bedingung etc
Gruß
Rainer
An welcher Stelle im Programm der Auslöser Stand ist egal, das Programm wird komplett ausgeführt.
Eine Bedingung ist dabei Z.B.
Licht ist AN.
Diese Bedingung ist nun entweder Wahr (weil das Licht an ist) oder falsch (weil das Licht aus ist).
Wenn du nun angibst "auslösen bei Änderung" ist das nicht Teil der Bedingung, sondern führt nur dazu, dass das Programm (komplett!) gestartet wird, wenn sich der Wert der Bedingung "Licht ist an" ändert.
Wenn das Programm gestartet wurde, wird die Bedingung "Licht ist An" geprüft und entsprechend entweder der Dann-, oder der Sonst-Teil ausgeführt.
Wenn in einem Programm die selbe Bedingung mehrfach vorkommt (auch invertiert, d.h "Licht ist an" und woanders "Licht ist Aus" reicht es also bei einer "auslösen bei Änderung" anzugeben. Bei welcher ist komplett egal, das Ergebnis ist in jedem Fall: Das Programm wird ausgelöst wenn das Licht vom Zustand AN nach AUS (oder umgekehrt) wechselt.
Re: Die Logik von WebUI - Programmen
Danke,
so hatte ich es auch gemeint. Von anderen erwarte ich präzise Ausdrucksweise und ich ....
"Die Bedingung" war für mich incl. "Auf Änderung" also Bedingung = Änderung des in der Wenn-Zeile festgelegten Datenpunktes aus ODER IN den dort festgelegten Status.
Ich glaube, das war wieder nichts... Du hast es besser beschrieben.
Gruß
Rainer
so hatte ich es auch gemeint. Von anderen erwarte ich präzise Ausdrucksweise und ich ....
"Die Bedingung" war für mich incl. "Auf Änderung" also Bedingung = Änderung des in der Wenn-Zeile festgelegten Datenpunktes aus ODER IN den dort festgelegten Status.
Ich glaube, das war wieder nichts... Du hast es besser beschrieben.
Gruß
Rainer
Alle meine Hinweise sind auf eigene Gefahr umzusetzen. Immer einen Fachmann zu Rate ziehen!
Re: Die Logik von WebUI - Programmen
Noch einmal zum Auslösen eines Programmes:
Ist auch nur ein Auslöser (Trigger) innerhalb des Programmes aktiv (ODER-Verknüpfung der Trigger), wird das gesamte Programm ausgelöst. Die ODER- und UND-Verknüpfungen im WebUI-Programm bestimmen nur, welcher Programm-Zweig ausgeführt wird (ausser bei manueller Auslösung).
Auslösung bei Änderung bedeutet, dass der Vergleich seinen Wahrheitsgehalt ändern muss, damit eine Programmauslösung erfolgt. Ein Vergleich erfolgt auch bei binären und Multistate-(Werteliste)-Werten, da immer ein Vergleichszustand ausgewählt werden muss.
Auslösung bei Aktualisierung bedeutet, dass bei einer Aktualisierung des Datenpunktes (Aktualisierung des Zeitstempels) ausgelöst wird, unabhängig davon, ob sich der Wert des Datenpunktes geändert hat oder nicht.
Ist auch nur ein Auslöser (Trigger) innerhalb des Programmes aktiv (ODER-Verknüpfung der Trigger), wird das gesamte Programm ausgelöst. Die ODER- und UND-Verknüpfungen im WebUI-Programm bestimmen nur, welcher Programm-Zweig ausgeführt wird (ausser bei manueller Auslösung).
Auslösung bei Änderung bedeutet, dass der Vergleich seinen Wahrheitsgehalt ändern muss, damit eine Programmauslösung erfolgt. Ein Vergleich erfolgt auch bei binären und Multistate-(Werteliste)-Werten, da immer ein Vergleichszustand ausgewählt werden muss.
Auslösung bei Aktualisierung bedeutet, dass bei einer Aktualisierung des Datenpunktes (Aktualisierung des Zeitstempels) ausgelöst wird, unabhängig davon, ob sich der Wert des Datenpunktes geändert hat oder nicht.
Versionen: HM-CC-TC 2.1, HM-LC-Sw1 1.9, HM-CC-RT-DN 1.1, HM-MOD-RPI-PCB 1.2.1 (keine CCU)
Re: Die Logik von WebUI - Programmen
Danke nochmal Paul,
ich bin jetzt nochmal so genau dahinter her gewesen, weil in einem anderen Thread http://homematic-forum.de/forum/viewtop ... 20#p134924 beschrieben wird, dass das Programm nicht auslöst, wenn der Trigger in der WENN-Zeile es auslösen müsste, (ich hoffe das ist diesmal korrekt ausgedrückt ), jedoch wenn der Trigger der Sonst,wenn..-Zeilen zutrifft.
Dann scheint es in dem Fall tatsächlich ein Bug zu sein
Gruß
Rainer
ich bin jetzt nochmal so genau dahinter her gewesen, weil in einem anderen Thread http://homematic-forum.de/forum/viewtop ... 20#p134924 beschrieben wird, dass das Programm nicht auslöst, wenn der Trigger in der WENN-Zeile es auslösen müsste, (ich hoffe das ist diesmal korrekt ausgedrückt ), jedoch wenn der Trigger der Sonst,wenn..-Zeilen zutrifft.
Dann scheint es in dem Fall tatsächlich ein Bug zu sein
Gruß
Rainer
Alle meine Hinweise sind auf eigene Gefahr umzusetzen. Immer einen Fachmann zu Rate ziehen!