Hallo Leute,
ich habe ein Problem. Und zwar wird meine Jalousie über eine Logo 8 gesteuert. Die übernimmt auch das Hochfahren morgens. Zumindestens noch.
Nun wollte ich das mein Fenster (2) zu ganz besondern Punkten runterfahren und zwar wenn es Kälter als 15 grad draußen ist (Test 7 Grad eingestellt). So wie ich es gerade geschrieben klappt es auch. Aber unsere Jalousien fahren morgens um 7 uhr hoch. Nun soll Twilight und die Jalousien sich nicht in die quere kommen.
So sieht mein DOIF zur zeit aus. Wie schreibe ich es wenn ich das letzte Twilight gegen eine Uhrzeit austauschen möchte? 6:50 nimmt er nicht an, sagt er scheibfehler.
DEF
([LaCrosse_33:temperature] <7 and ([[myTwilight:ss_indoor]-[myTwilight:sr]]))
(set Wohnzimmer_ganz_runter trigger)
Das DOIF mit der Fehlermeldung
Internals:
DEF ([LaCrosse_33:temperature] <7 and ([[myTwilight:ss_indoor]-[6:50]]))
(set Wohnzimmer_ganz_runter trigger)
FUUID 6046807d-f33f-da37-f475-10f301abfd17d1b3
MODEL FHEM
NAME Wohnzimmer_Doif_Abends_runter
NOTIFYDEV myTwilight,LaCrosse_33,global
NR 85
NTFY_ORDER 50-Wohnzimmer_Doif_Abends_runter
STATE initialized
TYPE DOIF
VERSION 23466 2021-01-03 17:14:46
READINGS:
2021-03-22 16:52:40 cmd 0
2021-03-22 16:52:40 mode enabled
2021-03-22 16:52:40 state initialized
2021-03-22 16:52:40 timer_01_c01 22.03.2021 19:12:43
2021-03-22 16:52:40 timer_02_c01 error: Wrong timespec : either HH:MM:SS or {perlcode}
Regex:
accu:
cond:
LaCrosse_33:
0:
temperature ^LaCrosse_33$:^temperature:
itimer:
myTwilight:
itimer:
ss_indoor ^myTwilight$:^ss_indoor:
condition:
0 ::ReadingValDoIf($hash,'LaCrosse_33','temperature') <7 and (::DOIF_time($hash,0,1,$wday,$hms))
days:
do:
0:
0 set Wohnzimmer_ganz_runter trigger
1:
helper:
DEVFILTER ^global$|^LaCrosse_33$|^myTwilight$
NOTIFYDEV global|LaCrosse_33|myTwilight
globalinit 1
last_timer 2
sleeptimer -1
triggerDev
interval:
0 -1
1 0
intervalfunc:
localtime:
0 1616436763
readings:
all LaCrosse_33:temperature
realtime:
0 19:12:43
time:
0 [myTwilight:ss_indoor]
1 [6:50]
timeCond:
0 0
1 0
timer:
0 0
1 0
timers:
0 0 1
triggertime:
1616436763:
localtime 1616436763
hash:
uiTable:
Attributes:
do always
room Logo
danke für eure Hilfe.
Zitaterror: Wrong timespec : either HH:MM:SS or {perlcode}
versuch doch mal 06:50 oder 06:50:00
also so etwa:
[[myTwilight:ss_indoor]-06:50]
gerade nochmal ausprobiert: 6:50 geht auch, halt ohne die [] drumrum. Das wäre ja eine indirekte Zeitangabe.
Versuche mal:
([LaCrosse_33:temperature] < 7 and ([{ReadingsVal("myTwilight","ss_indoor","")}-{ReadingsVal("myTwilight","sr","")}]))
(set Wohnzimmer_ganz_runter trigger)
Twilight bietet übrigens eine perl-Funktion (twilight) welche den Wert in einem Zeitraum wiedergibt:
([LaCrosse_33:temperature] < 7 and ([{twilight("myTwilight","ss_indoor","16:00","20:00")}-{twilight("myTwilight","sr","5:00","10:00")}]))
(set Wohnzimmer_ganz_runter trigger)
Und: DOIF: Kombination von Ereignis- und Zeitsteuerung mit logischen Abfragen (https://fhem.de/commandref_DE.html#DOIF_Kombination_von_Ereignis_und_Zeitsteuerung_mit_logischen_Abfragen)
ZitatZitat von: Sany am 22 März 2021, 17:12:04
versuch doch mal 06:50 oder 06:50:00
also so etwa:
[[myTwilight:ss_indoor]-06:50]
gerade nochmal ausprobiert: 6:50 geht auch, halt ohne die [] drumrum. Das wäre ja eine indirekte Zeitangabe.
Habe es nun mal eingeben. Mal schauen was passiert. Danke ja darauf es so zuschreiben bin ich nicht gekommen. Hatte vorher nmlich noch andere angaben aber das hat nie geklappt. so scheint es zumindestens erstmal gut auszusehen.
Danke melde mich ob es geklappt hat.
Na, ist Dein Rollo wunschgemäß gefahren?
Was mit noch auffällt:
([LaCrosse_33:temperature] <7 and ([[myTwilight:ss_indoor]-6:50]))
würde ja bedeuten
1. wenn es bereits unter 7(15) Grad ist und dann der ss_indoor erreicht wird fährt das Rollo. Vermutlich gewünscht.
2. wenn es irgendwann nach ss_indoor sich erst abkühlt auf unter 7(15) Grad fährt das Rollo. Das könnte aber auch erst um 6:49 sein, oder um2:22 wenn Du gerade sooo schön tief schläfst.
Du könntest ja noch ein "spätestens" einbauen, wo entweeder der Rollo immer fährt oder eben immer wenn es < 7(15) Grad ist.
(([LaCrosse_33:temperature] <7 and ([[myTwilight:ss_indoor]-6:50]) or [23:00])
für immer um 23:00
([LaCrosse_33:temperature] <7 and ([[myTwilight:ss_indoor]-6:50] or [23:00]))
für spätestens 23:00 wenn kalt genug. Dann könnte man natürlich auch den Zeitraum anders wählen.
Viel Erfolg!
Hi Sany.
Wann die fahren spielt bei den beiden keine rolle. Das sind 2 Fenster (1X Küche und 1x Wohnzimmer) wir sagen immer Schießscharten sagen wir dazu. Es soll halt eben schalten wenn es unter 15 Grad draußen ist weil da auch unsere Heizung drauf eingestellt ist. Wärme erhalt. Aber danke für den Tip. Den den habe ich schon bei einer anderen Jalousie nun eingebaut. ;)