Rolladensteuerung mit mehreren Abfragen

Begonnen von ms_steini, 26 Februar 2017, 15:09:31

Vorheriges Thema - Nächstes Thema

ms_steini

Hallo zusammen,

ich habe insgesamt 9 HM-LC-Bl1PBU-FM Rolladenaktoren im Obergeschoss
OG.Rollo.Buero.Tuer
OG.Rollo.Diele.Fenster
OG.Rollo.Elternbad.Fenster
OG.Rollo.Henna.Fenster
OG.Rollo.Kinderbad.Fenster
OG.Rollo.Schlafzimmer.Fenster
OG.Rollo.Schlafzimmer.Tuer
OG.Rollo.Shirin.Fenster
OG.Rollo.Treppe.Fenster


Diese habe ich auch alle in einer "structure" (OG.Alle.Rollos)
room OG.Rollo.Buero.Tuer OG.Rollo.Diele.Fenster OG.Rollo.Elternbad.Fenster OG.Rollo.Henna.Fenster OG.Rollo.Kinderbad.Fenster OG.Rollo.Schlafzimmer.Fenster OG.Rollo.Schlafzimmer.Tuer OG.Rollo.Shirin.Fenster OG.Rollo.Treppe.Fenster

Weiterhin habe ich für das Zeitgesteuerte auf und zu fahren mehrere "AT" definiert, und genau da liegt mein Problem. Ich denke das kann man auch eleganter lösen aber ich weiß nicht wie.
Also,
1.  alle Rollos an Werktagen morgens um 07:30 Uhr auf, an Wochenenden, Feiertagen morgens um 09:00 Uhr auf,
2.  bei Schulferien nur die Rollos "OG.Rollo.Henna.Fenster" und "OG.Rollo.Shirin.Fenster" um 09:00 Uhr auf alle anderen wie unter 1.
3.  bei Nachtschicht nur die Rollos "OG.Rollo.Schlafzimmer.Fenster" und "OG.Rollo.Schlafzimmer.Tuer" um 13:00 Uhr auf, alle anderen wie unter 1. oder 2.

Div. Kalender sind vorhanden:
ical Nachtschicht
ical NRW_Schulferien
Feiertage in holiday

Im Moment mache ich das so:

define OG.Rollos_alle_auf_WT at *07:30:00 { if ( !($we) && !(Value("NRW_Ferientag")) ) { fhem("set OG.Rollo.Buero.Tuer OG.Rollo.Diele.Fenster OG.Rollo.Elternbad.Fenster OG.Rollo.Henna.Fenster OG.Rollo.Kinderbad.Fenster OG.Rollo.Shirin.Fenster OG.Rollo.Treppe.Fenster on");; } }
define OG.Rollos_alle_auf_WE at *09:00:00 { if ($we) { fhem("set OG.Rollo.Buero.Tuer OG.Rollo.Diele.Fenster OG.Rollo.Elternbad.Fenster OG.Rollo.Henna.Fenster OG.Rollo.Kinderbad.Fenster OG.Rollo.Shirin.Fenster OG.Rollo.Treppe.Fenster on"); } }
define OG.Rollos_alle_auf_Ferien  at *09:00:00 { if ( Value("NRW_Ferientag") ) { fhem("set OG.Rollo.Buero.Tuer OG.Rollo.Diele.Fenster OG.Rollo.Elternbad.Fenster OG.Rollo.Henna.Fenster OG.Rollo.Kinderbad.Fenster OG.Rollo.Shirin.Fenster OG.Rollo.Treppe.Fenster on"); } }
define OG.Rollos.Schlafzimmer.auf.WT at *07:30:00 { if ( !($we) && !(Value("Schichtplan_Nacht")) ) { fhem("set OG.Rollo.Schlafzimmer.Fenster,OG.Rollo.Schlafzimmer.Tuer on");; } }
define OG.Rollos.Schlafzimmer.auf.WE at *09:00:00 { if ( ($we) && !(Value("Schichtplan_Nacht")) ) { fhem("set OG.Rollo.Schlafzimmer.Fenster,OG.Rollo.Schlafzimmer.Tuer on"); } }
define OG.Rollos.Schlafzimmer.auf.Nachtschicht at *13:00:00 { if (Value("Schichtplan_Nacht") ) { fhem("set OG.Rollo.Schlafzimmer.Fenster,OG.Rollo.Schlafzimmer.Tuer on");; } }

Das sind 6 "AT" und wie gesagt ich denke das kann man alles in einer "AT" oder "DoIf" machen, oder gibt es sonst noch Möglichkeiten das elegant zu lösen.

Ich würde mich sehr freuen wenn mir jemand dabei hilft dies zu realisieren. DANKE

rudolfkoenig

Sicher kann man das zusammenfassen, ob danach einfacher zu pflegen ist wage ich zu bezweifeln.

Da ich kein HM zum testen habe: funktioniert neuerdings HM-Set fuer mehrere Geraete mit Leerzeichen als Trenner, oder braucht man wie sonst das Komma dafuer?

ms_steini

Zitat von: rudolfkoenig am 26 Februar 2017, 17:16:37
Sicher kann man das zusammenfassen, ob danach einfacher zu pflegen ist wage ich zu bezweifeln.

Da ich kein HM zum testen habe: funktioniert neuerdings HM-Set fuer mehrere Geraete mit Leerzeichen als Trenner, oder braucht man wie sonst das Komma dafuer?

Moin,

da ich ja noch Anfänger bin werde ich das dann so lassen.
Mit leerzeichen als Trenner funktioniert bei mir nicht, ich muß die Geräte mit einem Komma trennen.

Hollo

Zitat von: ms_steini am 26 Februar 2017, 15:09:31
...Diese habe ich auch alle in einer "structure" (OG.Alle.Rollos)...
Dann benutz doch auch die structure, wenn Du alle Rollos fahren willst !?
Ist schon viel kürzer und übersichtlicher.  ;)
 
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

ms_steini

Zitat von: Hollo am 28 Februar 2017, 09:22:25
Dann benutz doch auch die structure, wenn Du alle Rollos fahren willst !?
Ist schon viel kürzer und übersichtlicher.  ;)


ja, dann müsste ich für die Schlafzimmer-Rollos eine extra "structure" machen... Das ginge auch. Es würde dann aber trotzdem bei den 6 definierten AT's bleiben

CoolTux

Ich habe alle benötigten Zeiten bei mir in ein DOIF geschrieben und lasse eine Funktion aufrufen die in einer 99_myUtils steht. Dort prüfe ich noch mal die Zeit und lasse dann die entsprechende Aktion ausführen.
Wäre auch ein Weg.
Desweiteren empfehle ich eine structure pro Raum und dann eine pro Etage in die du die structuren der Räume rein machst.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Franz Tenbrock

hier gab es mal was smartes, leider ging es da nicht weiter...
"Smarte Rolladensteuerung"
https://forum.fhem.de/index.php/topic,58904.msg502937.html#msg502937
war ein prima Ansatz, ging leider nicht weiter

wäre einfach klasse wenn ohne viel Eigenarbeit mit ein paar attr eine steuerung aufgebaut werden könnte.

ist doch fast immer das gleiche.
wann rauf bzw runter
darf nicht runter gehen wenn Türsensor auf auf steht.
bzw solll hochfahren wenn Tür von innen geöffnet wird, Hund muss raus, wenn Tür dann wieder verschlossen wird geht sie halt wieder runter.
Verschattung bei praller Sonne.

der WAF wäre super weil man einfach bei der Def des Rollos die passenden attr ausgesucht werden.

cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi