AttrVal - Uninitialized value $d in hash element at /opt/fhem/fhem.pl line 4035

Begonnen von Markus M., 13 April 2017, 14:54:21

Vorheriges Thema - Nächstes Thema

Markus M.

Es geht um AttrVal, $d ist hier der Device-Name:
return $attr{$d}{$n} if(defined($attr{$d}) && defined($attr{$d}{$n}));

Hier scheint sich wohl kürzlich etwas geändert zu haben?
Ich bekomme den Fehler in verschiedenen Modulen, teilweise beim Start, diesen hier ständig bei einer Abfrage.
Aufmerksam bin ich darauf wegen einem Bugreport für Netatmo geworden.

Ich werde allerdings nicht ganz schlau daraus warum das nun plötzlich passiert.
Hab ich irgendeine Änderung verpasst?
Frage ich zu einem unpassenden Zeitpunkt oder mit nicht initialisierten Variablen an und es ist an dieser Stelle nur Errorhandling weggefallen?
Ich bin ratlos...

Gruss, Markus

HTTP Calls:
2017.04.13 13:42:50 1: PERL WARNING: Use of uninitialized value $d in hash element at /opt/fhem/fhem.pl line 4035.
2017.04.13 13:42:50 1: stacktrace:
2017.04.13 13:42:50 1:     main::__ANON__                      called by /opt/fhem/fhem.pl (4035)
2017.04.13 13:42:50 1:     main::AttrVal                       called by /opt/fhem/FHEM/HttpUtils.pm (343)
2017.04.13 13:42:50 1:     main::HttpUtils_Connect2            called by /opt/fhem/FHEM/HttpUtils.pm (325)
2017.04.13 13:42:50 1:     main::HttpUtils_Connect             called by /opt/fhem/FHEM/HttpUtils.pm (715)
2017.04.13 13:42:50 1:     main::HttpUtils_BlockingGet         called by /opt/fhem/FHEM/32_withings.pm (995)
2017.04.13 13:42:50 1:     main::withings_getDeviceDetail      called by /opt/fhem/FHEM/32_withings.pm (1844)
2017.04.13 13:42:50 1:     main::withings_parseMeasurements    called by /opt/fhem/FHEM/32_withings.pm (3093)
2017.04.13 13:42:50 1:     main::withings_Dispatch             called by /opt/fhem/FHEM/HttpUtils.pm (438)
2017.04.13 13:42:50 1:     main::__ANON__                      called by /opt/fhem/fhem.pl (682)
2017.04.13 13:44:00 1: PERL WARNING: Use of uninitialized value $d in hash element at /opt/fhem/fhem.pl line 4035.
2017.04.13 13:44:00 1: stacktrace:
2017.04.13 13:44:00 1:     main::__ANON__                      called by /opt/fhem/fhem.pl (4035)
2017.04.13 13:44:00 1:     main::AttrVal                       called by /opt/fhem/FHEM/HttpUtils.pm (343)
2017.04.13 13:44:00 1:     main::HttpUtils_Connect2            called by /opt/fhem/FHEM/HttpUtils.pm (325)
2017.04.13 13:44:00 1:     main::HttpUtils_Connect             called by /opt/fhem/FHEM/HttpUtils.pm (715)
2017.04.13 13:44:00 1:     main::HttpUtils_BlockingGet         called by /opt/fhem/FHEM/32_withings.pm (1396)
2017.04.13 13:44:00 1:     main::withings_getUserDetail        called by /opt/fhem/FHEM/32_withings.pm (1763)
2017.04.13 13:44:00 1:     main::withings_parseMeasureGroups   called by /opt/fhem/FHEM/32_withings.pm (3093)
2017.04.13 13:44:00 1:     main::withings_Dispatch             called by /opt/fhem/FHEM/HttpUtils.pm (438)
2017.04.13 13:44:00 1:     main::__ANON__                      called by /opt/fhem/fhem.pl (682)



