Ich habe das Problem das folgendes DOIF obwohl eigentlich simpel nicht funktioniert:
Internals:
DEF (([Heizungan])-([Heizungaus]) && ([Uebergangszeitaktiv] eq "ein"))(set HeizungEinAus on)DOELSE(set HeizungEinAus off)
FUUID 671381dd-f33f-d8e8-9be9-d5c6bf3a49eb9fdf
FVERSION 98_DOIF.pm:0.285460/2024-02-23
MODEL FHEM
NAME heatuebergangszeit
NOTIFYDEV Heizungan,Uebergangszeitaktiv,Heizungaus,global
NR 1723
NTFY_ORDER 50-heatuebergangaus
STATE cmd_1
TYPE DOIF
VERSION 28546 2024-02-23 20:11:05
eventCount 28
READINGS:
2024-10-25 12:53:06 cmd 1
2024-10-25 12:53:06 cmd_event heatuebergangszeit
2024-10-25 12:53:06 cmd_nr 1
2024-10-25 12:43:21 last_cmd cmd_1
2024-10-25 12:53:02 mode enabled
2024-10-25 12:53:06 state cmd_1
2024-10-25 12:53:06 warning condition c01: Argument "09:00" isn't numeric in subtraction (-)
Regex:
accu:
bar:
barAvg:
collect:
cond:
Heizungan:
0:
&STATE ^Heizungan$
Heizungaus:
0:
&STATE ^Heizungaus$
Uebergangszeitaktiv:
0:
&STATE ^Uebergangszeitaktiv$
attr:
cmdState:
wait:
waitdel:
condition:
0 (::InternalDoIf($hash,'Heizungan','STATE'))-(::InternalDoIf($hash,'Heizungaus','STATE')) && (::InternalDoIf($hash,'Uebergangszeitaktiv','STATE') eq "ein")
do:
0:
0 set HeizungEinAus on
1:
0 set HeizungEinAus off
helper:
NOTIFYDEV Heizungan,Uebergangszeitaktiv,Heizungaus,global
globalinit 1
last_timer 0
sleeptimer -1
timerdev
timerevent
timerevents
timereventsState
triggerDev
DOIF_eventa:
cmd_nr: 1
cmd: 1
cmd_event: heatuebergangszeit
cmd_1
DOIF_eventas:
cmd_nr: 1
cmd: 1
cmd_event: heatuebergangszeit
state: cmd_1
internals:
all Heizungan:STATE Heizungaus:STATE Uebergangszeitaktiv:STATE
uiState:
uiTable:
Attributes:
do always
group Übergangszeit
room Heizung
Gibt die Warnung "condition c01: Argument "09:00" isn't numeric in subtraction (-)" aus.
Heizungan ist im Format "09:00"
und Heizungaus "15:00"
Wie krieg ich das zum Laufen?
danke anton
Hallo Anton,
vielleicht so:
([Heizungan-Heizungaus] && [Uebergangszeitaktiv] eq "ein")
Überflüssige Klammern sind auch entfernt.
Viele Grüße Gisbert
Müsste es nicht zusätzlich auch
[?Uebergangszeitaktiv] eq "ein"
heißen?
Denn das soll ja hinsichtlich der Übergangszeit nicht event-basiert sein, sondern nur "abfragen" ob grade Übergangszeit ist, oder nicht.
Vom Ergebnis her sollte es keinen Unterschied machen, ob [Uebergangszeitaktiv] eq "ein" triggernd oder mit ? nicht triggernd ist.
Ich versuche so wenig Trigger wie möglich zu verwenden. Manchmal kommt es aber vor, gerne im Zusammenhang mit event-on-change-reading, dass man plötzlich ganz ohne Trigger da steht.
Zeitintervalle sehen anders aus:
([[Heizungan]-[Heizungaus]] && ...