Hi
Und wieder habe ich es mal wieder geschafft... Bekomme ein Fehlereintrag im Log bei meinem DIOF:
Zitat2020.11.10 10:24:20.825 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 5270451) line 1.
2020.11.10 10:24:20.826 3: eval: DOIFEchoInputTerrasse: warning in condition c01
Was mache ich denn schon wieder falsch...?
Vielen Dank für eure Hilfe!
HIer das DOIF:
Internals:
DEF (([Haus] eq "present" and [08:00-20:00] and [DOIFTempDurchschnitt:state:d] > 15.0) or ([TerrassenTuer1] eq "open" and [DOIFTempDurchschnitt:state:d] > 15.0))
(set EchoInputTerrasse on)
DOELSEIF
([Haus] eq "absent" and [Markise] eq "0")
(set EchoInputTerrasse off)
DOELSEIF
([?Haus] eq "present" and [20:00-08:00] and [TerrassenTuer1] eq "closed" and [?Markise] eq "0")
(set EchoInputTerrasse off)
DOIFDEV ^global$|^Haus$|^TerrassenTuer1$|^DOIFTempDurchschnitt$|^Markise$
FUUID 5d5fdf8a-f33f-84b4-7e96-81508a68680e16d8
MODEL FHEM
NAME DOIFEchoInputTerrasse
NR 190
NTFY_ORDER 50-DOIFEchoInputTerrasse
STATE initialized
TYPE DOIF
VERSION 22398 2020-07-14 09:32:05
READINGS:
2020-11-10 10:24:16 cmd 0
2020-11-10 10:24:16 mode enabled
2020-11-10 10:24:16 state initialized
2020-11-10 10:24:16 timer_01_c01 11.11.2020 08:00:00
2020-11-10 10:24:16 timer_02_c01 10.11.2020 20:00:00
2020-11-10 10:24:16 timer_03_c03 10.11.2020 20:00:00
2020-11-10 10:24:16 timer_04_c03 11.11.2020 08:00:00
Regex:
accu:
cond:
DOIFTempDurchschnitt:
0:
state ^DOIFTempDurchschnitt$:^state:
Haus:
0:
&STATE ^Haus$
1:
&STATE ^Haus$
Markise:
1:
&STATE ^Markise$
TerrassenTuer1:
0:
&STATE ^TerrassenTuer1$
2:
&STATE ^TerrassenTuer1$
attr:
cmdState:
wait:
waitdel:
condition:
0 (::InternalDoIf($hash,'Haus','STATE') eq "present" and ::DOIF_time($hash,0,1,$wday,$hms) and ::ReadingValDoIf($hash,'DOIFTempDurchschnitt','state','','d') > 15.0) or (::InternalDoIf($hash,'TerrassenTuer1','STATE') eq "open" and ::ReadingValDoIf($hash,'DOIFTempDurchschnitt','state','','d') > 15.0)
1 ::InternalDoIf($hash,'Haus','STATE') eq "absent" and ::InternalDoIf($hash,'Markise','STATE') eq "0"
2 ::InternalDoIf($hash,'Haus','STATE') eq "present" and ::DOIF_time($hash,2,3,$wday,$hms) and ::InternalDoIf($hash,'TerrassenTuer1','STATE') eq "closed" and ::InternalDoIf($hash,'Markise','STATE') eq "0"
days:
do:
0:
0 set EchoInputTerrasse on
1:
0 set EchoInputTerrasse off
2:
0 set EchoInputTerrasse off
3:
helper:
DEVFILTER ^global$|^Haus$|^TerrassenTuer1$|^DOIFTempDurchschnitt$|^Markise$
NOTIFYDEV global|Haus|TerrassenTuer1|DOIFTempDurchschnitt|Markise
globalinit 1
last_timer 4
sleeptimer -1
triggerDev
internals:
all Haus:STATE TerrassenTuer1:STATE Markise:STATE
interval:
0 -1
1 0
2 -1
3 2
intervalfunc:
localtime:
0 1605078000
1 1605034800
2 1605034800
3 1605078000
readings:
all DOIFTempDurchschnitt:state
realtime:
0 08:00:00
1 20:00:00
2 20:00:00
3 08:00:00
time:
0 08:00:00
1 20:00:00
2 20:00:00
3 08:00:00
timeCond:
0 0
1 0
2 2
3 2
timer:
0 0
1 0
2 0
3 0
timers:
0 0 1
2 2 3
triggertime:
1605034800:
localtime 1605034800
hash:
1605078000:
localtime 1605078000
hash:
uiState:
uiTable:
Attributes:
do always
room DOIF
Die Temperatur soll er sich von diesem DOIF ziehen:
Internals:
DEF ##
FUUID 5dbc7bc3-f33f-84b4-0d60-d122a76b25983825
MODEL FHEM
NAME DOIFTempDurschnitt
NOTIFYDEV TempAussenCarport,global,TempAussenEingang
NR 212
NTFY_ORDER 50-DOIFTempDurschnitt
STATE 5.7
TYPE DOIF
VERSION 22398 2020-07-14 09:32:05
READINGS:
2019-11-01 19:38:59 cmd 0
2019-11-01 19:38:59 mode enabled
2020-11-10 10:28:14 state 5.7
Regex:
STATE:
TempAussenCarport:
STATE:
temperature ^TempAussenCarport$:^temperature:
TempAussenEingang:
STATE:
temperature ^TempAussenEingang$:^temperature:
accu:
condition:
do:
0:
helper:
DEVFILTER ^global$|^TempAussenCarport$|^TempAussenEingang$
NOTIFYDEV global|TempAussenCarport|TempAussenEingang
event temperature: 6,T: 6 H: 87
globalinit 1
last_timer 0
sleeptimer -1
triggerDev TempAussenEingang
DOIF_eventa:
5.7
DOIF_eventas:
state: 5.7
triggerEvents:
temperature: 6
T: 6 H: 87
triggerEventsState:
temperature: 6
state: T: 6 H: 87
perlblock:
uiState:
uiTable:
Attributes:
event-min-interval 300
room DOIF,Wetter
state {([TempAussenCarport:temperature]+[TempAussenEingang:temperature])/2}
Zitat von: misux am 10 November 2020, 10:32:21
Hi
Und wieder habe ich es mal wieder geschafft... Bekomme ein Fehlereintrag im Log bei meinem DIOF:
Was mache ich denn schon wieder falsch...?
Vielen Dank für eure Hilfe!
HIer das DOIF:
Internals:
DEF (([Haus] eq "present" and [08:00-20:00] and [DOIFTempDurchschnitt:state:d] > 15.0) or ([TerrassenTuer1] eq "open" and [DOIFTempDurchschnitt:state:d] > 15.0))
(set EchoInputTerrasse on)
DOELSEIF
([Haus] eq "absent" and [Markise] eq "0")
(set EchoInputTerrasse off)
DOELSEIF
([?Haus] eq "present" and [20:00-08:00] and [TerrassenTuer1] eq "closed" and [?Markise] eq "0")
(set EchoInputTerrasse off)
DOIFDEV ^global$|^Haus$|^TerrassenTuer1$|^DOIFTempDurchschnitt$|^Markise$
FUUID 5d5fdf8a-f33f-84b4-7e96-81508a68680e16d8
MODEL FHEM
NAME DOIFEchoInputTerrasse
NR 190
NTFY_ORDER 50-DOIFEchoInputTerrasse
STATE initialized
TYPE DOIF
VERSION 22398 2020-07-14 09:32:05
READINGS:
2020-11-10 10:24:16 cmd 0
2020-11-10 10:24:16 mode enabled
2020-11-10 10:24:16 state initialized
2020-11-10 10:24:16 timer_01_c01 11.11.2020 08:00:00
2020-11-10 10:24:16 timer_02_c01 10.11.2020 20:00:00
2020-11-10 10:24:16 timer_03_c03 10.11.2020 20:00:00
2020-11-10 10:24:16 timer_04_c03 11.11.2020 08:00:00
Regex:
accu:
cond:
DOIFTempDurchschnitt:
0:
state ^DOIFTempDurchschnitt$:^state:
Haus:
0:
&STATE ^Haus$
1:
&STATE ^Haus$
Markise:
1:
&STATE ^Markise$
TerrassenTuer1:
0:
&STATE ^TerrassenTuer1$
2:
&STATE ^TerrassenTuer1$
attr:
cmdState:
wait:
waitdel:
condition:
0 (::InternalDoIf($hash,'Haus','STATE') eq "present" and ::DOIF_time($hash,0,1,$wday,$hms) and ::ReadingValDoIf($hash,'DOIFTempDurchschnitt','state','','d') > 15.0) or (::InternalDoIf($hash,'TerrassenTuer1','STATE') eq "open" and ::ReadingValDoIf($hash,'DOIFTempDurchschnitt','state','','d') > 15.0)
1 ::InternalDoIf($hash,'Haus','STATE') eq "absent" and ::InternalDoIf($hash,'Markise','STATE') eq "0"
2 ::InternalDoIf($hash,'Haus','STATE') eq "present" and ::DOIF_time($hash,2,3,$wday,$hms) and ::InternalDoIf($hash,'TerrassenTuer1','STATE') eq "closed" and ::InternalDoIf($hash,'Markise','STATE') eq "0"
days:
do:
0:
0 set EchoInputTerrasse on
1:
0 set EchoInputTerrasse off
2:
0 set EchoInputTerrasse off
3:
helper:
DEVFILTER ^global$|^Haus$|^TerrassenTuer1$|^DOIFTempDurchschnitt$|^Markise$
NOTIFYDEV global|Haus|TerrassenTuer1|DOIFTempDurchschnitt|Markise
globalinit 1
last_timer 4
sleeptimer -1
triggerDev
internals:
all Haus:STATE TerrassenTuer1:STATE Markise:STATE
interval:
0 -1
1 0
2 -1
3 2
intervalfunc:
localtime:
0 1605078000
1 1605034800
2 1605034800
3 1605078000
readings:
all DOIFTempDurchschnitt:state
realtime:
0 08:00:00
1 20:00:00
2 20:00:00
3 08:00:00
time:
0 08:00:00
1 20:00:00
2 20:00:00
3 08:00:00
timeCond:
0 0
1 0
2 2
3 2
timer:
0 0
1 0
2 0
3 0
timers:
0 0 1
2 2 3
triggertime:
1605034800:
localtime 1605034800
hash:
1605078000:
localtime 1605078000
hash:
uiState:
uiTable:
Attributes:
do always
room DOIF
Die Temperatur soll er sich von diesem DOIF ziehen:
Internals:
DEF ##
FUUID 5dbc7bc3-f33f-84b4-0d60-d122a76b25983825
MODEL FHEM
NAME DOIFTempDurschnitt
NOTIFYDEV TempAussenCarport,global,TempAussenEingang
NR 212
NTFY_ORDER 50-DOIFTempDurschnitt
STATE 5.7
TYPE DOIF
VERSION 22398 2020-07-14 09:32:05
READINGS:
2019-11-01 19:38:59 cmd 0
2019-11-01 19:38:59 mode enabled
2020-11-10 10:28:14 state 5.7
Regex:
STATE:
TempAussenCarport:
STATE:
temperature ^TempAussenCarport$:^temperature:
TempAussenEingang:
STATE:
temperature ^TempAussenEingang$:^temperature:
accu:
condition:
do:
0:
helper:
DEVFILTER ^global$|^TempAussenCarport$|^TempAussenEingang$
NOTIFYDEV global|TempAussenCarport|TempAussenEingang
event temperature: 6,T: 6 H: 87
globalinit 1
last_timer 0
sleeptimer -1
triggerDev TempAussenEingang
DOIF_eventa:
5.7
DOIF_eventas:
state: 5.7
triggerEvents:
temperature: 6
T: 6 H: 87
triggerEventsState:
temperature: 6
state: T: 6 H: 87
perlblock:
uiState:
uiTable:
Attributes:
event-min-interval 300
room DOIF,Wetter
state {([TempAussenCarport:temperature]+[TempAussenEingang:temperature])/2}
Offenbar war DOIFTempDurchschnitt:state zu diesem Zeitpunkt noch nicht belegt.
Hmm... Das macht er aber auch immer wenn ich "Set DOIFEchoInputTerrasse checkall" in diesem DOIF durchführe... und der DOIFTempDurchschnitt:state ist jedenfalls da... :-\
Zitat von: misux am 10 November 2020, 11:12:00
Hmm... Das macht er aber auch immer wenn ich "Set DOIFEchoInputTerrasse checkall" in diesem DOIF durchführe... und der DOIFTempDurchschnitt:state ist jedenfalls da... :-\
Da schau dir genau den Namen deines Devices an ;)
Oh mann... ::) Alterfalter..
Sorry... Danke!