Hallo,
vermutlich sehe ich den Wald vor lauter Bäumen nicht.
Es ist auch nicht mein erstes DOIF, doch irgendwie drehe ich mich hier.
Der Zustand von dem DOIF ändert sich nicht und schaltet deshalb um 11 Uhr auch nicht.
Könnt Ihr mir sagen woran das liegt?
([11:00] and [Jalousie_Automatik] eq "Auto")
(set room=Jalousien:FILTER=TYPE=CUL_HM:FILTER=pct!=62 100)
DOELSE
()
Vielen Dank,
Hoffi
LIST:
Internals:
DEF ([11:00] and [Jalousie_Automatik] eq "Auto")
(set room=Jalousien:FILTER=TYPE=CUL_HM:FILTER=pct!=62 100)
DOELSE
()
FUUID 60254843-f33f-7e98-9b89-0169750d1a5384c6
MODEL FHEM
NAME Rollo_Gruppe_Hoch
NOTIFYDEV Jalousie_Automatik,global
NR 483
NTFY_ORDER 50-Rollo_Gruppe_Hoch
STATE cmd_1
TYPE DOIF
VERSION 23810 2021-02-23 20:14:35
.attraggr:
.attrminint:
READINGS:
2021-03-16 11:00:00 cmd 1
2021-03-16 11:00:00 cmd_event timer_1
2021-03-16 11:00:00 cmd_nr 1
2021-03-15 16:08:41 mode enabled
2021-03-16 11:00:00 state cmd_1
2021-03-18 11:00:00 timer_01_c01 19.03.2021 11:00:00
Regex:
accu:
cond:
Jalousie_Automatik:
0:
&STATE ^Jalousie_Automatik$
attr:
cmdState:
wait:
waitdel:
condition:
0 ::DOIF_time_once($hash,0,$wday) and ::InternalDoIf($hash,'Jalousie_Automatik','STATE') eq "Auto"
days:
do:
0:
0 set room=Jalousien:FILTER=TYPE=CUL_HM:FILTER=pct!=62 100
1:
0
helper:
DEVFILTER ^global$|^Jalousie_Automatik$
NOTIFYDEV global|Jalousie_Automatik
event timer_1
globalinit 1
last_timer 1
sleeptimer -1
timerdev
timerevent timer_1
triggerDev
timerevents:
timer_1
timereventsState:
timer_1
triggerEvents:
timer_1
triggerEventsState:
timer_1
internals:
all Jalousie_Automatik:STATE
interval:
intervalfunc:
localtime:
0 1616148000
realtime:
0 11:00:00
time:
0 11:00:00
timeCond:
0 0
timer:
0 0
timers:
0 0
triggertime:
1616148000:
localtime 1616148000
hash:
uiState:
uiTable:
Attributes:
group Jalousien
room Jalousien,Jalousien Di´s
Hi,
zu viel Filter :)
list TYPE=CUL_HM:FILTER=pct!=62
list room=Arbeitszimmer:FILTER=pct=62
ZitatFalls die Spezifikation von :FILTER=NAME=WERT gefolgt wird, dann wird die zuvor gefundene Liste durch diesen neuen Ausdruck gefiltert.
Gruß Otto
ok.
Ich hatte vorher ein "einfaches" AT
*11:00 {if (Value("Jalousie_Automatik") eq "Auto") {fhem("set room=Jalousien:FILTER=TYPE=CUL_HM:FILTER=pct!=62 100")}}
damit ging es gut.
Jetzt habe ich das DOIF schon "gekürzt" aber noch nicht genug.
([11:00] and [Jalousie_Automatik] eq "Auto")
(set model=HM-LC-BL1PBU-FM:FILTER=pct!=62 100)
DOELSE
()
Wie kann ich dem DOIF sagen, dass die Jalousieschalter um 11Uhr hoch gehen sollen, wenn Sie nicht auf 62% stehen?
Torsten
Hallo Torsten,
ok da lag ich eventuell falsch, ich meinet es geht nur ein Filter.
Deinen Filter kannst Du immer mit list probieren.
Du kannst den Befehl immer in der Kommandozeile probieren, wenn er funktioniert gut.
Du sagts DOIF wechselt nicht den Zustand es steht laut list aber auf cmd_1 und hat einen Timer für den nächsten Tag gesetzt. Ich sehe da keine Fehler.
Mich verwirrt immer die leer ELSE - die habe ich noch nie begriffen. Scheinbar hast Du es geschafft das sich der Zustand nicht ändert und er das letzte mal am 16. geschaltet hat. Das wäre ein Fall für do always ?
Gruß Otto
Hallo Otto,
ich hatte erst nur den einen Zweig da stehen.
Das leere DOELSE war dann nur ein weiterer Versuch, ob das DOIF schaltet. Tut es aber auch nicht.
Mit do always kann ich es mal ausprobieren, aber wenn "11Uhr" vorbei ist, sollte es doch in CMD2 wechseln. Oder habe ich da ein Denkfehler?
Den Timer hat er auf nächsten Tag gesetzt, hat ihn aber nicht ausgeführt. Vielleicht weil er den Zustand (CMD1) nicht wechselt?
Wenn ich das set in die Eingabe gebe, wird es ausgeführt.
Ich lasse das DOIF jetzt mal so unangetastet und gucke mal wie/ob er das WE schaltet.
Torsten
Hallo Torsten,
ich tue mich mit dem DOIF immer schwer...
Aber ich habe etwas ähnliches und dort ist do always gesetzt. Das tut ;)
defmod di_SonosCheck DOIF ([05:00] and [?Sonos] ne "opened" )(attr Sonos disable 1)(attr Sonos disable 0)
attr di_SonosCheck do always
attr di_SonosCheck room Bad,Status
attr di_SonosCheck wait 0,10
Gruß Otto
Hallo Otto,
mit Do always funktioniert das DOIF.
Weshalb das DOIF aber den Zweig nicht wechselt erschließt sich mir noch nicht. Aber es funktioniert.
Vielen Dank,
Torsten