HMinfo.pm Perl Warning

Begonnen von chriz, 18 Oktober 2014, 09:11:07

Vorheriges Thema - Nächstes Thema

chriz

Hallo Zusammen,

habe heute morgen ein msgStat im HMinfo durchgeführt - daraufhin erschienen die folgenden Perl-Warnings im Log:


2014.10.18 09:05:41 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/98_HMinfo.pm line 756.
2014.10.18 09:05:41 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/98_HMinfo.pm line 757.
2014.10.18 09:05:41 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/98_HMinfo.pm line 758.
2014.10.18 09:05:41 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/98_HMinfo.pm line 759.
2014.10.18 09:05:41 1: PERL WARNING: Use of uninitialized value in addition (+) at ./FHEM/98_HMinfo.pm line 762.
2014.10.18 09:05:41 1: PERL WARNING: Use of uninitialized value in addition (+) at ./FHEM/98_HMinfo.pm line 763.


Gibts da evtl. ein Fix für?

Danke und Grüße
Chris
FHEM auf Intel NUC D34010WYK Core i3, SSD, Ubuntu. HomeMatic mit HMLAN (Groundplane Antenne), Fritz DECT!200, FritzBox 7490, EnerGenie EG-PMS2-LAN, Yamaha RX-V475, Netatmo, Withings, Philips hue, Osram Lightify, Flukso Energy Meter, Harmony, RooWifi, Junkers ZSB 24-4 C Heizung via Heatronic HT-BUS

martinp876

sollte eigentlich nicht vorkommen - wird alles initialisiert, hoffe ich.

sende einmal
{my $h = $modules{CUL_HM}{stat}{r};;my @a=keys%{$h};;my $r;;foreach(@a){$r.="\n$_: ".(ref $h->{$_} eq ref {}?join(",",sort keys %{$h->{$_}{h}}):"empty")};;return $r }

und schicke das Ergebnis

chriz

Hier das Ergebnis

HMLAN1: 0,1,10,11,12,13,14,15,16,17,18,19,2,20,21,22,23,3,4,5,6,7,8,9
dummy: empty


Grüße
Chris
FHEM auf Intel NUC D34010WYK Core i3, SSD, Ubuntu. HomeMatic mit HMLAN (Groundplane Antenne), Fritz DECT!200, FritzBox 7490, EnerGenie EG-PMS2-LAN, Yamaha RX-V475, Netatmo, Withings, Philips hue, Osram Lightify, Flukso Energy Meter, Harmony, RooWifi, Junkers ZSB 24-4 C Heizung via Heatronic HT-BUS

martinp876

perfekt.
kommt zu diesem Zeitpunkt auch die Fehlermeldung? Da ist alles initialisiert

chriz

gerade nochmal msgStat aufgerufen - jetzt kommt keine Fehlermeldung mehr.

FHEM auf Intel NUC D34010WYK Core i3, SSD, Ubuntu. HomeMatic mit HMLAN (Groundplane Antenne), Fritz DECT!200, FritzBox 7490, EnerGenie EG-PMS2-LAN, Yamaha RX-V475, Netatmo, Withings, Philips hue, Osram Lightify, Flukso Energy Meter, Harmony, RooWifi, Junkers ZSB 24-4 C Heizung via Heatronic HT-BUS

Billy

#5
Hallo, hänge mich da mal dran.

bei mir kommt beim Aufruf von msgStat auch die vorgenannte Meldung.

2014.10.22 09:14:59 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/98_HMinfo.pm line 756.
2014.10.22 09:14:59 1: PERL WARNING: Use of uninitialized value in addition (+) at ./FHEM/98_HMinfo.pm line 762.


Mit Aufruf von
{my $h = $modules{CUL_HM}{stat}{r};;my @a=keys%{$h};;my $r;;foreach(@a){$r.="\n$_: ".(ref $h->{$_} eq ref {}?join(",",sort keys %{$h->{$_}{h}}):"empty")};;return $r }

