Unterschied: Bei Aktualisierung bzw. Änderung auslösen?
Moderator: Co-Administratoren
-
- 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?
Schau dir den Thread zur WebUI Logik an.
Du musst trennen zwischen Trigger und Bedingungsprüfung.
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 +++
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 +++
-
- 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?
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
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
Re: Unterschied: Bei Aktualisierung bzw. Änderung auslösen?
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."
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
...
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
-
- 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?
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 +++
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 +++
-
- 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?
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
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
-
- 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?
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 +++
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 +++
-
- 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?
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
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
-
- 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?
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
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
Re: Unterschied: Bei Aktualisierung bzw. Änderung auslösen?
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
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
- 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?
wie weit biste denn bereits mit der Dokumentation gekommen, die Dir bereits ans Herz gelegt wurde?