Rolladensteuerung funktioniert nicht wie erwartet

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

andreas301
Beiträge: 3
Registriert: 26.05.2022, 18:31
System: Alternative CCU (auf Basis OCCU)

Rolladensteuerung funktioniert nicht wie erwartet

Beitrag von andreas301 » 26.05.2022, 18:50

Hallo,

ich habe bei mir für insgesamt 4 Fenster eine Rolladensteuerung realisiert, die basierend auf dem aktuellen Sonnenstand und der Tatsache ob die Sonne scheint oder nicht die Rolläden hoch und runter fährt. Bei 3 der Fenster macht sie das auch ganz problemlos, beim 4. allerdings fährt der Rolladen nicht mehr basierend auf dem Sonnenstand nach oben. Zur weiteren Erklärung habe ich einen Screenshot des Programms angehängt:
Screenshot from 2022-05-26 18-27-54.png
Da vor dem fraglichen Fenster ein weiteres Haus steht, gibt es hier im Unterschied zu den 3 anderen Fenstern hier 2 Kriterien die der Sonnenstand erfüllen muss damit der Rolladen hoch fährt, nämlich Azimut größer als 269° bei Elevation kleiner als 26°. Leider fährt bei erreichen der beiden Werte der Rolladen nicht hoch und ich vermute dass es irgendwie an der manchmal etwas seltsamen Programmlogik der Homematic liegt.
Die Auslösung durch die "Sonst, wenn..." Bedingung funktioniert übrigends.

Kann mir hier bitte jemand helfen?

Gluehwurm
Beiträge: 12434
Registriert: 19.03.2014, 00:37
System: in Planung
Hat sich bedankt: 105 Mal
Danksagung erhalten: 380 Mal

Re: Rolladensteuerung funktioniert nicht wie erwartet

Beitrag von Gluehwurm » 26.05.2022, 19:11

Programm löschen und neu anlegen ... bei der Gelegenheit "SonstWenn" im Wenn mit ODER integrieren. Macht ja das gleiche.

Vielleicht mal die CCU neu starten, hat teilweise auch geholfen.
andreas301 hat geschrieben:
26.05.2022, 18:50
Azimut größer als 269° bei Elevation kleiner als 26°
Beides ist "gleichzeitig" (UND) erfüllt und es startet trotzdem nicht?


Gruß
Bruno

Benutzeravatar
HM-Villa
Beiträge: 507
Registriert: 24.01.2022, 10:13
System: CCU
Hat sich bedankt: 29 Mal
Danksagung erhalten: 119 Mal

Re: Rolladensteuerung funktioniert nicht wie erwartet

Beitrag von HM-Villa » 26.05.2022, 19:14

VerUNDete Bedingungen brauchen einen eindeutigen Trigger. Wenn beide auf Änderung auslösen sollen, müssten die ja zeitgleich wahr werden, um das erste Dann abzuarbeiten. Und das passiert NIE. Du kannst jeweils einen Auslöser nehmen und den anderen Wert prüfen und verODERt dann andersrum. Also etwa so:

Code: Alles auswählen

Wenn
Systemzustand SV_Sonne_Azimut im Wertebereich/mit Wert > 269 bei Änderung auslösen
UND
Systemzustand SV_Sonne_Elevation im Wertebereich/mit Wert < 26 nur prüfen
  ODER
Systemzustand SV_Sonne_Azimut im Wertebereich/mit Wert > 269 nur prüfen
UND
Systemzustand SV_Sonne_Elevation im Wertebereich/mit Wert < 26 bei Änderung auslösen
  DANN...
______________________________________________________
950 Kanäle in 201 Geräten und 39 CUxD-Kanäle in 5 CUxD-Geräten

Gluehwurm
Beiträge: 12434
Registriert: 19.03.2014, 00:37
System: in Planung
Hat sich bedankt: 105 Mal
Danksagung erhalten: 380 Mal

Re: Rolladensteuerung funktioniert nicht wie erwartet

Beitrag von Gluehwurm » 26.05.2022, 19:16

HM-Villa hat geschrieben:
26.05.2022, 19:14
Wenn beide auf Änderung auslösen sollen, müssten die ja zeitgleich wahr werden, um das erste Dann abzuarbeiten.
Das ist falsch, siehe WebUI-Handbuch und sonstige Erklärungen zum Programmablauf.

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

Re: Rolladensteuerung funktioniert nicht wie erwartet

Beitrag von Xel66 » 26.05.2022, 20:45

