Hallo Leute,
jetzt, wo tagsüber die Aussentemperatur größer ist als die Temperatur in unserem Gartenhaus möchte ich gerne mein bestehendes DOIF zum versenden einer Nachricht erweitern, sodass ich in der Lage bin die Fenster des Gartenhauses im richtigem moment zu schliessen.
Leider kommt es zu einem warning innerhalb des Devices condition c02: Use of uninitialized value $seconds in numeric gt (>) at ./FHEM/98_DOIF.pm line 4137.
Ich verstehe nicht warum...
Funktion ist auch noch nicht gegeben - aus block02 heraus habe ich noch keine Nachricht bekommen.
Hat jemand eine Idee was hier schief läuft..?
Internals:
DEF subs {
sub pushGardenhouse {
my ($message,$status)=@_;
fhem ("msg push \@Eichenheim $message");
#fhem_set ("WPhistory add $status");
#fhem_set ("WPhistory add $message");
set_State "$status";
}
}
{ if ([06:00-22:00] and [$SELF:TempLow] and ([$SELF:state] ne "critical Alarm GH sent" )) {
set_Exec ("Timer",600,'pushGardenhouse ("Die Temperatur im Gartenhaus ist gerade unter 5°C gefallen","critical Alarm GH sent")');
}
{ if (not [$SELF:TempLow] and ([$SELF:state] eq "critical Alarm GH sent" )) {
set_State "armed";
}
}
}
{ if ([$SELF:TempFalling] and ([$SELF:state] ne "close Windows GH sent" )) {set_Exec ('pushGardenhouse ("Die Temperatur im Gartenhaus ist gerade unter die Aussentemperatur gefallen - Fenster schliessen!","close Windows GH sent"');}
}
FUUID 5c447100-f33f-68f5-e57f-dd18d47767476a17
MODEL Perl
NAME GHmsgAdjust
NOTIFYDEV global,WH2600,GHmsgAdjust
NR 161
NTFY_ORDER 50-GHmsgAdjust
STATE initialized
TYPE DOIF
VERSION 25720 2022-02-20 21:38:26
DOIF_Readings:
TempFalling (::ReadingValDoIf($hash,'WH2600','indoorTemperature','','d') > ::ReadingValDoIf($hash,'WH2600','temperature','','d'))
TempLow (::ReadingValDoIf($hash,'WH2600','indoorTemperature','','d') < 6)
READINGS:
2022-03-18 10:09:36 TempFalling 1
2022-02-04 14:03:02 TempLow
2022-03-18 10:09:15 block_01 executed
2022-03-18 10:09:36 block_02 executed
2022-03-18 10:09:36 e_GHmsgAdjust_TempFalling 1
2022-03-18 10:06:20 mode enabled
2022-03-18 10:06:11 state initialized
2022-03-18 10:06:11 timer_01_c01 19.03.2022 06:00:00
2022-03-18 10:06:11 timer_02_c01 18.03.2022 22:00:00
2022-03-18 10:09:36 warning condition c02: Use of uninitialized value $seconds in numeric gt (>) at ./FHEM/98_DOIF.pm line 4137.
Regex:
DOIF_Readings:
WH2600:
TempFalling:
indoorTemperature ^WH2600$:^indoorTemperature:
temperature ^WH2600$:^temperature:
TempLow:
indoorTemperature ^WH2600$:^indoorTemperature:
accu:
collect:
cond:
GHmsgAdjust:
0:
TempLow ^GHmsgAdjust$:^TempLow:
state ^GHmsgAdjust$:^state:
1:
TempFalling ^GHmsgAdjust$:^TempFalling:
state ^GHmsgAdjust$:^state:
condition:
0 if (::DOIF_time($hash,0,1,$wday,$hms) and ::ReadingValDoIf($hash,'GHmsgAdjust','TempLow') and (::ReadingValDoIf($hash,'GHmsgAdjust','state') ne "critical Alarm GH sent" )) {
set_Exec ("Timer",600,'pushGardenhouse ("Die Temperatur im Gartenhaus ist gerade unter 5°C gefallen","critical Alarm GH sent")');
}
{ if (not ::ReadingValDoIf($hash,'GHmsgAdjust','TempLow') and (::ReadingValDoIf($hash,'GHmsgAdjust','state') eq "critical Alarm GH sent" )) {
set_State "armed";
}
}
1 if (::ReadingValDoIf($hash,'GHmsgAdjust','TempFalling') and (::ReadingValDoIf($hash,'GHmsgAdjust','state') ne "close Windows GH sent" )) {set_Exec ('pushGardenhouse ("Die Temperatur im Gartenhaus ist gerade unter die Aussentemperatur gefallen - Fenster schliessen!","close Windows GH sent"');}
days:
helper:
NOTIFYDEV global,WH2600,GHmsgAdjust
event TempFalling: 1
globalinit 1
last_timer 2
sleeptimer -1
triggerDev GHmsgAdjust
triggerEvents:
TempFalling: 1
e_GHmsgAdjust_TempFalling: 1
triggerEventsState:
TempFalling: 1
internals:
interval:
0 -1
1 0
intervalfunc:
localtime:
0 1647666000
1 1647637200
perlblock:
0 block_01
1 block_02
ptimer:
pushGardenhouse ("Die Temperatur im Gartenhaus ist gerade unter die Aussentemperatur gefallen - Fenster schliessen!","close Windows GH sent":
count 0
name pushGardenhouse ("Die Temperatur im Gartenhaus ist gerade unter die Aussentemperatur gefallen - Fenster schliessen!","close Windows GH sent"
sec
subname
time 1647594576.46944
hash:
readings:
all GHmsgAdjust:TempLow GHmsgAdjust:state GHmsgAdjust:TempFalling
realtime:
0 06:00:00
1 22:00:00
time:
0 06:00:00
1 22:00:00
timeCond:
0 0
1 0
timer:
0 0
1 0
timers:
0 0 1
trigger:
triggertime:
1647637200:
localtime 1647637200
hash:
1647666000:
localtime 1647666000
hash:
uiState:
uiTable:
Attributes:
DOIF_Readings TempLow:([WH2600:indoorTemperature:d] < 6), TempFalling:([WH2600:indoorTemperature:d] > [WH2600:temperature:d])
DbLogExclude .*
comment [WH2600:indoorTemperature:d] < [WH2600:temperature:d]
event-on-change-reading .*
group msg-adjust
room 13-Gartenhaus,97-Helper
Zitat{set_Exec ('pushGardenhouse ("Die Temperatur im Gartenhaus ist gerade unter die Aussentemperatur gefallen - Fenster schliessen!","close Windows GH sent"');}
set_Exec hat andere Parameter, siehe dein erster set_Exec-Aufruf
Du hast natürlich recht Damian...
Danke, ich dachte ich komme ohne Timer aus ;)