Programm zur Rollladensteuerung

HMIP lokale Installation

Moderator: Co-Administratoren

Tebald
Beiträge: 69
Registriert: 27.11.2020, 17:15
System: CCU
Hat sich bedankt: 4 Mal
Danksagung erhalten: 1 Mal

Programm zur Rollladensteuerung

Beitrag von Tebald » 04.04.2022, 21:20

Hallo zusammmen,

ich hoffe, jemand kann einem Anfänger in Sachen CCU3 und Programme helfen und ein paar Tipps geben.
Ich verwende eine CCU3 mit insgesamt 14 BROLL Aktoren. Jetzt möchte ich eine Automation / Programm erstellen, die folgendes prüft: Sind zum Zeitpunkt X alle Rollos geschlossen, wenn nein, schließe alle nicht geschlossenen Rollos.

Ich stehe hier eteas auf dem Schlauch und weiß nciht recht, wie ich beginnen soll und wie die Logik dazu aussehen kann.

Wer kann hier helfen?

Gruß
Christian

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

Re: Programm zur Rollladensteuerung

Beitrag von MichaelN » 04.04.2022, 21:31

Wenn du das nicht alle paar Minuten machst, sondern nur einmal am Tag, dann einfach alle schließen. Das wird dem DC schon nicht schaden.
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: 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: Programm zur Rollladensteuerung

Beitrag von Xel66 » 05.04.2022, 07:49

Ich habe hier mal beschrieben wie ich bei mir eine "alle Lichter aus"-Steuerung umgesetzt habe. Hierfür benötigt man einzig und allein eine virtuelle Taste (von denen es ja im System mindestens 100 gibt). Ich starte dieses Programm von einem Taster am Bett aus, um gezielt alle Lichter im Haus auszuschalten, damit ich nicht auf die automatische Abschaltung "warten" muss.

Der einzige Trick ist, dass sich das Programm immer wieder selbst über die Betätigung der virtuellen Taste aufruft (ganz wichtig: im letzten SONST WENN nicht mehr! - sonst hängst Du in einer Schleife). Nachteil: die Steuerung läuft nicht gleichzeitig, sondern es wird jedes Gerät einzeln geprüft und bei Bedarf gezielt angesteuert. Du müsstest im WENN für Deinen Anwendungsfall das Programm initial über das Zeitmodul starten.

Ist einmalig beim Anlegen des Programms eine Klickarbeit, braucht aber im Nachgang keinerlei Pflege mehr (außer man fügt Aktoren hinzu oder täuscht diese aus). Könnte man auch per Script erledigen, indem man durch ein Gewerk iteriert. Aber mir persönlich sind Programme lieber, weil ich hier auch individuelle Verzögerungen pro Garät einbauen kann (für mich zur Beachtung der Rampenzeit von Dimmern und zur zeitlichen Entzerrung der Ansteuerung).

Bei einem Rollladenprogramm würde ich aber nicht auf größer 0% prüfen, sondern auf 100%. Sonst musst Du die Laufzeit der Rollladen zwischen den einzelnen Ansteuerungen abwarten, denn die endgültige Statusmeldung "0%" bekommst Du ja erst, wenn der Rollladen die Endstellung erreicht hat. Rolladenaktoren "gemeinsam" bzw. überlappend anzusteuern, ist im Hinblick auf mögliche Kommunikationsstörungen wegen ihrer "langen" und ggf. unterschiedlichen Laufzeit und dem etwas erhöhten Kommunikationsverhalten sowieso etwas tricky.

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

Tebald
Beiträge: 69
Registriert: 27.11.2020, 17:15
System: CCU
Hat sich bedankt: 4 Mal
Danksagung erhalten: 1 Mal

Re: Programm zur Rollladensteuerung

Beitrag von Tebald » 05.04.2022, 12:12

Wunderbar, danke für die Tipps. Das Programm zur Lichtsteuerung schaue ich mir heute Abend an. Ich hoffe ich verstehe die Logik dahinter.

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: Programm zur Rollladensteuerung

Beitrag von Xel66 » 05.04.2022, 16:11

Tebald hat geschrieben:
05.04.2022, 12:12
Ich hoffe ich verstehe die Logik dahinter.
Es ist immer die gleiche Logik in allen SONST WENNs. Bei Betätigung des virtuellen Tasters (erste Bedingung), wird die zweite Bedingung "Lampe EIN" geprüft. Ergibt diese Prüfung ein WAHR, wird das DANN ausgeführt (Lampe "AUS" und der virtuelle Taster betätigt).

