FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Der Neuling am 31 Juli 2018, 13:17:24

Titel: DOIF für Rollosteuerung mit Jahreszeit, Beschattung und Wochenendsteuerung
Beitrag von: Der Neuling am 31 Juli 2018, 13:17:24
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
Titel: Antw:DOIF für Rollosteuerung mit Jahreszeit, Beschattung und Wochenendsteuerung
Beitrag von: rischbiter123 am 31 Juli 2018, 15:21:19
Würde es nicht reichen, das erste Doelsif nur zwischen 8 und 17 Uhr ausführen zu lassen?
Titel: Antw:DOIF für Rollosteuerung mit Jahreszeit, Beschattung und Wochenendsteuerung
Beitrag von: Der Neuling am 31 Juli 2018, 16:34:24
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
Titel: Antw:DOIF für Rollosteuerung mit Jahreszeit, Beschattung und Wochenendsteuerung
Beitrag von: Otto123 am 31 Juli 2018, 16:41:30
Zitat von: Der Neuling am 31 Juli 2018, 16:34:24
nach der geschweiften Klammer aber vor der Eckklammer?
ja :)
Titel: Antw:DOIF für Rollosteuerung mit Jahreszeit, Beschattung und Wochenendsteuerung
Beitrag von: Der Neuling am 04 August 2018, 09:01:10
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.


Titel: Antw:DOIF für Rollosteuerung mit Jahreszeit, Beschattung und Wochenendsteuerung
Beitrag von: Otto123 am 04 August 2018, 10:07:01
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