Rolladen mit drei Timern und Urlaubsstatus

Begonnen von lestat.le, 03 Mai 2016, 11:00:36

Vorheriges Thema - Nächstes Thema

lestat.le

Hallo,
ich versuche meine Rolladen zu bestimmten Bedingungen Morgens hochfahren zu lassen.
Dazu benutze ich 4 dummys. Dummy1 setzt Zeit für die Wochentage, dummy 2 setzt Zeit fürs Wochenende, dummy 3 die Zeit wenn im Urlaub und dummy 4 setzt Status "Zuhause" oder "Urlaub".
Die Status werden alle in die DOIF übergeben. Trotzdem fährt der Rolladen nicht hoch. Hab ich einen prinzipiellen Denkfehler oder ist es nur eine Kleinigkeit oder geht's noch viel besser? Für jede Hilfe dankbar.

define DOIF_Rollo_Timer_hoch DOIF (([Urlaub] eq "Zuhause" + ([([Rollo_Wochentag_hoch]+rand(600))|12345])) or ([Urlaub] eq "Zuhause" + ([([Rollo_Wochenende_hoch]+rand(600))|7])) or ([Urlaub] eq "Urlaub" + ([([Rollo_Urlaub_hoch]+rand(600))|78])))(set Rollo up)
attr DOIF_Rollo_Timer_hoch room Rollo
attr DOIF_Rollo_Timer_hoch stateFormat timer_1_c1,timer_2_c1,timer_3_c1

Muschelpuster

Zitat von: Damian am 28 April 2016, 21:37:08
Zitat aus der aktuellen Commandref des Moduls:
ZitatDas DOIF-Modul arbeitet mit Zuständen. Jeder Ausführungszweig DOIF/DOELSEIF..DOELSEIF/DOELSE stellt einen eigenen Zustand dar (cmd_1, cmd_2, usw.). Das Modul merkt sich den zuletzt ausgeführten Ausführungszweig und wiederholt diesen standardmäßig nicht. Ein Ausführungszweig wird erst dann wieder ausgeführt, wenn zwischenzeitlich ein anderer Ausführungszweig ausgeführt wurde, also ein Zustandswechsel stattgefunden hat. Dieses Verhalten ist sinnvoll, um zu verhindern, dass zyklisch sendende Sensoren (Temperatur, Feuchtigkeit, Helligkeit, usw.) zu ständiger Wiederholung des selben Befehls oder Befehlsabfolge führen.
Ohne jetzt Deine Definition in aller Gänze genossen, oder gar verstanden zu haben sehe ich hier das Problem. Helfen würde evtl.:attr DOIF_Rollo_Timer_hoch do alwaysAber ich würde vermutlich nur ein DOIF für hoch&runter mit entspr. DOELSEIF-Anweisungen machen. Dann ändert sich der State und das do always würde nicht dazu führen, dass u.U. mehrfach der Befehl an die Rollläden gesendet wird.

zitierte Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

Ellert


moonsorrox

"do always" wird eher nicht gebraucht,

ich sehe + Zeichen als Fehler und ich würde wie schon erwähnt DOELSEIF verwenden zwischen den einzelnen Definitionen Urlaub
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

lestat.le

Ich habe das + jetzt nochmal durch ein "and" ersetzt. Was gestern mit "and" nicht funktionierte, hat nun doch geholfen.
Das "+" hatte ich probiert, da gestern das "and" nicht wollte. Aber ich vermute da war noch eine ganze Kette an kleinen Unsauberkeiten schuld.
Ich werde das in den nächsten Tagen nochmal ausführlich testen und mich ggf. melden, falls das Problem doch noch besteht. Aber ich denke das war´s.
Vielen Dank für die schnelle Unterstützung