Log wird mit PERL Warning voll geschrieben

Begonnen von hosimpson, 05 Februar 2017, 20:51:00

Vorheriges Thema - Nächstes Thema

hosimpson

Hallo miteinander,

nach der Definition von zwei Chromecast-Devices bekomme ich im LOG alle paar Sekunden eine Warnung:
2017.02.05 20:46:04 1: PERL WARNING: Use of uninitialized value $wert in string eq at (eval 5911) line 1.
2017.02.05 20:46:04 1: PERL WARNING: Use of uninitialized value $wert in string eq at (eval 5912) line 1.
2017.02.05 20:46:04 1: PERL WARNING: Use of uninitialized value $wert in string eq at (eval 5913) line 1.
2017.02.05 20:46:09 1: PERL WARNING: Use of uninitialized value $wert in string eq at (eval 5914) line 1.
2017.02.05 20:46:14 1: PERL WARNING: Use of uninitialized value $wert in string eq at (eval 5917) line 1.
2017.02.05 20:46:14 1: PERL WARNING: Use of uninitialized value $wert in string eq at (eval 5918) line 1.
2017.02.05 20:46:20 1: PERL WARNING: Use of uninitialized value $wert in string eq at (eval 5920) line 1.
2017.02.05 20:46:20 1: PERL WARNING: Use of uninitialized value $wert in string eq at (eval 5921) line 1.
2017.02.05 20:46:22 1: PERL WARNING: Use of uninitialized value $wert in string eq at (eval 5922) line 1.
2017.02.05 20:46:26 1: PERL WARNING: Use of uninitialized value $wert in string eq at (eval 5925) line 1.
2017.02.05 20:46:29 1: PERL WARNING: Use of uninitialized value $wert in string eq at (eval 5926) line 1.
2017.02.05 20:46:29 1: PERL WARNING: Use of uninitialized value $wert in string eq at (eval 5927) line 1.
2017.02.05 20:46:32 1: PERL WARNING: Use of uninitialized value $wert in string eq at (eval 5928) line 1.
2017.02.05 20:46:37 1: PERL WARNING: Use of uninitialized value $wert in string eq at (eval 5933) line 1.
2017.02.05 20:46:39 1: PERL WARNING: Use of uninitialized value $wert in string eq at (eval 5934) line 1.
2017.02.05 20:46:42 1: PERL WARNING: Use of uninitialized value $wert in string eq at (eval 5935) line 1.
2017.02.05 20:46:46 1: PERL WARNING: Use of uninitialized value $wert in string eq at (eval 5936) line 1.
2017.02.05 20:46:46 1: PERL WARNING: Use of uninitialized value $wert in string eq at (eval 5937) line 1.
2017.02.05 20:46:48 1: PERL WARNING: Use of uninitialized value $wert in string eq at (eval 5938) line 1.
2017.02.05 20:46:52 1: PERL WARNING: Use of uninitialized value $wert in string eq at (eval 5939) line 1.


Habe die beiden Devices bereits entfernt und den RasPi neu gestartet. Danach war Ruhe. Seit etwa 30 Minuten tritt das Problem wieder auf.

Edit:
Nach einem Shutdown+Restart ist das LOG erst einmal in Ordnung. Allerdings ist die Reaktionszeit (RasPi 3) deutlich verlangsamt.
Mal schauen, wann das mit den LOG-Einträgen wieder anfängt.

Wäre echt Dankbar für ein paar Hinweise!
Stefan

viegener

Als erstes würde es Dir wahrscheinlich helfen, wenn du das Attribut stacktrace auf 1 setzt und dann die Details aus dem log hier postest.

Hilfreich wäre wahrscheinlich auch, wenn Du mehr darüber schreibst, was sonst noch definiert ist. Die Chromecast devices sind es vermutlich nicht, sondern soetwas wie ein notify, DOIF oder ähnliches
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

hosimpson

Zitat von: viegener am 05 Februar 2017, 22:01:49
Als erstes würde es Dir wahrscheinlich helfen, wenn du das Attribut stacktrace auf 1 setzt und dann die Details aus dem log hier postest.

Hilfreich wäre wahrscheinlich auch, wenn Du mehr darüber schreibst, was sonst noch definiert ist. Die Chromecast devices sind es vermutlich nicht, sondern soetwas wie ein notify, DOIF oder ähnliches

Schon mal vielen Dank!

