Guten Morgen zu sammen,
ich versuche meine Grundlagen etwas zu erweitern und möchte meine Rolläden nun automatisch in Abhängigkeit des Sonnenauf- und untergangs sowie zusätzlich mit einem Touch UI Schalter steuern.
- Ein FTUI Switch steuert ein Dummy Device namens "Rolloautomatikschalter"
- Ein Shelly 2.5 namens "shelly1" steuert den Rolladen (pct 100=oben)
Aufgabe: Wenn der Rolloautomatikschalter = "on" ist, sollen die Rolläden morgens und abends jeweils bei Sonnenauf-/untergang automatisch rauf/runter fahren.
Dies ist mein erster vorsichtiger Kontakt mit dem DOIF Modul, meine geplante Lösung sieht so aus:
define Rolladenautomatik DOIF ([Rolloautomatikschalter:state] eq "on" and [{sunrise("REAL",0,"06:00","7:30")}]) (set shelly1 pct 100) DOELSEIF ([Rolloautomatikschalter:state] eq "on" and [{sunset("REAL",0,"18:00","22:00")}]) (set shelly1 pct 0)
D.h. die Rolläden fahren morgens frühestens um 06:00 Uhr, spätestens um 07:30 Uhr hoch und abends frühestens um 18:00 Uhr bzw. spätestens um 22:00 Uhr, wenn der Automatikschalter aktiv ist.
Jetzt zu meinem heutigen Problem und meinen Fragen:
- ist die Syntax richtig?
- wann wird dieses DOIF durch FHEM überhaupt abgefragt ?
- Zu welchem Zeitpunkt ändert sich die Bedingung sunrise / sunset?
- wie kann ich diese Codezeile testen?
Ich habe schon diverse Foreneinträge und CommandRef Beispiele durchgelesen.
Danke vorab für Euer Feedback.
PS:
so siehts derzeit aus:
Internals:
CFGFN
DEF ([Rolloautomatikschalter:state] eq "on" and [{sunrise("REAL",0,"06:00","7:30")}]) (set shelly1 pct 100) DOELSEIF ([Rolloautomatikschalter:state] eq "on" and [{sunset("REAL",0,"18:00","22:00")}]) (set shelly1 pct 0)
FUUID 5e3d208e-f33f-4dec-9238-fc6dccd3e33db08d
MODEL FHEM
NAME Rolladenautomatik
NOTIFYDEV Rolloautomatikschalter,global
NR 22123
NTFY_ORDER 50-Rolladenautomatik
STATE initialized
TYPE DOIF
VERSION 20500 2019-11-12 17:54:48
READINGS:
2020-02-07 09:32:14 cmd 0
2020-02-07 09:32:14 mode enabled
2020-02-07 09:32:14 state initialized
2020-02-07 09:32:14 timer_01_c01 08.02.2020 07:30:00
2020-02-07 09:32:14 timer_02_c02 07.02.2020 18:00:00
Regex:
accu:
cond:
Rolloautomatikschalter:
0:
state ^Rolloautomatikschalter$:^state:
1:
state ^Rolloautomatikschalter$:^state:
condition:
0 ::ReadingValDoIf($hash,'Rolloautomatikschalter','state') eq "on" and ::DOIF_time_once($hash,0,$wday)
1 ::ReadingValDoIf($hash,'Rolloautomatikschalter','state') eq "on" and ::DOIF_time_once($hash,1,$wday)
days:
do:
0:
0 set shelly1 pct 100
1:
0 set shelly1 pct 0
2:
helper:
DEVFILTER ^global$|^Rolloautomatikschalter$
NOTIFYDEV global|Rolloautomatikschalter
globalinit 1
last_timer 2
sleeptimer -1
intervalfunc:
localtime:
0 1581143400
1 1581094800
readings:
all Rolloautomatikschalter:state
realtime:
0 07:30:00
1 18:00:00
time:
0 {sunrise("REAL",0,"06:00","7:30")}
1 {sunset("REAL",0,"18:00","22:00")}
timeCond:
0 0
1 1
timer:
0 0
1 0
timers:
0 0
1 1
triggertime:
1581094800:
localtime 1581094800
hash:
1581143400:
localtime 1581143400
hash:
uiState:
uiTable:
Attributes:
do always
room Befehle
Dass die Syntax stimmt, siehst du daran, dass dein Befehl akzeptiert wurde und die Zeiten offenbar korrekt gesetzt wurden. Das Modul fragt nicht von sich aus nach irgendetwas, sondern wird immer von außen durch Zeittrigger oder Eventtrigger geweckt. Die Zeiten werden neu berechnet, wenn der entsprechende Zeittrigger zuschlägt. Deinen set-Befehl kannst du mit set cmd... testen, sonst musst du bis zum nächsten Zeitpunkt warten.
Moin,
das haut schon hin, momentan ist es ja (bei mir) erst 7:46 hell und 17:05 schon wieder dunkel. Also ziehen deine "Grenzzeiten"
Wen Du die mal raus nimmst sieht Du exakt Deine Zeiten für Auf- und Untergang.
Gruß Otto
Da mit der Zeit die Wünsche steigen empfehle ich das AutoShuttersControl Modul. Das hat bei mir keinen Wunsch offen gelassen und der Support ist super.
Gesendet von meinem SM-G930F mit Tapatalk
Zitat von: ch.eick am 07 Februar 2020, 12:00:35
Da mit der Zeit die Wünsche steigen empfehle ich das AutoShuttersControl Modul. Das hat bei mir keinen Wunsch offen gelassen und der Support ist super.
Gesendet von meinem SM-G930F mit Tapatalk
Ach du liebe Güte, grade kurz überflogen :o ;D
Danke für den Tip, eventuell etwas für die Zukunft.
Zitat von: Dracolein am 07 Februar 2020, 12:38:37
Ach du liebe Güte, grade kurz überflogen :o ;D
Danke für den Tip, eventuell etwas für die Zukunft.
Aus eigener (Anfänger) Erfahrung kann ich Dir sagen: Es lohnt sich, sich manchmal in die Module in aller Ruhe rein zu lesen, anstatt das Rad neu zu erfinden. Ich habe einige Sachen selbst gebaut, für die das entsprechende Modul lesen -> verstehen -> umsetzen einfacher wäre.
Im falle vom AutoShuttersControl (ASC) kannst Du ja sehr sehr sehr viele Sachen auslassen, die Du nicht brauchst und Dich Schritt für Schritt an benötigte Funktionen trauen - So hab ich es am Ende auch gemacht ;)
Grüße
Andreas
Falls Du auf dem Shelly Tasmota hast, empfehle ich dir, das dort mit den Timern einzustellen. Da gibt es ebenfalls sunrise und sunset. Bedingung auch dort korrekte Zeitzone und lat/long Settings. Falls FHEM mal weg ist, gehen sonst die Rollläden nicht mehr auf.
Gesendet von iPhone mit Tapatalk
Erstmal danke für die Tipps. 18:00 Uhr ist gerade durch und tatsächlich sind die Rolläden von Geisterhand runtergefahren :-*
Zitat von: Dracolein am 07 Februar 2020, 18:02:20
... von Geisterhand runtergefahren :-*
Es war "deine Hand " :)