kommt
StatCntRfresh:
HMLAN1: 0,1,10,11,12,13,14,15,16,17,18,19,2,20,21,22,23,3,4,5,6,7,8,9
dummy: empty


Fehlermeldung bleibt aber Aufruf von msgStat.

Lösung ?

Lösung war ein update der 98_HMinfo.pm
:)
Gruß Billy

FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

chriz

jep, hier kamen heute ebenfalls wieder folgende Meldungen

2014.10.23 14:14:38 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/98_HMinfo.pm line 757.
2014.10.23 14:14:38 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/98_HMinfo.pm line 757.
2014.10.23 14:14:38 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/98_HMinfo.pm line 757.
2014.10.23 14:14:38 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/98_HMinfo.pm line 758.
2014.10.23 14:14:38 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/98_HMinfo.pm line 759.
2014.10.23 14:14:38 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/98_HMinfo.pm line 760.

2014.10.23 14:14:38 1: PERL WARNING: Use of uninitialized value in addition (+) at ./FHEM/98_HMinfo.pm line 763.
2014.10.23 14:14:38 1: PERL WARNING: Use of uninitialized value in addition (+) at ./FHEM/98_HMinfo.pm line 764.


Grüße
Chris
FHEM auf Intel NUC D34010WYK Core i3, SSD, Ubuntu. HomeMatic mit HMLAN (Groundplane Antenne), Fritz DECT!200, FritzBox 7490, EnerGenie EG-PMS2-LAN, Yamaha RX-V475, Netatmo, Withings, Philips hue, Osram Lightify, Flukso Energy Meter, Harmony, RooWifi, Junkers ZSB 24-4 C Heizung via Heatronic HT-BUS

Amenophis86

Habe heute folgende Meldung gefunden:

Zitat2014.12.26 11:51:52 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/98_JsonList.pm line 249.

Weiterhin hat meine Freundin immer mal wieder den Jsonlist Fehler bei ihrer Iphone FHEM-Remote App. In welchem Zusammenhang das steht und wann genau
der Fehler in der App Auftritt kann ich nicht sagen. Habe auch keine Ahnung warum der o.g. Fehler im Logfile erschien. 3 Minuten vorher hat der HMLAN sich neu
im Lan angemeldet, da dies kurz für ihn ausgefallen war (Powerline sei Dank).
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

martinp876

das sollte eher von den Entwicklern des jsonlist korrigiert werden.
$str .= sprintf("%*s\"measured\": \"%s\"\n", $lev+12, " ", $r->{$c}{TIME});

sieht seltsam aus, da $r->{$c}{TIME} den fehler zu machen scheint, aber noch nicht einmal ausgegeben wird.

Sunny

Moin,

als erstes mal "Vielen Dank" für das Modul und die "Arbeit".  8)

Bin Heute im Logfile, auf folgendes:
2015.07.22 13:19:07 1: PERL WARNING: Use of uninitialized value $p in hash element at ./FHEM/98_HMinfo.pm line 134.
aufmerksam geworden..

Zeile 134 aus 98_HMinfo.pm:    $errFlt{$p}{x}=1; # add at least one reading

List HMinfo:Internals:
   CHANGED
   ERRactNames wz_hk2_Fenster
   I_HM_IOdevices CUL868:ok,: vccu;Initialized: CUL868;
   NAME       HMinfo
   NR         147
   STATE      updated:2015-07-22 14:06:50
   TYPE       HMinfo
   Version    01
   CHANGETIME:
   Helper:
     Dblog:
       I_rssiminlevel:
         Mydblog:
           TIME       1437563947.60875
           VALUE      59<:0 60>:2 80>:1 99>:0
   Readings:
     2015-07-13 01:32:30   C_sumDefined    entities:25,device:6,channel:21,virtual:0
     2015-07-18 08:32:14   I_actTotal      alive:4,dead:1,unkn:0,off:0
     2015-07-22 13:19:07   I_rssiMinLevel  59<:0 60>:2 80>:1 99>:0
     2015-07-13 01:32:30   I_sum_battery   ok:1,
     2015-07-13 01:32:30   I_sum_sabotageError off:1,
   Nb:
     cnt        0