Ergibt diese Prüfung kein WAHR (als FALSCH), dann wird das die nächste Bedingungskombination aus Schaltzustandsabfrage der nächsten Lampe und der Betätigung des Tasters im nächsten SONST WENN geprüft usw. Mit jeder gefundenen "eingeschalteten" Lampe wird diese ausgeschaltet und der virtuelle Taster betätigt und das Spiel beginnt von vorn.

Das läuft solange, bis das letzte SONST WENN erreicht wurde. Hier wird ja nur noch der Schaltzustand geprüft und ggf. ausgeschaltet. Da in diesem letzten SONST WENN keine virtuelle Taste mehr betätigt wird, wird hiermit der zyklische Programmlauf beendet. Diese Vorgehensweise nutzt im Prinzip die Eigenheiten der Programmabarbeitung durch die CCU (Prüfung der Bedingungen "von oben nach unten" - nachlesbar im WebUI-Handbuch und im Einsteigerthread) aus. Und noch mal zur Sicherheit. Im letzten SONST WENN darf die virtuelle Taste nicht mehr betätigt werden und das SONST darf keine Aktion enthalten! Das Programm wird eben maximal so oft selbst aufgerufen, wie Lampen eingeschaltet sind. Ist kein ein, dann erfolgt eben nur ein einmaliger Durchlauf durch die Bedingungen, ohne dass irgendein DANN ausgeführt wird.

Dieses Konstrukt musst Du eben auf Deine Bedingungen adaptieren. Das Problem, die Laufzeiten sind halt bei Rollladen etwas länger. Das muss man ggf. berücksichtigen. Wäre aber auch bei einem Script so. Um das zu umgehen, müsste man durch den Scriptlauf die Schaltbefehle sammeln und dann gemeinsam am Ende abfeuern.

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

Tebald
Beiträge: 69
Registriert: 27.11.2020, 17:15
System: CCU
Hat sich bedankt: 4 Mal
Danksagung erhalten: 1 Mal

Re: Programm zur Rollladensteuerung

Beitrag von Tebald » 05.04.2022, 20:57

Xel66 hat geschrieben:
05.04.2022, 07:49

Bei einem Rollladenprogramm würde ich aber nicht auf größer 0% prüfen, sondern auf 100%. Sonst musst Du die Laufzeit der Rollladen zwischen den einzelnen Ansteuerungen abwarten, denn die endgültige Statusmeldung "0%" bekommst Du ja erst, wenn der Rollladen die Endstellung erreicht hat. Rolladenaktoren "gemeinsam" bzw. überlappend anzusteuern, ist im Hinblick auf mögliche Kommunikationsstörungen wegen ihrer "langen" und ggf. unterschiedlichen Laufzeit und dem etwas erhöhten Kommunikationsverhalten sowieso etwas tricky.

Gruß Xel66
Hm, verstehe. Aber mit der Prüfung auf 100% schaffe ich keine Prüfung im Sinne von: Schau, ob es nicht komplett geschlossene Rollos gibt. Wenn doch, schließe sie ganz. Genau das ist ja mein Ziel. Mit der Prüfung auf 100% kan ich nur prüfen, ob ein Rollo komplett geöffnet ist. Wenn ja, dann schließen. Was ist aber mit z.B. halb geöffenten Rollos? Diese blieben dabei unberücksichtigt. Bliebe noch die Prüfung auf kleiner oder gleich 100%. Dies würde, wenn ich das richtig interpretiere, aber bedeuten, dass einfach alle Rollos geschlossen werden. Da gleich oder kleiner 100% ja auf alle Zustände zutrifft. Auf geöffnete, halb geöffnete und geschlossene Rollos. Dann könnte ich gleich den Tipp von weiter oben umsetzen und einfach alle Rollos direkt ohne Prüfung ansteuerun und schließen lassen. Liege ich hier richtig?

Ich habe mal versucht, das Ganze mit der Prüfung auf größer 0% zu relaisieren (siehe Dateianhang), aber wie du schon geschrieben hast, funktioniert hier das Schließen des zweiten Rollos schon ncht mehr.

Gruß
Christian
Dateianhänge
Screenshot 2022-04-05 205508.png

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

Re: Programm zur Rollladensteuerung

Beitrag von Baxxy » 05.04.2022, 23:20

Du nutzt den Zeitpunkt eines Zeitmoduls als Trigger. Der Zeitpunkt ist bei dir im Wenn und Sonst, wenn... gleich.
Dieser Zeitpunkt tritt genau 1x ein und das Programm rennt von oben los. Beim ersten wahren Bedingungsblock wird das DANN ausgeführt und das Programm legt sich schlafen.

