PERL WARNING: Use of uninitialized value .. ./FHEM/01_FHEMWEB.pm line 3269

Begonnen von Rampler, 04 September 2019, 08:43:56

Vorheriges Thema - Nächstes Thema

Rampler

Hallo zusammen,

erhalte folgende Warning:
2019.09.04 08:41:54 1: PERL WARNING: Use of uninitialized value $txt in concatenation (.) or string at ./FHEM/01_FHEMWEB.pm line 3269.
2019.09.04 08:41:54 1: stacktrace:
2019.09.04 08:41:54 1:     main::__ANON__                      called by ./FHEM/01_FHEMWEB.pm (3269)
2019.09.04 08:41:54 1:     main::FW_devState                   called by ./FHEM/01_FHEMWEB.pm (2983)
2019.09.04 08:41:54 1:     main::FW_roomStatesForInform        called by ./FHEM/01_FHEMWEB.pm (665)
2019.09.04 08:41:54 1:     main::FW_initInform                 called by ./FHEM/01_FHEMWEB.pm (898)
2019.09.04 08:41:54 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (579)
2019.09.04 08:41:54 1:     main::FW_Read                       called by fhem.pl (3752)
2019.09.04 08:41:54 1:     main::CallFn                        called by fhem.pl (750)


Habe bereits heute einen update gemacht, trotzdem kommt die Warning noch.
Vermutlich habe ich wieder was falsch gemacht ..

Fehler ist reproduzierbar, kommt nachdem in einem DOIF eine Mail versandt wird.
VG Klaus
3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

Rampler

.. und hier noch das DOIF, was die Warnung produziert (im cmd1)

defmod Stromausfall DOIF ## \
## Unterspannung muss sychron mit dem Wert in den ESPEASY Rule sein\
##\
([UPS:Power_Outage] eq "0")\
##( setreading UPS Power_Outage_Endtime {(strftime("%Y-%m-%d %H:%M:%S",localtime())) })\
(({DebianMail('vvvv.nnn@Online.de', 'FHEM Stromausfall', 'Stromausfall Beginn: '.ReadingsVal('UPS','Power_Outage_Starttime','1').' - Stromausfall Ende: '.ReadingsVal('UPS','Power_Outage_Endtime','1')) })) \
##(({DebianMail('vvvv.nnnn@gmx.net', 'FHEM Stromausfall', 'Stromausfall Beginn: '.ReadingsVal('UPS','Power_Outage_Starttime',1).' - Stromausfall Ende: '.ReadingsVal('UPS','Power_Outage_Endtime',1)) })) \
DOELSEIF\
([UPS:Power_Outage] eq "1")\
({Log 1, "UPS: Power Outage detected"}) \
( setreading UPS Power_Outage_Starttime {(strftime("%Y-%m-%d %H:%M:%S",localtime())) })\
DOELSEIF  \
([UPS:Power_Outage] eq "1" and [UPS:Akku_Volt] < 11)\
({Log 1, "UPS: System will be stopped now"}) \
({system("./shutdown_rpi &")})\
DOELSEIF  \
([UPS:Power_Outage] eq "0" and [UPS:Akku_Volt] < 13) \
(({DebianMail('vvv.nnn@Online.de', 'FHEM UPS Problem', 'Spannung unter 13V (Netzteil defekt?)')}))\

attr Stromausfall cmdState ,,Power Back | ,Power Outage | ,Power Outage Shutdown | Power Problem
attr Stromausfall icon helper_doif
attr Stromausfall room FHEM
attr Stromausfall verbose 0
attr Stromausfall wait 0:0:0:7200

setstate Stromausfall 2019-09-04 08:48:27 cmd 1
setstate Stromausfall 2019-09-04 08:48:27 cmd_event set_cmd_1
setstate Stromausfall 2019-09-04 08:48:27 cmd_nr 1
setstate Stromausfall 2019-09-04 08:48:19 mode enabled
setstate Stromausfall 2019-09-04 08:48:27 state
3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

rudolfkoenig

Ich kann das Problem reproduzieren, wenn ich STATE einer Instanz auf Leerstring setze.
Diesen Fall habe ich jetzt gefixt.
Ob das auch bei dir der Fall ist, weiss ich nicht, DOIF ist mir zu kompliziert.

Rampler

Super, der Hinweis war super !!

Habe einfach cmdState angepasst, und schon ist die Warning verschwunden.

von:
attr Stromausfall cmdState ,,Power Back | ,Power Outage | ,Power Outage Shutdown | Power Problem
nach:
attr Stromausfall cmdState PowerBack,Power Back,Power Back | Power Outage,Power Outage | Power Outage Shutdown,Power Outage Shutdown | Power Problem

und schon funktionierts...

DANKE
3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!