Die Logik von WebUI - Programmen

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

grissli1
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

Beitrag von grissli1 » 29.11.2013, 11:56

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
System: RaspberryMatic 3.41.11.20190126 auf RPi3, ReverseProxy auf RPi3

paul53
Beiträge: 2554
Registriert: 26.04.2012, 20:42
Wohnort: Berlin
Danksagung erhalten: 15 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von paul53 » 29.11.2013, 12:25

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.
Diese Aussage ist falsch wie auch die Aussage zur Auslösung bei Änderung von analogen Werten.

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)

homey21
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

Beitrag von homey21 » 01.02.2014, 19:28

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
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.

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").

paul53
Beiträge: 2554
Registriert: 26.04.2012, 20:42
Wohnort: Berlin
Danksagung erhalten: 15 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von paul53 » 01.02.2014, 20:34

homey21 hat geschrieben:...Jetzt starte ich die CCU neu, und dann wird der DANN-Zweig auch ausgeführt?!
Ja, der Dann-Zweig wird ausgeführt, wenn die SV "Alarm" auf scharf steht.
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)

DrTob
Beiträge: 3426
Registriert: 29.10.2010, 08:24
Danksagung erhalten: 5 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von DrTob » 01.02.2014, 22:43

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.

Benutzeravatar
Homoran
Beiträge: 8613
Registriert: 02.07.2013, 15:29
Wohnort: Köln
Danksagung erhalten: 4 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von Homoran » 01.02.2014, 22:53

Danke für diese Info.

Dann heisst das:
DrTob hat geschrieben: es wird immer das Programm ausgelöst, nicht eine Bedingung etc
nicht die Erfüllung der "WENN-Bedingung" löst das Programm aus, sondern auch eine Erfüllung einer weiter unten stehenden "Sonst, Wenn-Bedingung"??


Gruß
Rainer
Alle meine Hinweise sind auf eigene Gefahr umzusetzen. Immer einen Fachmann zu Rate ziehen!

DrTob
Beiträge: 3426
Registriert: 29.10.2010, 08:24
Danksagung erhalten: 5 Mal

Die Logik von WebUI - Programmen

Beitrag von DrTob » 02.02.2014, 04:53

Homoran hat geschrieben:Danke für diese Info.

Dann heisst das:
DrTob hat geschrieben: es wird immer das Programm ausgelöst, nicht eine Bedingung etc
nicht die Erfüllung der "WENN-Bedingung" löst das Programm aus, sondern auch eine Erfüllung einer weiter unten stehenden "Sonst, Wenn-Bedingung"??


Gruß
Rainer
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.

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.

Benutzeravatar
Homoran
Beiträge: 8613
Registriert: 02.07.2013, 15:29
Wohnort: Köln
Danksagung erhalten: 4 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von Homoran » 02.02.2014, 10:56

Danke,
so hatte ich es auch gemeint. Von anderen erwarte ich präzise Ausdrucksweise und ich .... :oops:

"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!

paul53
Beiträge: 2554
Registriert: 26.04.2012, 20:42
Wohnort: Berlin
Danksagung erhalten: 15 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von paul53 » 02.02.2014, 11:55

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.
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)

Benutzeravatar
Homoran
Beiträge: 8613
Registriert: 02.07.2013, 15:29
Wohnort: Köln
Danksagung erhalten: 4 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von Homoran » 02.02.2014, 12:02

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
Alle meine Hinweise sind auf eigene Gefahr umzusetzen. Immer einen Fachmann zu Rate ziehen!

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“