Unterschied: Bei Aktualisierung bzw. Änderung auslösen?

Kabellose und kabelgebundene Sender und Empfänger der klassischen Homematic-Serie

Moderator: Co-Administratoren

MichaelN
Beiträge: 9677
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1625 Mal

Re: Unterschied: Bei Aktualisierung bzw. Änderung auslösen?

Beitrag von MichaelN » 13.11.2022, 22:33

Schau dir den Thread zur WebUI Logik an.

Du musst trennen zwischen Trigger und Bedingungsprüfung.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Xel66
Beiträge: 14163
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 585 Mal
Danksagung erhalten: 1499 Mal

Re: Unterschied: Bei Aktualisierung bzw. Änderung auslösen?

Beitrag von Xel66 » 13.11.2022, 22:37

sct hat geschrieben:
13.11.2022, 22:23
Danke. Das ist doch das was ich schrieb, oder nicht?
Nein, nur weil es ähnlich klingt, ist es nicht identisch. Du wirst um die Lektüre zur Arbeitsweise der CCU nicht herumkommen. Die Prüfung läuft immer von oben nach unten durch alle enthaltenden Bedingungen. Und die Verwendung von SONST kann Dir vorzüglich ein Bein stellen. Es gibt auch noch undokumentierte Fallstricke beim Verwenden mehrerer Trigger für ein Programm sowie eine Auswertung komplementärer Zustände als Trigger innerhalb eines Programms. Solche Bedingungen arbeiten dann wie "bei Aktualisierung". Das ist aber nicht dokumentiert. Die Beschreibung lässt sich 1:1 nur auf "einfache" Programme anwenden. Hat man es aber mal gefressen, dann lassen sich auch komplexe Programme funktionsfähig und ohne Überraschungen erstellen.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

sct
Beiträge: 139
Registriert: 02.03.2016, 15:12
Hat sich bedankt: 1 Mal

Re: Unterschied: Bei Aktualisierung bzw. Änderung auslösen?

Beitrag von sct » 14.11.2022, 14:03

Xel66 hat geschrieben:
13.11.2022, 22:37
sct hat geschrieben:
13.11.2022, 22:23
Danke. Das ist doch das was ich schrieb, oder nicht?
Nein, nur weil es ähnlich klingt, ist es nicht identisch.
Alter Schwede das ist schon ganz schön anstrengend.

Ich frage daher nochmal und bitte um Antwort:
Was ist der Unterschied zwischen:
Zitat: "sonst <wird ausgeführt wenn sich der Status einer der beiden Heizkörperthermostate geändert hat aber beide nicht geschlossen sind>"
und
Zitat: "Nein, SONST wird ausgeführt, solange nicht beide geschlossen sind."
Xel66 hat geschrieben:
13.11.2022, 22:37
Du wirst um die Lektüre zur Arbeitsweise der CCU nicht herumkommen.
Bitte ab hier für immer und alle Zeiten davon ausgehen dass ich mir die Lektüre gestern Abend etwa eine Stunde konzentriert durchgelesen habe. Zum großen Teil habe ich das verstanden. Zu einem geringen Teil aber auch nicht und hier speziell der Punkt ob wirklich alle Bedingungen geprüft werden obwohl diese nicht zum Triggern des Programms beigetragen haben. Daher nochmal die Nachfrage.

Ich würde in meinem Programm auch ausschliesslich nur "Bei Änderung auslösen"-Trigger benutzen und diese nur UND-Verknüpfen, so wie hier dargestellt:

Code: Alles auswählen

Wenn
Heizkörperthermostat-1 "geschlossen" "bei Änderung auslösen" 
AND
Heizkörperthermostat-2 "geschlossen" "bei Änderung auslösen"

Dann 
...
Sonst
...
Gemäß der Dokumentation der WebUI Logik werden dann in Reihenfolge folgende Schritte ausgeführt und ich bitte um Bestätigung/Nichtbestätigung per ja/nein:
a) Das Programm wird immer getriggert sobald sich irgendein Heizkörperthermostatventil bewegt hat, korrekt? - bitte ankreuzen <ja>/<nein>
b) Als nächstes werden alle durch AND-Verknüpften WENN-Bedingungen geprüft, korrekt? - bitte ankreuzen <ja>/<nein>
c) Ist das Ergebnis aus b) 'WAHR', wird der DANN-Block ausgeführt, korrekt? - bitte ankreuzen <ja>/<nein>
d) andernfalls der SONST-Block, korrekt? - bitte ankreuzen <ja>/<nein>

Vielen Dank
sct

MichaelN
Beiträge: 9677
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1625 Mal

Re: Unterschied: Bei Aktualisierung bzw. Änderung auslösen?

Beitrag von MichaelN » 14.11.2022, 14:39