Attributes:
   group      homematic
   room       Homematic,Übersicht
   sumERROR   battery:ok,sabotageError:off,powerError:ok,overload:off,overheat:off,reduced:off,motorErr:ok,error:none,uncertain:[no|yes],,smoke_detect:none,cover:closed
   sumStatus  battery,sabotageError,powerError,motor
   webCmd     update:protoEvents short:rssi:peerXref:configCheck:models


Hatte ein "update" über "webcmd" bei HMinfo ausgeführt.
Ein erneutes "update" führt aber zu keinem neuen Logfile Eintrag.
Erst ein Neustart und "update" führt wieder zu einem Eintrag.

1. Was für Daten benötigt Ihr noch von mir?
2. Tritt der Fehler nur bei mir auf?
3. Hat jemand eine Idee, wie ich die "PERL WARNING"  ( mit Eurer Hilfe ) beseitigen  kann?

Viele Grüße & besten Dank
Sunny

PS: Raspberry2 mit Linux Rpi2Addon 4.0.8-v7+ #805 SMP PREEMPT Thu Jul 16 18:46:20 BST 2015 armv7l

FHEM 6.0 (RPi's 1b-4,CeleronM,Odroid C1+)
1-Wire (DS18B20,DS2406) |miniCUL|miniCUL868WLAN|HM|IT(-1500,LR-3500) |FB6591,FB7490,FB7580|DECT200|Powerline546E|520E|openwrt
Anfänger: Linux,FHEM+Perl

martinp876

sumError hat ein leeres Element
uncertain:[no|yes],,smoke_detect:none,

2-mal komma.

Sunny

#11
Hallo martinp876,

vielen Dank für das schnelle finden meines Dummen Fehlers.  ::)
Habe jetzt "sumERROR" von dem zweiten Komma befreit.

Recht herzlichen Dank
Sunny
FHEM 6.0 (RPi's 1b-4,CeleronM,Odroid C1+)
1-Wire (DS18B20,DS2406) |miniCUL|miniCUL868WLAN|HM|IT(-1500,LR-3500) |FB6591,FB7490,FB7580|DECT200|Powerline546E|520E|openwrt
Anfänger: Linux,FHEM+Perl

Sunny

#12
Moin martinp876,

Sorry, habe da doch noch einmal eine Frage...
Habe auf meinem Test Fhem mal define HMinfo HMinfo eingegeben.
Dort wird automatisch sumERROR
battery:ok,sabotageError:off,powerError:ok,overload:off,overheat:off,reduced:off,motorErr:ok,error:none,uncertain:[no|yes],,smoke_detect:none,cover:closed
erstellt.

Kann es sein, das der "Fehler", durch "98_HMinfo.pm" Zeile 53
Zitat.",uncertain:[no|yes],"
entsteht ?
Bitte nicht mißverstehen, sind meine Anfänge mal in Perl zuschauen...  :-[

Schönen Tag & Viele Grüße
Sunny
FHEM 6.0 (RPi's 1b-4,CeleronM,Odroid C1+)
1-Wire (DS18B20,DS2406) |miniCUL|miniCUL868WLAN|HM|IT(-1500,LR-3500) |FB6591,FB7490,FB7580|DECT200|Powerline546E|520E|openwrt
Anfänger: Linux,FHEM+Perl

martinp876

ZitatBitte nicht mißverstehen, sind meine Anfänge mal in Perl zuschauen
warum? Stimmt doch.
ist mir nicht aufgefallen, da das Attribut gesetzt ist und der falsche default nur gesetzt wird, wenn es eben einen default braucht.
Falls SVN wieder gehen wird ist es korrigiert.