Nicht richtig und auch definitiv nicht ganz falsch. Das Problem ist, dass beide Variablen durch die Rechenroutine gleichzeitig gesetzt werden. Das gibt nach meinen Beobachtungen Probleme beim sauberen Triggern von Programmen. Hier hilft nur, einen der Trigger zu einer Bedingung (nur prüfen) zu degradieren. Kommt drauf an, was genau erreicht werden soll (ob primär nach der Elevation getriggert werden soll und die Azimutabfrage nur zur Feststellung dient, dass es sich um die zweite Tageshälfte handelt. Solange beide Auslöser gleichzeitig triggern, wird die Bedingungsprüfung nicht immer zuverlässig angestoßen.

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

andreas301
Beiträge: 3
Registriert: 26.05.2022, 18:31
System: Alternative CCU (auf Basis OCCU)

Re: Rolladensteuerung funktioniert nicht wie erwartet

Beitrag von andreas301 » 26.05.2022, 21:38

@Gluehwurm:
ich werde das Programm mal löschen und neu anlegen, beide Bedingungen sind auf jeden Fall erfüllt.

@Xel66
das würde ja dann in die gleiche Richtung wie HM_Villas Vorschlag gehen. Ich hatte das so auch schon mal versucht, hat allerdings nicht geholfen.

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

Re: Rolladensteuerung funktioniert nicht wie erwartet

Beitrag von Xel66 » 27.05.2022, 08:49

andreas301 hat geschrieben:
26.05.2022, 21:38
@Xel66
das würde ja dann in die gleiche Richtung wie HM_Villas Vorschlag gehen.
Richtung ja, aber Grundaussage nein. Dein Problem ist das GLEICHZEITIGE Setzen der beiden als Trigger verwendeten Variablen. Und an dieser Stelle kommt es zu Problemen. Einen der Trigger musst Du opfern und als Bedingung (nur prüfen) verwenden. Brauchst Du beide, musst Du Dir was einfallen lassen (z.B. eine andere um eine Sekunde verzögerte Systemvarible dazwischenschalten). Auch mit der von HM_Villa vorgeschlagenen Lösung existieren in diesem Programm eben zwei Trigger, die gleichzeitig gesetzt werden. Nur eben in zwei verODERten Blöcken. Macht nicht wirklich einen Unterschied. Die CCU kann nicht entscheiden, welcher dieser Trigger diese Bedingungsprüfung gestartet hat und tut dann wohl nichts (besonders dann, wenn es mehrere gleichartige Aktionen gibt).

Ich habe bei mir das Problem auf eine andere Weise gelöst (weil ich für die Beschattungssteuerung auch Azimut und Elevation verwende). Ich hatte aus "historischen Gründen" eine Scriptlösung, die diese Werte berechnet, weil ich sie schon vorher für andere Zwecke verwendet hatte. Meine Wetterstationsintegration (Froggit) schreibt aber ebenfalls diese Werte als Systemvariable in die CCU (aber eben mit einem anderen Zeittakt und somit zu einem anderen Zeitpunkt). Dadurch habe ich die Trigger entzerrt.

Du könntest z.B. in Deinem Programm, welches die Variablen setzt, das Script in zwei aufteilen und in einem nur den Azimut in die Variable schreiben lassen und im anderen die Elevation eine Sekunde verzögert. Solltest Du im Scripting nicht so fit sein, fügst Du das gleiche Script in beide Aktionen ein und kommentierst am Ende das Setzen jeweils einer der Systemvariablen (kannst Du ja am Namen identifizieren) durch Voranstellen eines Ausrufezeichens und eines nachfolgenden Leerzeichens aus. Im einfachsten Falle besteht Dein Script ja nur aus zwei Zeilen. Dann eben eine Zeile in ein Script in eine Aktion und die andere in eine ander Aktion im DANN und die zweite verzögerst Du um eine Sekunde.

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

Gluehwurm
Beiträge: 12434
Registriert: 19.03.2014, 00:37
System: in Planung
Hat sich bedankt: 105 Mal
Danksagung erhalten: 380 Mal

Re: Rolladensteuerung funktioniert nicht wie erwartet

Beitrag von Gluehwurm » 27.05.2022, 11:13

Xel66 hat geschrieben:
27.05.2022, 08:49
Die CCU kann nicht entscheiden, welcher dieser Trigger diese Bedingungsprüfung gestartet hat
Ist mir ja ganz neu ... hatten wir das schon?

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

Re: Rolladensteuerung funktioniert nicht wie erwartet

Beitrag von Xel66 » 27.05.2022, 11:20

Ja, war in ähnlichen Zusammenhang schon mal ein Thema. Da ging es auch um das gleichzeitige Setzen von Variablen und ihrer Verwendung als Trigger. Habe das Thema mir leider nicht gebookmarkt. Nach meiner Erinnerung noch gar nicht so lange her (maximal 2021). Damals war es wohl das in der Zwischenzeit überholte aufwändige Astrozeitenscript, mit den als Dezimalzahlen gewandelten Uhrzeiten. Hier werden auch alle Werte quasi gleichzeitig geschrieben.

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

Gluehwurm
Beiträge: 12434
Registriert: 19.03.2014, 00:37
System: in Planung
Hat sich bedankt: 105 Mal
Danksagung erhalten: 380 Mal

Re: Rolladensteuerung funktioniert nicht wie erwartet

Beitrag von Gluehwurm » 27.05.2022, 11:30

Ok ... eigentlich sollte dann höchstens doppelt gestartet werden ... aber wenn die Werte sowieso (fast) gleichzeitig geschrieben werden, kann ja der (im entsprechenden Skript) letztere der Trigger sein.

Antworten

Zurück zu „RaspberryMatic“