FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: Dr. Boris Neubert am 04 Februar 2017, 16:35:46

Titel: 98_SVG.pm: warnings i.V.m. logProxy
Beitrag von: Dr. Boris Neubert am 04 Februar 2017, 16:35:46
Hallo,

bei mir sitzt ein SVG-Plot auf einem logProxy. Ich erhalte die Warnung:

2017.02.04 16:26:30 1: PERL WARNING: Use of uninitialized value $data{"currval3"} in sprintf at /users/neubert/Development/Perl/fhem/FHEM/98_SVG.pm line 2082.


Zeile 2080 bis 2083 sieht so aus:

    if(defined($data{"min$j"}) && $data{"min$j"} ne "undef") {
      $desc = sprintf("%s: Min:%g Max:%g Last:%g",
        $t, $data{"min$j"}, $data{"max$j"}, $data{"currval$j"});
    }


Die erste Zeile ist m.E. redundant (Prüfung auf defined und auf nicht undef). Das aber nur am Rande.

currval kann nichts liefern, weil es sich um einen xy-Plot handelt, bei dem nicht die Uhrzeit an der Abszisse steht.

Wäre das an dieser Stelle weiter mit defined() abzuzäunen?

Viele Grüße
Boris
Titel: Antw:98_SVG.pm: warnings i.V.m. logProxy
Beitrag von: rudolfkoenig am 04 Februar 2017, 18:29:12
Habs gemacht. Das mit "redundant" verstehe ich nicht: wenn ich defined entferne, regnet es Warnungen:
Zitat
PERL WARNING: Use of uninitialized value within %data in string ne at ./FHEM/98_SVG.pm line 2080.
Titel: Antw:98_SVG.pm: warnings i.V.m. logProxy
Beitrag von: Dr. Boris Neubert am 04 Februar 2017, 18:31:46
Danke!

Meiner Meinung nach genügt


    if(defined($data{"min$j"})) {
Titel: Antw:98_SVG.pm: warnings i.V.m. logProxy
Beitrag von: rudolfkoenig am 04 Februar 2017, 18:48:26
Das mit dem "undef" habe ich sicher nicht freiwillig eingebaut, leider kriege ich es nicht mehr zusammen, warum.
Stammt aus r7054, 2014-11-24, siehe auch https://forum.fhem.de/index.php?topic=29271
Titel: Antw:98_SVG.pm: warnings i.V.m. logProxy
Beitrag von: justme1968 am 06 Februar 2017, 19:15:16
wenn ich mir den diff anschaue (https://svn.fhem.de/trac/changeset?reponame=&old=7054%40trunk&new=7054%40trunk (https://svn.fhem.de/trac/changeset?reponame=&old=7054%40trunk&new=7054%40trunk)) sieht es aber so aus als ob der komische vergleich schon vorher drin war und durch den patch für r7054 nur woanders hin gewandert ist :).