Hallo Zusammen,
ich habe seit einem FHEM Update auf die aktuelle Version folgende Warnung im Log:
2020.04.30 20:56:31 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/00_MQTT.pm line 505.
2020.04.30 20:56:31 1: stacktrace:
2020.04.30 20:56:31 1: main::__ANON__ called by ./FHEM/00_MQTT.pm (505)
2020.04.30 20:56:31 1: MQTT::Timer called by ./FHEM/00_MQTT.pm (487)
2020.04.30 20:56:31 1: MQTT::Init called by FHEM/DevIo.pm (253)
2020.04.30 20:56:31 1: main::__ANON__ called by FHEM/DevIo.pm (490)
2020.04.30 20:56:31 1: main::DevIo_OpenDev called by ./FHEM/00_MQTT.pm (447)
2020.04.30 20:56:31 1: MQTT::Start called by ./FHEM/00_MQTT.pm (395)
2020.04.30 20:56:31 1: MQTT::Notify called by fhem.pl (3777)
2020.04.30 20:56:31 1: main::CallFn called by fhem.pl (3697)
2020.04.30 20:56:31 1: main::DoTrigger called by fhem.pl (1503)
2020.04.30 20:56:31 1: main::CommandRereadCfg called by fhem.pl (1243)
2020.04.30 20:56:31 1: main::AnalyzeCommand called by fhem.pl (1096)
2020.04.30 20:56:31 1: main::AnalyzeCommandChain called by ./FHEM/01_FHEMWEB.pm (2711)
2020.04.30 20:56:31 1: main::FW_fC called by ./FHEM/01_FHEMWEB.pm (2496)
2020.04.30 20:56:31 1: main::FW_style called by ./FHEM/01_FHEMWEB.pm (1157)
2020.04.30 20:56:31 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (590)
2020.04.30 20:56:31 1: main::FW_Read called by fhem.pl (3777)
2020.04.30 20:56:31 1: main::CallFn called by fhem.pl (753)
Ein verbose 5 liefert folgendes in dem Bereich
2020.04.30 20:51:41 3: Opening mqtt_server2 device 192.168.1.1:1883
2020.04.30 20:51:41 5: MQTT mqtt_server2 message sent: Connect/at-most-once MQIsdp/3/NetMQTTpm11060
2020.04.30 20:51:41 5: SW: 101c00064d51497364700302003c000e4e65744d515454706d3131303630
2020.04.30 20:51:41 5: Starting notify loop for mqtt_server2, 1 event(s), first is connection: connecting
2020.04.30 20:51:41 5: createNotifyHash
2020.04.30 20:51:41 5: End notify loop for mqtt_server2
2020.04.30 20:51:41 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/00_MQTT.pm line 505.
2020.04.30 20:51:41 1: stacktrace:
2020.04.30 20:51:41 1: main::__ANON__ called by ./FHEM/00_MQTT.pm (505)
2020.04.30 20:51:41 1: MQTT::Timer called by ./FHEM/00_MQTT.pm (487)
2020.04.30 20:51:41 1: MQTT::Init called by FHEM/DevIo.pm (253)
2020.04.30 20:51:41 1: main::__ANON__ called by FHEM/DevIo.pm (490)
2020.04.30 20:51:41 1: main::DevIo_OpenDev called by ./FHEM/00_MQTT.pm (447)
2020.04.30 20:51:41 1: MQTT::Start called by ./FHEM/00_MQTT.pm (395)
2020.04.30 20:51:41 1: MQTT::Notify called by fhem.pl (3777)
2020.04.30 20:51:41 1: main::CallFn called by fhem.pl (3697)
2020.04.30 20:51:41 1: main::DoTrigger called by fhem.pl (658)
2020.04.30 20:51:41 5: MQTT mqtt_server2 message sent: PingReq/at-most-once
2020.04.30 20:51:41 5: SW: c000
2020.04.30 20:51:41 3: mqtt_server2 device opened
2020.04.30 20:51:41 5: Starting notify loop for mqtt_server2, 1 event(s), first is CONNECTED
2020.04.30 20:51:41 5: End notify loop for mqtt_server2
2020.04.30 20:51:41 5: End notify loop for global
2020.04.30 20:51:41 0: Featurelevel: 6
2020.04.30 20:51:41 0: Server started with 416 defined entities (fhem.pl:21762/2020-04-23 perl:5.028001 os:linux user:fhem pid:11060)
Kann mir jemand sagen ob das an mir liegt ? Mein log war eigentlich immer clean.
...da sich bisher sonst keiner gemeldet hat:
Das ist nur ein Warning. Nicht schön, aber auch nicht dramatisch. Eventuell kannst du mal testen, ob alles mit folgender Änderung der Zeile ohne Warning funktioniert (eq 1 weg):
if ( $hash->{".reconnectmark"} ) {
Ich habe den gleichen Fehler. Das scheint am Code zu liegen.
Die Funktion "Timer" wird aufgerufen, bevor die Variable "$hash->{".reconnectmark"}" gesetzt ist. Erst nach dem Aufruf der Subroutine "Timer" wird das gemacht.
Weil trotzdem diese Var verwendet wird, ohne einen Check auf Existence zu machen, kommt der Fehler.
Besser wäre in 00_MQTT.pm, ln 505:
if( $hash->{".reconnectmark"} && $hash->{".reconnectmark"} eq 1) {
Damit liese sich der Eintrag verhindern. Frage ist nur, wie kriege ich den Fix in Repository? Da dürfen wieder nur bestimmte Leute schreiben.
Eigentlich sollte der Maintainer des Moduls (siehe MAINTAINER.txt (https://fhem.de/MAINTAINER.txt)) diesen Forumsabschnitt verfolgen.
Vermutlich braucht er einen Schubs.
Sorry, wenig Zeit.
Schaue mir heute/morgen an.
EDIT: und danke für den Schubs :)
done