DOIF für Rollosteuerung mit Jahreszeit, Beschattung und Wochenendsteuerung

Begonnen von Der Neuling, 31 Juli 2018, 13:17:24

Vorheriges Thema - Nächstes Thema

Der Neuling

Hallo zusammen,

zur Erklärung: Bis jetzt steuere ich alle Rollos  mit at- Befehlen. Diese funktionieren auch sehr gut.
Jetzt will ich einige Rollos auch im Sommer beschatten - mit DOIF - was funktioniert.

Problem: - sitzt vor der Tastatur, zwischen meinen Ohren  ;)
Die Jahreszeit wird über einen Dummy vorgegeben.

define di_Rollladen_Eltern DOIF ([du_Rollo_Art] eq "Sommer" and [9:00 - 16:30]  and [HM_63DDCB:brightness] > 85000 and [HM_58F0BD:temperature] > 22) \
(set Rollo_Eltern off-for-timer 19)  \
DOELSEIF ([HM_63DDCB:brightness] < 20000) \
(set Rollo_Eltern on) ##Beschattung Sommer\
DOELSEIF ([du_Rollo_Art] eq "Sommer" and ([{sunset("HORIZON=-3.0",0,"17:00","21:00")}]))\
    (set Rollo_Eltern off-for-timer 19)\
DOELSEIF ([du_Rollo_Art] eq "Sommer" and ([{sunrise("HORIZON=-1.0",0,"06:00", "8:00")}])) \
(set Rollo_Eltern on)

Die Helligkeitssteuerung (erstes DOELSIF) übersteuert mir das zweite DOELSEIF (set Rollo_Eltern off-for-timer 19) - Rollo fährt zu und logischer weise durch das erste DOELSIF wieder sofort auf.
Von der WD/WE Steuerung mal abgesehen.

Hier benötige ich ein paar Tipps
Der Helligkeitswert stört hier. Wie würdet Ihr dies lösen?

Freundliche Grüsse

Andi

rischbiter123

Würde es nicht reichen, das erste Doelsif nur zwischen 8 und 17 Uhr ausführen zu lassen?
4*Raspi, Max Thermostate und Fensterkontakte, FB7590, Mysensors und NanoCUL, IT und Sonoff, zigbee2mqtt2

Der Neuling

Hallo rischbiter123,

Wie gesagt: Das Problem liegt zwischen den Ohren   :) Hätte auch selber darauf kommen können - Betriebsblindheit
Hab es jetzt so ergänzt:
DOELSEIF ([8:15 - 16:59] and [HM_63DDCB:brightness] < 20000)
Kann erst morgen sagen, ob es funktioniert.

