FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: aaameyer am 21 Mai 2020, 13:19:48

Titel: Use of uninitialized value in string eq at ./FHEM/00_MQTT.pm line 505
Beitrag von: aaameyer am 21 Mai 2020, 13:19:48
Hallo @hexenmeister,
seit einigen Wochen bekomme ich im Logfile folgende Warnung:


2020.05.21 11:27:32 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/00_MQTT.pm line 505.
2020.05.21 11:27:32 1: stacktrace:
2020.05.21 11:27:32 1:     main::__ANON__                      called by ./FHEM/00_MQTT.pm (505)
2020.05.21 11:27:32 1:     MQTT::Timer                         called by ./FHEM/00_MQTT.pm (487)
2020.05.21 11:27:32 1:     MQTT::Init                          called by FHEM/DevIo.pm (253)
2020.05.21 11:27:32 1:     main::__ANON__                      called by FHEM/DevIo.pm (490)
2020.05.21 11:27:32 1:     main::DevIo_OpenDev                 called by ./FHEM/00_MQTT.pm (447)
2020.05.21 11:27:32 1:     MQTT::Start                         called by ./FHEM/00_MQTT.pm (395)
2020.05.21 11:27:32 1:     MQTT::Notify                        called by fhem.pl (3784)
2020.05.21 11:27:32 1:     main::CallFn                        called by fhem.pl (3704)
2020.05.21 11:27:32 1:     main::DoTrigger                     called by fhem.pl (664)


Da mich die Warnung etwas stört habe ich mal versucht das Problem zu beheben und konnte angefügten Patch erfolgreich auf meiner FHEM Installation testen.

Bisher habe ich noch nicht zu FHEM beigetragen, daher mein Erster Versuch nach folgender Anleitung: https://wiki.fhem.de/wiki/How_to_write_a_patch (https://wiki.fhem.de/wiki/How_to_write_a_patch) mit der Bitte meinen Patch zu prüfen und dem Master-Branch hinzuzufügen.
Grüße
Axel
Titel: Antw:Use of uninitialized value in string eq at ./FHEM/00_MQTT.pm line 505
Beitrag von: amenomade am 22 Mai 2020, 02:24:07
Meiner Meinung nach ist dein Patch falsch.

if(defined $hash->{".reconnectmark"} eq 1)testet nicht, ob $hash->{".reconnectmark"} ist gleich 1,
sondern ob $hash->{".reconnectmark"} definiert ist.

Das heisst, deine if Bedingung ist auch wahr, wenn $hash->{".reconnectmark"} = 0, was im Modul eine wichtige Bedeutung hat.

Titel: Antw:Use of uninitialized value in string eq at ./FHEM/00_MQTT.pm line 505
Beitrag von: Beta-User am 22 Mai 2020, 06:34:12
siehe auch hier: https://forum.fhem.de/index.php/topic,110741.0.html mit korrekter Lösung durch wolfg hier: https://forum.fhem.de/index.php/topic,110741.msg1056251.html#msg1056251
Titel: Antw:Use of uninitialized value in string eq at ./FHEM/00_MQTT.pm line 505
Beitrag von: hexenmeister am 22 Mai 2020, 19:24:31
done