A) ist schon Nein, und damit entfällt der Rest
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

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

Re: Unterschied: Bei Aktualisierung bzw. Änderung auslösen?

Beitrag von Gerti » 14.11.2022, 14:54

Hi!

Jetzt verwirre ich final und sage, Antwort A) ist Ja
Grundsätzlich triggert jede Aktualisierung eines Triggers den Programmablauf.
Ob es eine Aktualsierung oder eine Änderung ist, wird erst zur Laufzeit des Programms geprüft.

Zu B) Ja und es wird geprüft, ob es bei dem Trigger eine Änderung (also der Wechsel von Bedingung ist wahr in Bedingung ist falsch oder umgekehrt) gegeben hat oder ob es eine Aktualisierung war (in dem Fall wird die Bearbeitung abgebrochen).

Zu C) Ja, mit der Einschränkung aus B)

Zu D) Ja, wenn der Trigger eine Änderung hatte und die Bedingungsprüfung in B) falsch ergeben hat.

Gruß,
Gerti

MichaelN
Beiträge: 9677
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1625 Mal

Re: Unterschied: Bei Aktualisierung bzw. Änderung auslösen?

Beitrag von MichaelN » 14.11.2022, 15:34

Und jetzt musst Du noch erklären wann der Zeitstempel aktualisiert wird. Daher ist es einfacher anzunehmen, das das Programm nicht getriggert wird. Es gibt keinen neuen Zeitstempel und es wird auch nciht ausgeführt.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

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

Re: Unterschied: Bei Aktualisierung bzw. Änderung auslösen?

Beitrag von Gerti » 14.11.2022, 16:12

Hi,

das wäre etwas zu einfach gedacht, weil es nur für das Beispiel passt.

Nimm folgendes Programm:

Wenn
Fenster 1 geöffnet bei Änderung auslösen
Dann
Rollladen sofort rauf
Sonst Wenn
Fenster 1 geschlossen bei Änderung auslösen
Und
Fenster 2 geschlossen bei Änderung auslösen
Rollladen sofort runter

Sofern Fenster 1 geöffnet ist, wird bei jeder Aktualisierung von Fenster 2 der Rollladen geöffnet.

Gruß
Gerti

Xel66
Beiträge: 14163
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 585 Mal
Danksagung erhalten: 1499 Mal

Re: Unterschied: Bei Aktualisierung bzw. Änderung auslösen?

Beitrag von Xel66 » 14.11.2022, 16:22

MichaelN hat geschrieben:
14.11.2022, 15:34
Und jetzt musst Du noch erklären wann der Zeitstempel aktualisiert wird.
Erklären will ich es nicht, aber der Zeitstempel wird bei jeder Statusaktualisierung einer der als Trigger angelegten Bedingungen aktualisiert. Heißt, es wird eine Bedingungsprüfung durchgeführt und ergebnislos abgebrochen. Bei so einfachen Programmen ist das Ergebnis (Nicht-Ausführung von DANN und SONST) noch vorhersagbar (solange sich keine Bedingung geändert hat, wird nichts ausgeführt). Bei komplexeren Programmen verhält es sich nicht mehr so einfach.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

sct
Beiträge: 139
Registriert: 02.03.2016, 15:12
Hat sich bedankt: 1 Mal

Re: Unterschied: Bei Aktualisierung bzw. Änderung auslösen?

Beitrag von sct » 14.11.2022, 17:07

Ok, ok. Ihr habt gewonnen! Ich habs nicht verstanden. Ich würde das Problem dann anders angehen und mit dem Use-Case anfangen. Vieleicht gibt es ja dann eine Lösung bzw. ein Programm von Euch was den Use-Case abdeckt.

Use-Case Beschreibung: Ich möchte in meinem Haus die Stelllung aller Heizungsventile der Heizkörperthermostate überwachen. Hier bitte keine Diskussion anfangen wieso ich das so möchte. Wenn das letzte Ventil zugegangen ist, dann soll eine Aktion getriggert werden. Geht das erste Ventil wieder auf, so soll die Aktion wieder zurück genommen werden. Wie muß das Programm dazu aussehen? Annahme: 3 Ventile. - Vielen Dank.

Ciao
sct

Benutzeravatar
shartelt
Beiträge: 7421
Registriert: 14.01.2015, 14:59
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 524 Mal
Danksagung erhalten: 753 Mal

Re: Unterschied: Bei Aktualisierung bzw. Änderung auslösen?

Beitrag von shartelt » 14.11.2022, 17:11

wie weit biste denn bereits mit der Dokumentation gekommen, die Dir bereits ans Herz gelegt wurde?

Antworten

Zurück zu „HomeMatic Aktoren und Sensoren (klassisch)“