Denkfehler in meinem DOIF zur Rolladensteuerung - Tipp wäre super

Begonnen von Jogi, 23 Oktober 2019, 16:08:09

Vorheriges Thema - Nächstes Thema

Jogi

Hallo,
ich habe im Sommer meine Rolladen auf Shelly umgestellt und steuere sie mittels eines DOIF.
Hier das DEF:
([Freigabe_Rolladen_Auto] eq "on" and ([Alle_Rolladen] eq "open" or ([?Wochenende] eq "on" and [Dunkel] eq "off" and [[Uhrzeit_hoch_WE]]))) (set RolladenKueche open) ## 1 
DOELSEIF ([Freigabe_Rolladen_Auto] eq "on" and ([Alle_Rolladen] eq "open" or ([?Wochenende] eq "off" and [Dunkel] eq "off" and [[Uhrzeit_hoch_WTag:state]]))) (set RolladenKueche open) ## 2 
DOELSEIF ([Freigabe_Rolladen_Auto] eq "on" and ([Alle_Rolladen] eq "closed" or [[Uhrzeit_runter:state]] or ([Dunkel] eq "on" and [20:30-23:00]) or ([Alarmanlage] eq "on" and [22:00-05:00])))(set RolladenKueche closed) ## 3
DOELSEIF ([Freigabe_Rolladen_Auto] eq "on" and ([Alle_Rolladen] eq "stop"))(set RolladenKueche stop)## 4
DOELSE (set RolladenKueche stop) ## 5

Das hat auch im bis vor ein paar Tagen super funktioniert. Leider fahren die Rolladen aber seit drei Tagen morgens nicht mehr hoch.
Ich glaube auch zu wissen woran es liegt und habe mir -denke ich- selbst ein Ei gelegt.
[Dunkel] wird mittels sunset on gesetzt
*{sunset(+900,"16:00","23:00")} set Dunkel on
und mittels sunrise wieder off gesetzt
*{sunrise(0,"04:30","10:00")} set Dunkel off

[[Uhrzeit_hoch_WTag:state]] ist ein Slider, mit dem ich manuell die Uhrzeit eingebe. Die steht momentan für Wochentage auf 07:30 Uhr.

Das was ich möchte ich, dass die Rollade bei Sonnenaufgang hoch fährt, nicht aber vor 07:30 Uhr. Geht die Sonne später auf als 07:30 Uhr, soll die Rollade später hoch fahren.
Mit meinem DOIF funktioniert das aber nicht. Meine Erklärung: Da die Sonne mit meinem "sunrise" momentan eine Zeit von
Next: 07:35:49 
ausgibt und das nach 07:30 Uhr liegt, wird cmd2 nicht gesetzt, da [[Uhrzeit_hoch_WTag:state]] nur um 07:30 wahr ist und danach nicht mehr.
Meine Fragen: Ist meine Annahme korrekt?
Gibt es eine Möglichkeit, meine Vorstellung mit dem vorhandenen DOIF trotzdem zu lösen?

Was ich weiß ist, dass ich mir ein separates Sunrise für die Rolladen setzen könne, z.B. so
*{sunrise(0,"07:30","10:00")} set Dunkel off
Aber dazu müsste ich mir zwei weitere Devices anlegen was ich eigentlich nicht möchte.
Oder ich könnte mittels eines weiteren DOIF und [[Uhrzeit_hoch_WTag:state]] ein Dummy setzen, der von surise gesetzt und von sunset gelöscht wird und den dann in das erste DOIF einbauen. Aber auch dazu müsste ich mit weitere Devices anlegen.
Kurzum, ich bekomme mein Problem gelöst, lerne aber gerne dazu und wüsste gerne, ob es auch eine "schönere" Lösung mittels DOIF gibt.

Daher nehme ich Tipps und Hinweise gerne an.
Danke

PS.: Das es ein Modul AutoSchuttersControl gibt, weiß ich. Ich würde aber gerne bei meinem DOIF bleiben.

Otto123

Hi,

wenn Du das hier
[Dunkel] eq "off" and [[Uhrzeit_hoch_WTag:state]]
gegen das ersetzt?
[{sunrise(0,ReadingsVal("Uhrzeit_hoch_WTag","state","04:30"),"10:00")}]

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

Jogi

Zitat von: Otto123 am 23 Oktober 2019, 17:04:12
Hi,

wenn Du das hier
[Dunkel] eq "off" and [[Uhrzeit_hoch_WTag:state]]
gegen das ersetzt?
[{sunrise(0,ReadingsVal("Uhrzeit_hoch_WTag","state","04:30"),"10:00")}]

Gruß Otto
Vielen Dank Otto,
werde ich am Wochenende gleich ausprobieren.
Gruß,
Jogi

misux

HI!

Vielleicht so als "Denkanstoß"Tipp"Info":

Ich hatte auch eine Zeit lang meine Rolladen mit Sunrise und Konsorten... Muss sagen das das alles, naja, Mist ist...
Habe mit einen Helligkeitssensor von HM gekauft und nun beziehen sich die Rolladen nach der Helligkeit vom Sensor... Das ist deutlich genauer vor allem was die Helligkeit im inneren des Hauses an geht...
Mein Sensor ist draußen. Habe abgewartet bis es mir dann drin dunkel/Hell genug ist und mit diesen Werten steuere ich die Rolladen.

Hier ein Beispiel wie ein Roladen Fährt: Einfach und solide und IMMER zur gleichen Helligkeit!

([LichtSensor:brightness] < 20.0 and [?InnenRollo:level] > 63) (set InnenRollo 63)
DOELSEIF
([TVTime:state] eq "on" and [?InnenRollo:level] > 63 and [?LichtSensor:brightness] > 15.0) (set InnenRollo off)
DOELSEIF
([TVTime:state] eq "off" and [?InnenRollo:level] < 63 and [?LichtSensor:brightness] < 20.0) (set InnenRollo 63)
DOELSEIF
([TVTime:state] eq "off" and [?InnenRollo:level] < 64 and [LichtSensor:brightness] > 20.0) (set InnenRollo on)


Mit dem Lichtsensor sparst du dir das dummy "Dunkel" und hat viel mehr Möglichkeiten

Ich weiß, ist zwar nicht die Antwort auf deine Frage aber vielleicht auch die bessere Lösung für dich wie sie für mich war.

Gruß