Hallo,
seit heute erscheinen im logfile im Minutentakt Einträge der folgenden Art. Ich hab schon versucht dahinter zu kommen, welches Device das verursacht. Ich hab zwar Diagramme, in denen ich $fld[3]*10 nutze, aber ich habe keinen Wert "----".
Mir ist nicht klar, wie ich vorgehen kann, um das Problem einzugrenzen.
Viele Grüße Gisbert
2017.12.30 22:11:03 1: PERL WARNING: Argument "----" isn't numeric in multiplication (*) at (eval 694024) line 1, <GEN15762> line 1066.
2017.12.30 22:11:03 3: eval: $fld[3]*10
2017.12.30 22:11:03 1: stacktrace:
2017.12.30 22:11:03 1: main::__ANON__ called by (eval 694024) (1)
2017.12.30 22:11:03 1: (eval) called by .//FHEM/92_FileLog.pm (813)
2017.12.30 22:11:03 1: main::FileLog_Get called by fhem.pl (3488)
2017.12.30 22:11:03 1: main::CallFn called by fhem.pl (1816)
2017.12.30 22:11:03 1: main::CommandGet called by fhem.pl (1168)
2017.12.30 22:11:03 1: main::AnalyzeCommand called by .//FHEM/01_FHEMWEB.pm (2464)
2017.12.30 22:11:03 1: main::FW_fC called by .//FHEM/98_SVG.pm (1218)
2017.12.30 22:11:03 1: main::SVG_getData called by .//FHEM/98_SVG.pm (1186)
2017.12.30 22:11:03 1: main::SVG_doShowLog called by .//FHEM/98_SVG.pm (1079)
2017.12.30 22:11:03 1: main::SVG_showLog called by .//FHEM/01_FHEMWEB.pm (864)
2017.12.30 22:11:03 1: main::FW_answerCall called by .//FHEM/01_FHEMWEB.pm (520)
2017.12.30 22:11:03 1: main::FW_Read called by fhem.pl (3488)
2017.12.30 22:11:03 1: main::CallFn called by fhem.pl (687)
2017.12.30 22:12:09 1: PERL WARNING: Argument "----" isn't numeric in multiplication (*) at (eval 704296) line 1, <GEN15845> line 1066.
2017.12.30 22:12:09 3: eval: $fld[3]*10
2017.12.30 22:12:09 1: stacktrace:
2017.12.30 22:12:09 1: main::__ANON__ called by (eval 704296) (1)
2017.12.30 22:12:09 1: (eval) called by .//FHEM/92_FileLog.pm (813)
2017.12.30 22:12:09 1: main::FileLog_Get called by fhem.pl (3488)
2017.12.30 22:12:09 1: main::CallFn called by fhem.pl (1816)
2017.12.30 22:12:09 1: main::CommandGet called by fhem.pl (1168)
2017.12.30 22:12:09 1: main::AnalyzeCommand called by .//FHEM/01_FHEMWEB.pm (2464)
2017.12.30 22:12:09 1: main::FW_fC called by .//FHEM/98_SVG.pm (1218)
2017.12.30 22:12:09 1: main::SVG_getData called by .//FHEM/98_SVG.pm (1186)
2017.12.30 22:12:09 1: main::SVG_doShowLog called by .//FHEM/98_SVG.pm (1079)
2017.12.30 22:12:09 1: main::SVG_showLog called by .//FHEM/01_FHEMWEB.pm (864)
2017.12.30 22:12:09 1: main::FW_answerCall called by .//FHEM/01_FHEMWEB.pm (520)
2017.12.30 22:12:09 1: main::FW_Read called by fhem.pl (3488)
2017.12.30 22:12:09 1: main::CallFn
Schau doch mal im gplot-Editor zu den zugehörigen SVG devices unter "show preprocessed input" - da müssen irgendwo die ---- auftauchen.
Zitat von: Gisbert am 30 Dezember 2017, 22:34:08
Hallo,
seit heute erscheinen im logfile im Minutentakt Einträge der folgenden Art. Ich hab schon versucht dahinter zu kommen, welches Device das verursacht. Ich hab zwar Diagramme, in denen ich $fld[3]*10 nutze, aber ich habe keinen Wert "----".
Mir ist nicht klar, wie ich vorgehen kann, um das Problem einzugrenzen.
Viele Grüße Gisbert
2017.12.30 22:11:03 1: PERL WARNING: Argument "----" isn't numeric in multiplication (*) at (eval 694024) line 1, <GEN15762> line 1066.
2017.12.30 22:11:03 3: eval: $fld[3]*10
2017.12.30 22:11:03 1: stacktrace:
2017.12.30 22:11:03 1: main::__ANON__ called by (eval 694024) (1)
2017.12.30 22:11:03 1: (eval) called by .//FHEM/92_FileLog.pm (813)
2017.12.30 22:11:03 1: main::FileLog_Get called by fhem.pl (3488)
2017.12.30 22:11:03 1: main::CallFn called by fhem.pl (1816)
2017.12.30 22:11:03 1: main::CommandGet called by fhem.pl (1168)
2017.12.30 22:11:03 1: main::AnalyzeCommand called by .//FHEM/01_FHEMWEB.pm (2464)
2017.12.30 22:11:03 1: main::FW_fC called by .//FHEM/98_SVG.pm (1218)
2017.12.30 22:11:03 1: main::SVG_getData called by .//FHEM/98_SVG.pm (1186)
2017.12.30 22:11:03 1: main::SVG_doShowLog called by .//FHEM/98_SVG.pm (1079)
2017.12.30 22:11:03 1: main::SVG_showLog called by .//FHEM/01_FHEMWEB.pm (864)
2017.12.30 22:11:03 1: main::FW_answerCall called by .//FHEM/01_FHEMWEB.pm (520)
2017.12.30 22:11:03 1: main::FW_Read called by fhem.pl (3488)
2017.12.30 22:11:03 1: main::CallFn called by fhem.pl (687)
2017.12.30 22:12:09 1: PERL WARNING: Argument "----" isn't numeric in multiplication (*) at (eval 704296) line 1, <GEN15845> line 1066.
2017.12.30 22:12:09 3: eval: $fld[3]*10
2017.12.30 22:12:09 1: stacktrace:
2017.12.30 22:12:09 1: main::__ANON__ called by (eval 704296) (1)
2017.12.30 22:12:09 1: (eval) called by .//FHEM/92_FileLog.pm (813)
2017.12.30 22:12:09 1: main::FileLog_Get called by fhem.pl (3488)
2017.12.30 22:12:09 1: main::CallFn called by fhem.pl (1816)
2017.12.30 22:12:09 1: main::CommandGet called by fhem.pl (1168)
2017.12.30 22:12:09 1: main::AnalyzeCommand called by .//FHEM/01_FHEMWEB.pm (2464)
2017.12.30 22:12:09 1: main::FW_fC called by .//FHEM/98_SVG.pm (1218)
2017.12.30 22:12:09 1: main::SVG_getData called by .//FHEM/98_SVG.pm (1186)
2017.12.30 22:12:09 1: main::SVG_doShowLog called by .//FHEM/98_SVG.pm (1079)
2017.12.30 22:12:09 1: main::SVG_showLog called by .//FHEM/01_FHEMWEB.pm (864)
2017.12.30 22:12:09 1: main::FW_answerCall called by .//FHEM/01_FHEMWEB.pm (520)
2017.12.30 22:12:09 1: main::FW_Read called by fhem.pl (3488)
2017.12.30 22:12:09 1: main::CallFn
Setze doch mal das Attribut global/verbose auf 5.
Gesendet von meinem Nexus 5X mit Tapatalk
Zitat von: betateilchen am 30 Dezember 2017, 22:38:02
Schau doch mal im gplot-Editor zu den zugehörigen SVG devices unter "show preprocessed input" - da müssen irgendwo die ---- auftauchen.
Hallo betateilchen,
ich hab bei den zugehörigen SVG devices unter "show preprocessed input" nachgeschaut, da tauchen die "----" aber nicht auf.
Um Ruhe zu haben, hab ich userreadings definiert und die ursprünglichen Werte mit 10 multipliziert.
Mit den geloggten Werten erzeuge ich dann die entsprechende Diagrammlinien.
Auch wenn es keine schöne Lösung ist, so sind die Perl Warings nun verschwunden.
Viele Grüße Gisbert
ZitatAuch wenn es keine schöne Lösung ist, so sind die Perl Warings nun verschwunden.
Vor allem behebt es nicht das Problem, sondern nur die Symptome ...
Grüße,
Stephan
Zitat von: abc2006 am 02 Januar 2018, 13:24:11
Vor allem behebt es nicht das Problem, sondern nur die Symptome ...
Hallo Stephan,
das ist mir auch klar und gefällt mir auch nicht besonders, aber mir fehlen die Möglichkeiten, ich kann nicht programmieren.
Falls sich später eine Lösung seitens der Entwickler und Programmierer ergibt, werde ich sie gerne nutzen.
Viele Grüße Gisbert
Da kann Dir kein Programmierer helfen.
Du musst in Deinem FileLog herausfinden, welches device die "-----" geloggt hat. Wenn Du DAS weißt, kannst Du den Wert auch entsprechend manipulieren, sodass die Warnung (die nur aufgrund DEINER Daten auftritt) verschwindet.
In preprocessed input taucht die Ursache nicht auf, diese Daten sind das Ergebnis des Filterns und Konvertierens (hier Multiplizieren).
@Gisbert: kannst du bitte die FileLog-Datei und die .gplot Definition hier anhaengen?
Hallo betateilchen,
ich hab jetzt im Filelog nachgeschaut, und da tauchen die "----" auf - nicht aber in "show preprocessed input" - ich schwöre. :o
Es handelt sich um Daten des Wettermoduls DWD mit dem Eintrag "_rr1", den ich im Diagramm mal 10 multipliziert habe, um gut sichtbare Linien zu bekommen.
Hallo Rudi,
der Vollständigkeit halber die FileLog-Datei und die .gplot-Definition im Anhang.
Der "Übeltäter" in Verbindung mit "----", Auszug:
#FileLog_DWD.Wetter 4:DWD.Wetter._rr1\x3a::$fld[3]*10
Damit ist die Ursache jetzt lokalisiert, wie aber verhindere ich die Perl-Warnings mit dem nicht-numerischen Wert "----"?
Ein userReadings mit default-Wert "0" oder irgendeinem anderen Wert ist jedenfalls keine Lösung, da es dann unschöne Zacken im Diagramm gibt.
Hilft ggf. folgendes userReadings?
attr DWD.Wetter userReadings {sprintf('%.1f', ReadingsNum('DWD.Wetter','_rr1',0))}
Was mache ich aber mit dem Default-Wert?
Viele Grüße Gisbert
Das Problem kann vmtl. geloest werden, indem man das Regexp auf sowas wie _ff.*\d aendert (und das fuer alle Zeilen). Leider kann man das nicht im SVG-Editor eingeben, sonder nur direkt in .gplot.
Alternativ spezifiziert man das Regexp fuer FileLog so, dass nur Zeilen mit einer Zahl akzeptiert werden.