Rollo_Herd:3 kann also nur geschlossen werden wenn Rollo_Essen:3 zum Trigger-Zeitpunkt schon 0% hat.

Du hast Xel's Ansatz mit der "retriggernden virtuellen Taste" nicht verstanden.

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

Re: Programm zur Rollladensteuerung

Beitrag von MichaelN » 05.04.2022, 23:26

Ich weiß auch immer noch nicht, warum man nicht einfach stumpf alle Rollos schließt.
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 +++

Tebald
Beiträge: 69
Registriert: 27.11.2020, 17:15
System: CCU
Hat sich bedankt: 4 Mal
Danksagung erhalten: 1 Mal

Re: Programm zur Rollladensteuerung

Beitrag von Tebald » 06.04.2022, 09:33

Baxxy hat geschrieben:
05.04.2022, 23:20
Du nutzt den Zeitpunkt eines Zeitmoduls als Trigger. Der Zeitpunkt ist bei dir im Wenn und Sonst, wenn... gleich.
Dieser Zeitpunkt tritt genau 1x ein und das Programm rennt von oben los. Beim ersten wahren Bedingungsblock wird das DANN ausgeführt und das Programm legt sich schlafen.

Rollo_Herd:3 kann also nur geschlossen werden wenn Rollo_Essen:3 zum Trigger-Zeitpunkt schon 0% hat.

Du hast Xel's Ansatz mit der "retriggernden virtuellen Taste" nicht verstanden.
Ok, das macht es etwas verständlicher für mich. Ist mein erster Gehversuch, daher bitte ich um Nachsicht. ☺️

Ich denke ich werden wohl erstmal den Weg des Schließens aller Rollos zum festen Zeitpunkt wählen wie von MichaelN vorgeschlagen.

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: Programm zur Rollladensteuerung

Beitrag von Xel66 » 06.04.2022, 09:43

MichaelN hat geschrieben:
05.04.2022, 23:26
... warum man nicht einfach stumpf alle Rollos schließt.
Wenn man ggf. zur gleichen Zeit die Heizung runtersteuern will und alle Rollladen mit ihrem ausgprägten Kommunikationsbedürfnis auch noch funken, kann das Deinen Duty Cycle schon in arge Schwierigkeiten bringen. Kommt eben auf die individuelle Situation an. UND!: es ist nicht smart. :lol:

BTT: die Nutzung der virtuellen Taste ist für die Funktionsfähigkeit des Programms nicht optional, sondern obligatorisch. Die Taste dient zum Schleifendurchlauf und dem zyklischen Aufrufen des Programms. Ich dachte eigentlich, ich habe die Funktionsweise unmissverständlich beschrieben. Drücke ich mich echt so kompliziert aus?

Den ersten Trigger im WENN kannst Du gern zusätzlich (verODERt) mit dem Zeitmodul machen. Aber die virtuelle Taste muss in alle SONST WENNs als Abfrage und in alle (bis auf das letzte!!!) DANNs als Aktion rein. Nur dann kann das Programm sich immer wieder selbst starten, bis alle Bedingungen (Licht aus aka Rollladen unten) in Verbindung mit der Tastebetätigung erfüllt sind.

Aber denke dran, solange die Rollladen ihre Endstellung nicht erreicht haben, ist die Abfrage auf Behanghöhe >0 immer WAHR (darum meine Empfehlung mit den 100%, was Dir aber bei Zwischenstellungen nicht hilft). Du muss dann die Betätigung der virtuellen Taste zwangsweise um mindestens die Laufzeit des angesteuerten Rollladens verzögern. Heißt im Umkehrschluss auch, dass alle Rollladen nur einzeln nacheinander gefahren werden. VErzögerst Du nicht, ruft sich das Programm im Takt der Verzögerung auf und steuert einen Rollladen mehrfach bis zum Erreichen der Endlage an, was dem Duty Cycle auch nicht zuträglich ist. Dann kannst Du gleich stumpf alle Rollladen gleichzeitig fahren.

Habe gerade bei mir gesehen: Bei den BROLL kannst Du auch zusätzlich noch die Aktion "Rollladen steht" aus dem Statuskanal mit verUNDen. So bräuchtest Du nicht die lange Verzögerung. Das macht natürlich bei der Erstellung des Programms noch zusätzlich Arbeit. Ein Beispiel habe ich mal angehängt.

Gruß Xel66
Dateianhänge
alle_Rollladen.jpg
-------------------------------------------------------------------------------------------
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

Antworten

Zurück zu „HomeMatic IP mit CCU“