Der TE sollte sich mal den Artikel von Funkleuchtturm auf seiner Homepage hier
https://www.stall.biz/project/tutorial- ... ebui-logik mal in Ruhe zu Gemüte ziehen.
Auch ich, als Softwareentwickler, hatte am Anfang Schwierigkeiten, mich mit der besonderen Ablauflogik für Programme auf der CCU/RaspberryMatic "anzufreunden". Denn normalerweise geht man halt vom logischen Standpunkt davon aus, dass das Programm erst getriggert wird, wenn ALLE auslösenden Bedingungen zutreffen. Aber hier ist es halt eben anders.
Sobald bei einem Programm auch nur eine der WENN-Bedingungen, die, wie von Manfred erwähnt, nicht auf "nur Prüfen" gesetzt ist, zu einem geänderten TRUE oder FALSE führt, dann wird das Programm komplett von oben bis unten abgearbeitet und alle Bedingungen werden erneut geprüft, wie der aktuelle Zustand der jeweiligen Bedingung ist.
Aber wenn ich mir so die Namen seiner SV anschaue, dann hat der TE wahrscheinlich schon auf der Webseite von Funkleuchtturm "gespickt" und einige Sachen bei sich implementiert. Aber eben nur nach der Copy-Paste-Methode, ohne die Logik richtig verstanden zu haben.
Und wenn bei einer Bedingung "bei Aktualisierung" eingestellt ist, wie beim TE im Programm "Hell oder Dunkel", dann führt jede Änderung des Wertes in der Bedingung dazu, dass dieses Programm ausgeführt wird. In seinem Fall wird jedes Mal, wenn sich der Sonnenstand ändert und dabei größer als -2 Grad ist, die Variable "Hell" neu gesetz. Nicht auszudenken, wenn er ein Programm hat, dass auf "bei Aktualisierung" diese Variable prüft und dann z.B. Lampen ausschaltet oder Rollläden hochfährt. Denn dann wird jedes Mal, wenn die Sonne am Vormittag immer höher steigt und am Nachmittag wieder sinkt, durch sein Programm "Hell oder Dunkel" die SV aktualisiert und somit, falls alle anderen Bedingungen in den anderen Programmen zu diesem Zeitpunkt ebenfalls ein TRUE ergeben, ein Ausschaltsignal an die Lampen oder ein Signal zum Hochfahren der Rollos gesendet. Das treibt dann natürlich den Duty Cycle nach oben und führt im Falle von Rollladen-Aktoren dazu, dass dort verdammt oft ein Klicken zu hören ist.
Im Gegensatz zu Unterputzaktoren für Lichtschalter, die kennen nur den Zustand "Relais offen" oder "Relais geschlossen" und ändern somit auch nicht mehr ihren Zustand, in dem sie sich gerade befinden, auch wenn sie mehrfach denselben Befehl erhalten, sind Aktoren für Rollläden ein verdammt guter Indikator für "schlechte" Programme im Sinne von HomeMatic. Denn sie arbeiten mit zwei Relais. Eins für das Hochfahren und eins für das Runterfahren. Und die schalten bei jedem Befehl und ziehen das entsprechende Relais an, egal, ob sich das Rollo schon in der bereits gewünschten Position befindet oder nicht. Wenn also gerade diese Aktoren sich immer wieder zwischendurch durch Geräusche bemerkbar machen, dann sollte man schnellstmöglich die Programme prüfen und zusätzliche Bedingungen einführen, wie zum Beispiel das Prüfen (!!!) der aktuellen Behanghöhe. Und wenn mann schon dabei ist, ebenfalls andere Programme checken, ob man auch dort nicht durch zusätzliche Bedingungen den aktuellen Stand eines Aktors prüft, um ihn nicht mehrfach ein- oder auszuschalten. Das spart ungemein an Funkverkehr und schont den Aktor vor frühzeitiem Verschleiß.