FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Gisbert am 30 Dezember 2017, 22:34:08

Titel: PERL WARNING: Argument "----" isn't numeric in multiplication (*) at ...
Beitrag 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
Titel: Antw:PERL WARNING: Argument "----" isn't numeric in multiplication (*) at ...
Beitrag 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.
Titel: Antw:PERL WARNING: Argument &quot;----&quot; isn't numeric in multiplication (*) at ...
Beitrag von: hotbso am 30 Dezember 2017, 22:41:51
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

Titel: Antw:PERL WARNING: Argument "----" isn't numeric in multiplication (*) at ...
Beitrag von: Gisbert am 01 Januar 2018, 15:58:34
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
Titel: Antw:PERL WARNING: Argument "----" isn't numeric in multiplication (*) at ...
Beitrag von: abc2006 am 02 Januar 2018, 13:24:11
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
Titel: Antw:PERL WARNING: Argument "----" isn't numeric in multiplication (*) at ...
Beitrag von: Gisbert am 02 Januar 2018, 19:41:57
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​
Titel: Antw:PERL WARNING: Argument "----" isn't numeric in multiplication (*) at ...
Beitrag von: betateilchen am 02 Januar 2018, 20:20:35
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.
Titel: Antw:PERL WARNING: Argument "----" isn't numeric in multiplication (*) at ...
Beitrag von: rudolfkoenig am 02 Januar 2018, 20:22:33
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?
Titel: Antw:PERL WARNING: Argument "----" isn't numeric in multiplication (*) at ...
Beitrag von: Gisbert am 02 Januar 2018, 22:02:47
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
Titel: Antw:PERL WARNING: Argument "----" isn't numeric in multiplication (*) at ...
Beitrag von: rudolfkoenig am 03 Januar 2018, 09:48:21
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.