Die Logik von WebUI - Programmen

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

Moderator: Co-Administratoren

MichaelN
Beiträge: 9635
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1614 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von MichaelN » 05.06.2020, 12:12

Matsch hat geschrieben:
05.06.2020, 11:47
Was ist mit Bug-Fixing?
Das wird total überschätzt. Damit würde das System ja an Charme verlieren und am Ende könnte es jeder bedienen :roll:
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 +++

Matsch
Beiträge: 5416
Registriert: 30.05.2019, 11:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Chemnitz
Hat sich bedankt: 114 Mal
Danksagung erhalten: 731 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von Matsch » 05.06.2020, 12:16

MichaelN hat geschrieben:
05.06.2020, 12:12
... und am Ende könnte es jeder bedienen :roll:
Nee, so weit muß es nicht gehen .. :cry:

Pihero
Beiträge: 238
Registriert: 02.08.2019, 21:24
Wohnort: Pforzheim
Hat sich bedankt: 1 Mal
Danksagung erhalten: 3 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von Pihero » 29.06.2020, 20:07

Ich habe mal wieder eine Auffälligkeit und sehe vermutlich den Wald vor lauter Bäumen nicht...

Ich habe dieses Programm zum Auslösen eines Alarm-Timers:
Anmerkung 2020-06-29 200220.png
Anmerkung 2020-06-29 200413.png
unter Verwendundung des Auslöser-Skripts von Alchy bekomme ich folgende Meldung über Telegram:

DANN Prg-ID: 13468 / Prg-Name: 132_Timer ALARM innen - Start / Src-ID: 9473 / Src-Name: Bewegung im Haus / Wert: 0 = 132_Timer ALARM innen - Start durch Systemvariable: Bewegung im Haus mit dem Wert: keine Bewegung

Nun Frag ich mich warum hier der Wert "KEINE BEWEGUNG" zum Auslösen des Programms führt.

Jemand eine Idee?

Danke und Gruß, Philipp

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

Re: Die Logik von WebUI - Programmen

Beitrag von Xel66 » 29.06.2020, 20:15

Weil Du unten auf "keine Bewegung" abfragst und irgendeine der Bedingungen wird wohl wahr gewesen sein (SWDO oder FIO6 offen). Und falls jetzt kommt, die waren doch vorher schon offen: Die Bedingungsprüfung des Programms wird immer getriggert, wenn sich der Wahrheitsgehalt eines der enthaltenen Trigger ändert. Und da Du unten auf genau diesen Zustand prüfst, wird eben das dazugehörige DANN ausgeführt. Entspricht nicht unbedingt der menschlichen Logik, aber die sollte man bei der CCU ausblenden und die Art und Weise beachten, wie Programme getriggert und abgearbeitet werden. Beschrieben ist das im Handbuch zur WebUI irgendwo ab Seite 77.

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

Pihero
Beiträge: 238
Registriert: 02.08.2019, 21:24
Wohnort: Pforzheim
Hat sich bedankt: 1 Mal
Danksagung erhalten: 3 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von Pihero » 30.06.2020, 12:49

Ich weiß das ein Auslöser nur das Programm von oben durchlaufen lässt und dann auch andere Bedingungen die wahr sind greifen können.
Aber das "Keine Bewegung" ist ja nur auf prüfen, das sollte doch dann nicht als Trigger fungieren, oder?

Ich habe mich schon mit der Logik angefreundet...aber das PRÜFEN ein Programm auch triggert wäre dann doch entgegen jeglicher Logik.

Gruß, Philipp

MichaelN
Beiträge: 9635
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1614 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von MichaelN » 30.06.2020, 13:14

Leider ist Logik in Zusammenhang mit der CCU nur begrenzt anwendbar und vor allem in Zusammenhang mit regelmäßig sendenden Sensoren.
Pack mal einen Temp-Sensor mit "bei Änderung" in den Sonst-Wenn-Zweig - und dein Programm wird alle 3 Minuten getriggert. Ob sich der Wahrheitsgehalt der Bedingung nun ändert oder nciht ist dabei total egal. Logisch? Nur für Eingeweihte...
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: 14147
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 582 Mal
Danksagung erhalten: 1497 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von Xel66 » 30.06.2020, 14:03

