PERL WARNING: Argument "----" isn't numeric in multiplication (*) at ...

Begonnen von Gisbert, 30 Dezember 2017, 22:34:08

Vorheriges Thema - Nächstes Thema

Gisbert

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
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

betateilchen

Schau doch mal im gplot-Editor zu den zugehörigen SVG devices unter "show preprocessed input" - da müssen irgendwo die ---- auftauchen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

hotbso

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


Gisbert

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
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

abc2006

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
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

Gisbert

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​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

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?

Gisbert

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
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

rudolfkoenig

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.