2017.02.06 19:03:36 1: PERL WARNING: Use of uninitialized value $wert in string eq at (eval 16302) line 1.
2017.02.06 19:03:36 1: stacktrace:
2017.02.06 19:03:36 1:     main::__ANON__                      called by (eval 16302) (1)
2017.02.06 19:03:36 1:     (eval)                              called by ./FHEM/33_readingsGroup.pm (343)
2017.02.06 19:03:36 1:     main::lookup2                       called by ./FHEM/33_readingsGroup.pm (526)
2017.02.06 19:03:36 1:     main::readingsGroup_value2html      called by ./FHEM/33_readingsGroup.pm (1063)
2017.02.06 19:03:36 1:     main::readingsGroup_2html           called by ./FHEM/33_readingsGroup.pm (1550)
2017.02.06 19:03:36 1:     main::readingsGroup_Get             called by fhem.pl (3304)
2017.02.06 19:03:36 1:     main::CallFn                        called by fhem.pl (1714)
2017.02.06 19:03:36 1:     main::CommandGet                    called by fhem.pl (1107)
2017.02.06 19:03:36 1:     main::AnalyzeCommand                called by fhem.pl (976)
2017.02.06 19:03:36 1:     main::AnalyzeCommandChain           called by ./FHEM/01_FHEMWEB.pm (2387)
2017.02.06 19:03:36 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (825)
2017.02.06 19:03:36 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (526)
2017.02.06 19:03:36 1:     main::FW_Read                       called by fhem.pl (3304)
2017.02.06 19:03:36 1:     main::CallFn                        called by fhem.pl (674)


Scheint, als ob ich das reproduzieren könnte mit dem Aufruf der Tablet UI.
Dort habe ich eine readingsGroup für den Batteriestatus und eine für Spritpreise.

Könnte das die richtige Spur sein, oder doch Richtung norify, DOIF suchen?
Oder die Anrufliste, oder...



viegener

Readingsgroup ist wohl die richtige Spur - fällt in meiner Auflistung unter "ähnliches"
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

hosimpson

#4
Es scheint tatsächlich die rg zum Batteriestatus zu sein.

Internals:
   DEF        .*:[bB]attery
   NAME       rgBatterieStatus
   NR         411
   NTFY_ORDER 50-rgBatterieStatus
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   Content:
     AMADCommBridge 1
     AbwesendCamAn 1
...
     test       1
     test2      1
   Content2:
   DEVICES:
...
     ARRAY(0x4367b20)
     ARRAY(0x436cba8)
     ARRAY(0x4353a58)
   Fhem:
     lastDefChange 1
     last_update 1486489082.19689
   Helper:
     DEF
     valueFormat { my ($wert) = $VALUE =~ m/(\d+)/; return $VALUE if ($wert eq ""); return "critical" if ($wert < 25); return "low" if ($wert < 50); return "ok" if ($wert > 50);}
     Positions:
       Flurschalter_13.battery 51:1
       Flurschalter_4.battery 53:1
       Flurschalter_7.battery 54:1
       HM_50D474.battery 56:1
       HueMotionFlur.battery 73:1
       LaCrosse_05.battery 85:1
       LaCrosse_1D.battery 86:1
       LaCrosse_20.battery 87:1
     Valueicon:
       battery.critical measure_battery_25@red
       battery.low measure_battery_50@yellow
       battery.ok measure_battery_100@green
     Values:
       formated:
         undef
         ARRAY(0x4652258)
       orig:
         undef
         ARRAY(0x45cb2a8)
       prefixsuffix:
         undef
         ARRAY(0x45c0aa0)
Attributes:
   room       entwicklung
   style      style="text-align:left"
   valueFormat { my ($wert) = $VALUE =~ m/(\d+)/; return $VALUE if ($wert eq ""); return "critical" if ($wert < 25); return "low" if ($wert < 50); return "ok" if ($wert > 50);}
   valueIcon  {'battery.ok' => 'measure_battery_100@green', 'battery.low' => 'measure_battery_50@yellow', 'battery.critical' => 'measure_battery_25@red'}


Da hier die Battery über alle Devices etc. eingelesen werden, wird es wohl schwer da was zu finden.
Werde wohl auf einzelne Abfragen für die relevanten, batteriebetriebenen Sensoren / Aktoren umstellen.

Es sei denn, es fällt jemandem mein Fehler im rg auf?

viegener

Klar, wenn $VALUE nicht auf den regexp matcht, dann ist $wert undefiniert - BINGO
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

hosimpson

Zitat von: viegener am 07 Februar 2017, 22:30:02
Klar, wenn $VALUE nicht auf den regexp matcht, dann ist $wert undefiniert - BINGO

Ich danke Dir für die richtigen Hinweise.
Jetzt habe ich etwas ähnliches noch mit dem Kalendermodul. Werde suchen und wenn ich nicht weiterkomme im Kalenderforum um Rat fragen.

Danke nochmal!
Stefan