Startup:
2017.04.13 09:14:57 1: PERL WARNING: Use of uninitialized value $d in hash element at /opt/fhem/fhem.pl line 4035, <$fh> line 2036.
2017.04.13 09:14:57 1: stacktrace:
2017.04.13 09:14:57 1:     main::__ANON__                      called by /opt/fhem/fhem.pl (4035)
2017.04.13 09:14:57 1:     main::AttrVal                       called by /opt/fhem/FHEM/98_livetracking.pm (49)
2017.04.13 09:14:57 1:     main::livetracking_Initialize       called by /opt/fhem/fhem.pl (2419)
2017.04.13 09:14:57 1:     (eval)                              called by /opt/fhem/fhem.pl (2402)
2017.04.13 09:14:57 1:     main::CommandReload                 called by /opt/fhem/fhem.pl (1817)
2017.04.13 09:14:57 1:     main::LoadModule                    called by /opt/fhem/fhem.pl (1874)
2017.04.13 09:14:57 1:     main::CommandDefine                 called by /opt/fhem/fhem.pl (1149)
2017.04.13 09:14:57 1:     main::AnalyzeCommand                called by /opt/fhem/fhem.pl (1018)
2017.04.13 09:14:57 1:     main::AnalyzeCommandChain           called by /opt/fhem/fhem.pl (1284)
2017.04.13 09:14:57 1:     main::CommandInclude                called by /opt/fhem/fhem.pl (527)

2017.04.13 09:15:06 1: PERL WARNING: Use of uninitialized value $d in hash element at /opt/fhem/fhem.pl line 4035.
2017.04.13 09:15:06 1: stacktrace:
2017.04.13 09:15:06 1:     main::__ANON__                      called by /opt/fhem/fhem.pl (4035)
2017.04.13 09:15:06 1:     main::AttrVal                       called by /opt/fhem/FHEM/HttpUtils.pm (343)
2017.04.13 09:15:06 1:     main::HttpUtils_Connect2            called by /opt/fhem/FHEM/HttpUtils.pm (325)
2017.04.13 09:15:06 1:     main::HttpUtils_Connect             called by /opt/fhem/FHEM/HttpUtils.pm (715)
2017.04.13 09:15:06 1:     main::HttpUtils_BlockingGet         called by /opt/fhem/FHEM/38_netatmo.pm (656)
2017.04.13 09:15:06 1:     main::netatmo_getToken              called by /opt/fhem/FHEM/38_netatmo.pm (865)
2017.04.13 09:15:06 1:     main::netatmo_connect               called by /opt/fhem/FHEM/38_netatmo.pm (469)
2017.04.13 09:15:06 1:     main::netatmo_Notify                called by /opt/fhem/fhem.pl (3379)
2017.04.13 09:15:06 1:     main::CallFn                        called by /opt/fhem/fhem.pl (3300)
2017.04.13 09:15:06 1:     main::DoTrigger                     called by /opt/fhem/fhem.pl (584)

Aktuell weder Smarthome noch FHEM vorhanden

betateilchen

Da wird offenbar versucht, zu einem Zeitpunkt auf ein device zuzugreifen, zu dem das device noch gar nicht existiert und $d deshalb nicht initialisiert ist.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Markus M.

Zitat von: betateilchen am 13 April 2017, 15:38:25
Da wird offenbar versucht, zu einem Zeitpunkt auf ein device zuzugreifen, zu dem das device noch gar nicht existiert und $d deshalb nicht initialisiert ist.

Beim Start ist das möglich, bei Withings eigentlich nicht.
Das Problem ist, dass das erst seit einigen Tagen so ist.
Irgendwas muss sich also geändert haben.
Aktuell weder Smarthome noch FHEM vorhanden

Markus M.

Beim Withings Start kommt der Fehler aus HttpUtils:

      my $sslVersion = AttrVal($hash->{NAME}, "sslVersion",
                       AttrVal("global", "sslVersion", "SSLv23:!SSLv3:!SSLv2"));


Aktuell weder Smarthome noch FHEM vorhanden

Markus M.

Aktuell weder Smarthome noch FHEM vorhanden