Fehler im Programmablauf
Moderator: Co-Administratoren
-
- Beiträge: 248
- Registriert: 16.05.2020, 12:54
- System: CCU
- Hat sich bedankt: 48 Mal
- Danksagung erhalten: 1 Mal
Fehler im Programmablauf
Habe u.a. Programm zur Markisensteuerung geschrieben.
Zur Erklärung:
Gerät Temp_Sonne-Schatten: Temperaturdifferenz(sensor)
SY Sonne Südseite: soll in diesen Programm ein- und ausgeschaltet werden und schaltet wiederum die Markise
Probleme / Fragen
- Zunächst fällt mir auf, dass gemäß Zeitstempel das Programm alle 2-3 Minuten ausgelöst wird. Wieso, wenn sich die Bedingungen im WENN oder SONST, WENN nicht (ständig) ändern?
- Die SV wird korrekt auf "Sonne scheint" geschaltet (Bedingung WENN erfüllt), was aber nicht funktioniert, ist der SONST, WENN - Teil, d.h. die Variable wird nie auf "scheint nicht" zurückgeschaltet, obwohl mindestens eine der Bedingungen erfüllt sind (und die im WENN zu diesem Zeitpunkt nicht)
Bin gespannt, wo der Fehler liegt...
Thomas
Zur Erklärung:
Gerät Temp_Sonne-Schatten: Temperaturdifferenz(sensor)
SY Sonne Südseite: soll in diesen Programm ein- und ausgeschaltet werden und schaltet wiederum die Markise
Probleme / Fragen
- Zunächst fällt mir auf, dass gemäß Zeitstempel das Programm alle 2-3 Minuten ausgelöst wird. Wieso, wenn sich die Bedingungen im WENN oder SONST, WENN nicht (ständig) ändern?
- Die SV wird korrekt auf "Sonne scheint" geschaltet (Bedingung WENN erfüllt), was aber nicht funktioniert, ist der SONST, WENN - Teil, d.h. die Variable wird nie auf "scheint nicht" zurückgeschaltet, obwohl mindestens eine der Bedingungen erfüllt sind (und die im WENN zu diesem Zeitpunkt nicht)
Bin gespannt, wo der Fehler liegt...
Thomas
-
- Beiträge: 9678
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 700 Mal
- Danksagung erhalten: 1626 Mal
Re: Fehler im Programmablauf
Wird das Programm getriggert oder ausgeführt?
warscheinlich nur getriggert. Das kann trotz "bei Änderung" bei jeder Aktualisierung passieren.
Unter anderem wegen dieser Flaws habe ich mittlerweile alle Programme auftrennt. Es gibt mehrere Programme zur Sonnen Erkennung und andere zur Schatten Erkennung.
Manchmal ist es sinnlos verstehen zu wollen, warum etwas nicht wie erwartet funktioniert.
warscheinlich nur getriggert. Das kann trotz "bei Änderung" bei jeder Aktualisierung passieren.
Unter anderem wegen dieser Flaws habe ich mittlerweile alle Programme auftrennt. Es gibt mehrere Programme zur Sonnen Erkennung und andere zur Schatten Erkennung.
Manchmal ist es sinnlos verstehen zu wollen, warum etwas nicht wie erwartet funktioniert.
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: 14164
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 585 Mal
- Danksagung erhalten: 1500 Mal
Re: Fehler im Programmablauf
Die Prüfung auf "bei Änderung" scheint ein Bestandteil der Bedingungsprüfung des Programms zu sein (vermutlich durch Vergleich mit .LastValue()) und nicht im Vorfeld erledigt zu werden. Somit ist die Aktualisierung des Zeitstempels plausibel, denn er wird auch aktualisiert, wenn kein DANN oder SONST durchlaufen wird.
So ein für den Beobachter überraschendes Verhalten kommt auch zustande, wenn mit gleichen Triggern (trotz unterschiedlicher Grenzwerte) gegensätzliche Befehle ausgelöst werden. Das Verhalten kann etwas entschärft werden, wenn solche gegensätzliche Aktionen in getrennte Programme aufgeteilt werden.
Gruß Xel66
So ein für den Beobachter überraschendes Verhalten kommt auch zustande, wenn mit gleichen Triggern (trotz unterschiedlicher Grenzwerte) gegensätzliche Befehle ausgelöst werden. Das Verhalten kann etwas entschärft werden, wenn solche gegensätzliche Aktionen in getrennte Programme aufgeteilt werden.
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
-
- Beiträge: 10660
- Registriert: 21.09.2012, 08:09
- System: CCU
- Wohnort: Stuttgart
- Hat sich bedankt: 321 Mal
- Danksagung erhalten: 501 Mal
Re: Fehler im Programmablauf
Das Programm wird praktisch immer getriggert, wenn sich deine Temperaturdifferenz bei mehr als 22 °C Außentemperatur über 10 °C erhöht und wenn sie unabhängig von der Außentemperatur unter 8 °C fällt. Zudem wird es getriggert, wenn die Außentemperatur bei einer Temperaturdifferenz von mehr als 10 °C über 22 °C steigt oder wenn sie unabhängig von der Temperaturdifferenz unter 21 °C sinkt. Insbesondere die Temperaturdifferenz kann sich da schon alle paar Minuten ändern, wenn es warm draußen ist. Eventuell musst du die Hysterese vergrößern.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
-
- Beiträge: 14164
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 585 Mal
- Danksagung erhalten: 1500 Mal
Re: Fehler im Programmablauf
Ein vergrößern der Hysterese wird nicht viel bringen, denn die Grenzwerte sind so angelegt, dass immer irgendein Bein der Prüfung ein WAHR ergibt. Und da die Prüfung auf die Grenzwerte im Programm erfolgt, wird zumindest die Bedingungsprüfung zyklisch mit der Aktualisierung der Sensordaten gestartet. Ich stelle bei mir mit einer ähnlichen Programmierung (aber etwas umfangreicher) einen Beschattungsbedarf fest. Meine Programme haben derzeit einen Zeitstempel des gestrigen Tages. Ich habe allerdings für das Setzen und das Rücksetzen getrennte Programme.
Gruß Xel66
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
-
- Beiträge: 248
- Registriert: 16.05.2020, 12:54
- System: CCU
- Hat sich bedankt: 48 Mal
- Danksagung erhalten: 1 Mal
Re: Fehler im Programmablauf
Das mit dem Triggern kann ich noch nachvollziehen. Allerdings verstehe ich nicht, warum der SONST, WENN - Teil offenbar nie ausgeführt wird.
Gestern war es z.B. so, dass gegen 18 Uhr die Temperaturdifferenz (dauerhaft) unter 8 Grad gegangen ist, die Temperatur (auch noch über eine ziemlich lange Zeit) über 21 Grad blieb. Damit wäre (zumindest nach meiner Logik) der WENN - Teil falsch und der SONST, WENN - Teil wahr.
Macht es Sinn, die Häkchen bei den Retriggern rauszunehmen?
Ansonsten werden es dann wohl tatsächlich zwei Programme. Ich hatte hier im Forum (soweit ich mich erinnere) aber mal ein ähnlich aufgebautes Programm gesehen, allerdings jeweils ohne Prüfung der absoluten Temperatur, da hat es anscheinend auch mit SONST, WENN funktioniert. Finde es leider nicht mehr.
Thomas
Gestern war es z.B. so, dass gegen 18 Uhr die Temperaturdifferenz (dauerhaft) unter 8 Grad gegangen ist, die Temperatur (auch noch über eine ziemlich lange Zeit) über 21 Grad blieb. Damit wäre (zumindest nach meiner Logik) der WENN - Teil falsch und der SONST, WENN - Teil wahr.
Macht es Sinn, die Häkchen bei den Retriggern rauszunehmen?
Ansonsten werden es dann wohl tatsächlich zwei Programme. Ich hatte hier im Forum (soweit ich mich erinnere) aber mal ein ähnlich aufgebautes Programm gesehen, allerdings jeweils ohne Prüfung der absoluten Temperatur, da hat es anscheinend auch mit SONST, WENN funktioniert. Finde es leider nicht mehr.
Thomas
-
- Beiträge: 10660
- Registriert: 21.09.2012, 08:09
- System: CCU
- Wohnort: Stuttgart
- Hat sich bedankt: 321 Mal
- Danksagung erhalten: 501 Mal
Re: Fehler im Programmablauf
Aber nur für den Moment, wo entweder die Temperaturdifferenz unter 8 °C oder die Außentemperatur unter 21 °C sinkt. Wenn du hier "bei Änderung auslösen" als Trigger wählst, passiert nur was, wenn die entsprechenden Schwellwerte unterschritten werden. Wenn sich dagegen die Werte unterhalb von 8 °C bzw. 21 °C verändern, löst das Programm nicht aus.thfrank hat geschrieben: ↑29.06.2021, 10:18Gestern war es z.B. so, dass gegen 18 Uhr die Temperaturdifferenz (dauerhaft) unter 8 Grad gegangen ist, die Temperatur (auch noch über eine ziemlich lange Zeit) über 21 Grad blieb. Damit wäre (zumindest nach meiner Logik) der WENN - Teil falsch und der SONST, WENN - Teil wahr.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
-
- Beiträge: 248
- Registriert: 16.05.2020, 12:54
- System: CCU
- Hat sich bedankt: 48 Mal
- Danksagung erhalten: 1 Mal
Re: Fehler im Programmablauf
ja, das ist ja auch so beabsichtigt.dtp hat geschrieben: ↑29.06.2021, 11:20Aber nur für den Moment, wo entweder die Temperaturdifferenz unter 8 °C oder die Außentemperatur unter 21 °C sinkt. Wenn du hier "bei Änderung auslösen" als Trigger wählst, passiert nur was, wenn die entsprechenden Schwellwerte unterschritten werden. Wenn sich dagegen die Werte unterhalb von 8 °C bzw. 21 °C verändern, löst das Programm nicht aus.
-
- Beiträge: 10660
- Registriert: 21.09.2012, 08:09
- System: CCU
- Wohnort: Stuttgart
- Hat sich bedankt: 321 Mal
- Danksagung erhalten: 501 Mal
Re: Fehler im Programmablauf
Du kannst in der Tat mal den Haken für das Retriggern entfernen. Evtl. wird zwischenzeitlich (immerhin sind es 20 Minuten) die Wenn-Bedingung erfüllt, so dass der Sonst-Wenn-Zweit nicht ausgelöst wird. Das Skript müsste allerdings entsprechend ausgelöst werden, wobei ja nicht klar ist, was da eigentlich drin steht.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
-
- Beiträge: 248
- Registriert: 16.05.2020, 12:54
- System: CCU
- Hat sich bedankt: 48 Mal
- Danksagung erhalten: 1 Mal