Verständnisproblem:
([{sunrise("HORIZON=-1.0",0,"06:00", "8:00")}]
Wo kommt eigentlich die Steuerzeichen für WE/WT ( |8 bzw. |7) hin? Bei normaler Zeitangabe innerhalb der Eckklammer nach der Zeitangabe ist klar - Commandref DOIF.
Ist dies bei sunrise/sunset genauso? Oder kommt die Wochentagsangabe, wie auch schon gesehen, nach der geschweiften Klammer aber vor der Eckklammer?

Vielen Dank für Deine schnelle Hilfe

Andi

Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Der Neuling

Morgen zusammen,

kurzer Zwischenstand: Es tut soweit.
Hier mal die Conifg vom Rollladen:
define Rollo_Eltern FS20 2144 11
attr Rollo_Eltern IODev SCC
attr Rollo_Eltern alias Rollo Eltern
attr Rollo_Eltern devStateIcon Zu:fts_shutter_up:Zu Schatten:fts_shutter_40 Auf:fts_shutter_down:Auf
attr Rollo_Eltern eventMap /on:Auf/off-for-timer 13:Schatten/off:Zu/
attr Rollo_Eltern group Rolladen_OG
attr Rollo_Eltern icon fts_shutter_updown
attr Rollo_Eltern room Rolladen OG
attr Rollo_Eltern sortby 4
attr Rollo_Eltern webCmd Auf:Schatten:Zu

## Beschattung Sommer
define di_Rollladen_Eltern DOIF ([du_Rollo_Art] eq "Sommer" and [9:00 - 16:30]  and [HM_63DDCB:brightness] > 70000 and [HM_58F0BD:temperature] > 22) \
(set Rollo_Eltern off-for-timer 19)  \
DOELSEIF ([8:15 - 16:30] or [HM_63DDCB:brightness] < 25000) \
(set Rollo_Eltern on) \
## Nachtbetrieb Sommer
DOELSEIF ([du_Rollo_Art] eq "Sommer" and ([{sunset("HORIZON=-3.0",0,"17:00","21:00")}]))\
    (set Rollo_Eltern off-for-timer 19)\
DOELSEIF ([du_Rollo_Art] eq "Sommer" and [{sunrise("HORIZON=-1.0",0,"7:30", "8:00")}|7] or [{sunrise("HORIZON=-1.0",0,"06:00", "8:00")}|8]) \
(set Rollo_Eltern on)   \
## Nachtbetrieb Herbst
DOELSEIF ([du_Rollo_Art] eq "Herbst" and ([{sunset("HORIZON=-3.0",0,"17:00","21:00")}]))\
    (set Rollo_Eltern off-for-timer 19)\
DOELSEIF ([du_Rollo_Art] eq "Herbst" and [{sunrise("HORIZON=-1.0",0,"7:30", "8:00")}|7] or [{sunrise("HORIZON=-1.0",0,"06:00", "8:00")}|8]) \
(set Rollo_Eltern on)   \
## Nachtbetrieb Winter
DOELSEIF ([du_Rollo_Art] eq "Winter" and ([{sunset("HORIZON=-3.0",0,"17:00","21:00")}]))\
    (set Rollo_Eltern off) \
DOELSEIF ([du_Rollo_Art] eq "Winter" and [{sunrise("HORIZON=-1.0",0,"7:30", "8:00")}|7] or [{sunrise("HORIZON=-1.0",0,"06:00", "8:00")}|8]) \
(set Rollo_Eltern on)\
## Nachtbetrieb Frühling
DOELSEIF ([du_Rollo_Art] eq "Fruehling" and ([{sunset("HORIZON=-3.0",0,"17:00","21:00")}]))\
    (set Rollo_Eltern off-for-timer 19)\
DOELSEIF ([du_Rollo_Art] eq "Fruehling" and [{sunrise("HORIZON=-1.0",0,"7:30", "8:00")}|7] or [{sunrise("HORIZON=-1.0",0,"06:00", "8:00")}|8]) \
(set Rollo_Eltern on)\
## Betrieb im Urlaub
DOELSEIF ([du_Rollo_Art] eq "Sommer" and ([{sunset("HORIZON=-3.0",0,"17:00","21:00")}]))\
    (set Rollo_Eltern off-for-timer 19)\
DOELSEIF ([du_Ferien_Urlaub] eq "Urlaub,Ferien+Urlaub" and [du_Rollo_Art] eq "Sommer" and [{sunrise("HORIZON=-1.0",0,"7:30", "8:00")}]) \
(set Rollo_Eltern on)

attr di_Rollladen_Eltern alias Rollladen Eltern
attr di_Rollladen_Eltern devStateIcon cmd_1:shutter_4:cmd_2 cmd_2:shutter_open cmd_3:shutter_4 cmd_4:shutter_4 cmd_5:shutter_4 cmd_6:shutter_open cmd_7:shutter_close cmd_8:shutter_4: cmd_9:shutter_4 cmd_10:shutter_open cmd_11:shutter_4 cmd_12:shutter_open:cmd_1
attr di_Rollladen_Eltern icon helper_doif
attr di_Rollladen_Eltern room Rolladen OG,System
attr di_Rollladen_Eltern wait 600:1200


hier habe ich die Problematik, dass der Rollo nicht um 16:30 + 15 min hochfahren und habe daher heute Morgen von and auf or umgestellt - ist noch nicht getestet.
DOELSEIF ([8:15 - 16:30] or [HM_63DDCB:brightness] < 25000) \
(set Rollo_Eltern on) \

Kann diese Zeile so funktionieren? Und wie könnte man dies alles noch vereinfachen/übersichtlicher gestalten?
DOELSEIF ([du_Ferien_Urlaub] eq "Urlaub,Ferien+Urlaub" and [du_Rollo_Art] eq "Sommer" and [{sunrise("HORIZON=-1.0",0,"7:30", "8:00")}]) \
(set Rollo_Eltern on)

Hier müsste ich ja alle Jahreszeiten mit allen Urlaubszuständen nochmal kombinieren.



Otto123

Moin,
([8:15 - 16:30] or [HM_63DDCB:brightness] < 25000) bedeutet, das die gesamte Abfrage war wird wenn einer der beiden Teilausdrücke wahr wird.
Bedeutet von 8:15 - 16:30 oder wenn es dunkel ist. Damit gibt es einen Zeitraum zwischen Hell und 8:15 bzw zwischen 16:30 und dunkel wo das Rollo nicht on gesetzt wird.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz