Automatische Rollladensteuerung

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

dugi
Beiträge: 17
Registriert: 24.09.2013, 16:59

Automatische Rollladensteuerung

Beitrag von dugi » 12.03.2019, 15:03

Hallo!
Ich habe schon lange eine automatische Rollladensteuerung programmiert, die einfach in der Früh die Rollladen öffnet. Ein Skript ruft immer das folgende Programm auf:
Unbenannt-2.jpg
Was mich schon immer gestört hat, ist, dass auch schon bei 100% Öffnung noch einmal der Aktor anzieht (das kann bei den Selve Motoren zu Problemen führen, wenn das 6x hintereinander ohne Positionsänderung durchgeführt wird.)
Ich wollte nun dies durch eine Abfrage verhindern, aber meine Lösung scheint nicht zu funktionieren.
Hier nur ein Probebeispiel, das eben leider so nicht funktioniert:
Unbenannt-3.jpg
Der Aktor zieht auch wie gesagt über 95% an (hab auch 100% schon eingestellt, aber das ist im Prinzip irrelevant).
Hätte jemand einen kleinen Tipp?
Besten Dank
Didi

Sven_A
Beiträge: 4155
Registriert: 26.01.2016, 08:14
System: Alternative CCU (auf Basis OCCU)
Wohnort: Renningen
Hat sich bedankt: 348 Mal
Danksagung erhalten: 284 Mal

Re: Automatische Rollladensteuerung

Beitrag von Sven_A » 12.03.2019, 15:05

Du startest deine Programm nicht über Trigger, sondern direkt über ein anderes Programm. Dabei werden KEINERLEI Bedingungen geprüft, sondern direkt in den ersten DANN Zweig gesprungen. Nutze mal eine Virtuelle Taste als Auslöser und verODER deine Abfrage auf die Höhe. Drücke dann die virtuelle Taste in deinem anderem Programm.

manfredh
Beiträge: 4155
Registriert: 09.09.2012, 10:41
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 78 Mal
Danksagung erhalten: 301 Mal

Re: Automatische Rollladensteuerung

Beitrag von manfredh » 12.03.2019, 15:11

Die ersten Fragen, die ich mir stelle: warum steuerst du das Programm durch ein Script an? Und was löst das Script aus?

Dann: wenn beide Programme existieren, werden auch beide ausgelöst - das erste durch das "Script" (wie auch immer), das zweite durch die Bedingung (Rolladen < 95%).

Zeige uns das Gesamtgebilde und wir helfen dir.
Es gibt 10 Arten von Menschen: solche die Binärcode verstehen und solche, die ihn nicht verstehen.

dtp
Beiträge: 10658
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 320 Mal
Danksagung erhalten: 501 Mal

Re: Automatische Rollladensteuerung

Beitrag von dtp » 12.03.2019, 15:25

dugi hat geschrieben:
12.03.2019, 15:03
Hätte jemand einen kleinen Tipp?
Ja.

Schmeiß einfach alles aus meinem Skript raus, was du nicht brauchst. 8)
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.

dugi
Beiträge: 17
Registriert: 24.09.2013, 16:59

Re: Automatische Rollladensteuerung

Beitrag von dugi » 12.03.2019, 19:58

Hallo!
Hier der komplette Aufbau:
Ein Timer prüft, ob es Sonnenaufgang ist:
Unbenannt-4.jpg
...und ändert die Systemvariabel:

Code: Alles auswählen

! Alle Werte in Minuten
! true = sunset
! false = sunrise

integer timeshiftmorning = 60;
integer timeshiftevening = 0;

integer jetzt = (60 * system.Date("%H").ToInteger()) + system.Date("%M").ToInteger();
integer sa = (60 * system.SunriseTime("%H").ToInteger()) + system.SunriseTime("%M").ToInteger();
integer su = (60 * system.SunsetTime("%H").ToInteger()) + system.SunsetTime("%M").ToInteger();

if (jetzt >= (su + timeshiftevening)) {dom.GetObject("Twilight").State(true);}
else
{ if (jetzt >= (sa - timeshiftmorning)) {dom.GetObject("Twilight").State(false);}
}
Anschließend wird geprüft, ob sich diese Varibel ändert:
Unbenannt-5.jpg
Durch dieses Programm wird der Sprung zum Öffnen durchgeführt:

Code: Alles auswählen

var programObj = dom.GetObject("Alle Rollladen oeffnen Prog 1");
programObj.ProgramExecute();
Danach werden die Rollläden geöffnet:
Unbenannt-2.jpg
Das alles funktioniert auch, nur will ich nun nicht mehr, dass wenn schon ein Rollladen auf 100% ist (manuell geöffnet), wieder in der Früh der Aktor anzieht.
Dies wollte ich verhindern, indem ich abfrage, ob der jeweilige Rollladen auf 100% ist. Dies hätte ich mit folgender Abfrage gedacht, statt dem vorigen Programm (ist jetzt aber nur ein Aktor eingetragen):
Unbenannt-3.jpg
Leider zieht trotz schon bestehender Vollöffnung der Aktor an.