Pihero hat geschrieben:
30.06.2020, 12:49
Aber das "Keine Bewegung" ist ja nur auf prüfen, das sollte doch dann nicht als Trigger fungieren, oder?
Nein, lass Dir meinen Satz meines letzten Postings: "Die Bedingungsprüfung des Programms wird immer getriggert, wenn sich der Wahrheitsgehalt eines der enthaltenen Trigger ändert." noch mal genau auf der Zunge zergehen. Es ist egal, ob Du oben auf "Bewegung erkannt" oder "keine Bewegung" triggerst. Die Bedingungsprüfung wird durchlaufen (und stößt dann natürlich auch auf "keine Bewegung - nur prüfen". Die Prüfung "auf Änderung" ist Teil dieser Bedingungsprüfung im Programm (vermutlich durch Vergleich mit LastVar()) und nicht des Triggers im Vorfeld der Abarbeitung. Das steht zwar anders in der Anleitung (dass vorher geprüft wird), ist aber nachweislich nicht so. Über diesen Umstand sind auch schon viele gestolpert. Es sit anzunehmen, dass diese Anleitung durch Nicht-Programmierer geschrieben wurde. Für einfache Programme stellt sich das so dar, in komplexeren Programmen fällt einem dieses Verhalten auf die Füße.

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

Pihero
Beiträge: 238
Registriert: 02.08.2019, 21:24
Wohnort: Pforzheim
Hat sich bedankt: 1 Mal
Danksagung erhalten: 3 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von Pihero » 30.06.2020, 15:33

ok...puh...jetzt vielleicht nochmal auf den Effekt in meinem Programm bezogen.

Das heißt:

Allein weil die Variable "Bewegung im Haus" im Programm ist (egal ob Änderung, Aktualisierung, prüfen) löst sie mein Programm aus!

Heißt dann auch: mein Alarm-Timer startet (also das Programm läuft durch) sofern dann eine Bedingung vollständig erfüllt ist?


Langsam wird es echt kompliziert, um das Verhalten jetzt wieder auszuschließen braucht man dann wieder noch ne Variable ... oh man...egal.

Kannst du meine oben genannte Beschreibung nochmal kurz bestätigen, bin ja auch ein Nicht-Programmierer.

Danke und Gruß, Philipp

Benutzeravatar
Baxxy
Beiträge: 10740
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 599 Mal
Danksagung erhalten: 2196 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von Baxxy » 30.06.2020, 16:56

Pihero hat geschrieben:
30.06.2020, 15:33
Langsam wird es echt kompliziert
Das kannste laut sagen. :wink: Es wurde ja kürzlich erst ausführlich (in einem anderen Thread) über ähnliches debattiert... Ist halt CCU-Logik. :wink:
Nach meinem Verständnis (und Test's mit gekürztem nachgebautem Programm) wird aber das DANN nur ein weiteres mal ausgeführt wenn eine der anderen Bedingungen WAHR ist (SWDO oder FIO6 offen; hatte ja Xel schon geschrieben). Jede weitere "Aktualisierung" der SysVar "Bewegung im Haus" mit dem selben Wert (keine Bewegung) führt dann zu keiner weiteren DANN-Ausführung.

Pihero
Beiträge: 238
Registriert: 02.08.2019, 21:24
Wohnort: Pforzheim
Hat sich bedankt: 1 Mal
Danksagung erhalten: 3 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von Pihero » 30.06.2020, 19:35

Das kann ich leider nicht bestätigen...

Wird immer wieder beim Wechsel der SysVar ausgelöst. Ich hatte heute Handwerker da ;)
Anmerkung 2020-06-30 193209.png
Da ich selbst nicht da war und nur im Keller gearbeitet wurde, kann ich ausschließen das sich andere Zustände geändert haben.

Gruß, Philipp

Antworten

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