Habe ich mich einigermaßen brauchbar ausgedrückt?
LG

dugi
Beiträge: 17
Registriert: 24.09.2013, 16:59

Re: Automatische Rollladensteuerung

Beitrag von dugi » 15.03.2019, 19:01

Hallo!
Danke erstmals für die obigen Tipps.
Trotzdem, darf ich noch einmal kurz nachfragen, warum diese Bedingung als solche nicht funktioniert!
Unbenannt-3.jpg
Egal, was diese auslöst, Trigger, virtueller Taster, Programmstart...
Vielen Dank.

PS @ dpt: Danke für den Link. Wäre natürlich die optimale Lösung...

Benutzeravatar
JRiemann
Beiträge: 3903
Registriert: 12.11.2015, 21:05
Wohnort: Aurich
Danksagung erhalten: 3 Mal

Re: Automatische Rollladensteuerung

Beitrag von JRiemann » 15.03.2019, 20:14

Die Bedingung funktioniert... aber sie wird bei manuellem Start des Programms nicht beachtet. Wird ein Programm per „Start“ oder per „ProgramExecute“ gestartet, so wird IMMER das erste DANN ohne Rücksicht auf irgendwelche Bedingungen ausgeführt.

Ich würde Dir raten die gesamte Umsetzung zu verwerfen und komplett neu zu überdenken.
Diese Klimmzüge über Skripte die Programme auslösen, Programme ohne Auslöser um dann irgendwelche Bedingungen einzubauen um anschl. doch wieder ganze Aktorengruppen in einem Programm zu steuer, das alles macht keinen Sinn.
Du willst es sicherlich vernünfig und flexiebel gestalten, aber erreichst auf diesem Weg das Gegenteil.
Viele Grüße!
Jörg

Xel66
Beiträge: 14149
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: Automatische Rollladensteuerung

Beitrag von Xel66 » 15.03.2019, 22:53

JRiemann hat geschrieben:
15.03.2019, 20:14
Du willst es sicherlich vernünfig und flexiebel gestalten, aber erreichst auf diesem Weg das Gegenteil.
Dem kann ich mich ebenfalls nur anschließen. Mit solchen von-hinten-durch-die-Brust-ins-Auge-Lösungen schränkt Du Dich nur zusätzlich ein. Das fängt schon bei solchen exotischen Ansätzen wie:
dugi hat geschrieben:
12.03.2019, 19:58
Ein Timer prüft, ob es Sonnenaufgang ist:
an. Dafür gibt es das Zeitmodul mit der Astrofunktion. Sind Dir die dortigen Trigger zu unflexibel (Zeitpunkt vorziehen/verzögern), baue Dir eigene auf der Basis von Systemvariablen. Mit Deinem Ansatz wirst Du nicht glücklich, allein schon, weil zu viele Komponenten auf die Aktoren zugreifen, und Status versuchen zu steuern, die bereits aktuell sind.

Ich steuere für meine Rollladen in allen Programmen nur eine Systemvariable mit der Sollstellung offen oder geschlossen. Jeder Rollladen besitzt dann ein Programm, der diesen Rollladen in Abhängigkeit von dieser Sollstellung verfährt und gleichzeitig den Ist-Zustand prüft. Dann gibt es lediglich noch zusätzliche Systemvariablen vom Typ Zahl, die die Behanghöhe steuern. Eine Lüftungsbehanghöhe von 20% (TFK offen) muss natürlich nur berücksichtigt werden, wenn die Sollstellung "geschlossen" ist. Und eine Beschattungshöhe nur, wenn die Sollstellung "offen" ist.

Der Sollwert-unten (0%/20%) wird vom TFK am zugehörigen Fenster und der Sollwert-oben (z.B. 56%/100%) durch die Beschattungsvariable gesteuert. Alle anderen Programme greifen ausschließlich auf die drei Systemvariablen (1xLogik: RollladenSoll oben/unten, 2xZahl: SollWert-oben und Sollwert-unten) zu.

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

dugi
Beiträge: 17
Registriert: 24.09.2013, 16:59

Re: Automatische Rollladensteuerung

Beitrag von dugi » 17.03.2019, 20:12

Hallo!

Danke für die Antworten!
Werde mal alles zusammenfassen, ist wahrscheinlich wirklich besser. Dass die Bedingung bei manueller Auslösung gleich auf die "Dann" Bedingung springt, hab ich nicht gewusst.

LG

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

Re: Automatische Rollladensteuerung

Beitrag von Gluehwurm » 17.03.2019, 21:11

WebUI-Handbuch, Tipps für Anfänger

Gruß
Bruno

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“