FHEM > SVG / Plots / logProxy

[gelöst]SVG-Plot: Perl Warning im Log

(1/2) > >>

frober:
Hallo zusammen,

jedesmal wenn ich den PLot meiner Heizung aufrufe bekomme ich folgende Logeinträge:

--- Code: ---2021.11.14 18:24:41 1: PERL WARNING: Argument "Abtauen" isn't numeric in numeric lt (<) at ./FHEM/98_logProxy.pm line 580.
2021.11.14 18:24:41 1: PERL WARNING: Argument "Abtauen" isn't numeric in numeric gt (>) at ./FHEM/98_SVG.pm line 1591.
2021.11.14 18:24:41 1: PERL WARNING: Argument "Abtauen" isn't numeric in subtraction (-) at ./FHEM/98_SVG.pm line 1975.
2021.11.14 18:24:46 1: PERL WARNING: Argument "Abtauen" isn't numeric in numeric lt (<) at ./FHEM/98_logProxy.pm line 580.
2021.11.14 18:24:46 1: PERL WARNING: Argument "Abtauen" isn't numeric in numeric gt (>) at ./FHEM/98_SVG.pm line 1591.
2021.11.14 18:24:46 1: PERL WARNING: Argument "Abtauen" isn't numeric in subtraction (-) at ./FHEM/98_SVG.pm line 1975.
--- Ende Code ---

Hier ein Auszug der Daten von DbLog:

--- Code: ---2021-11-14_03-59-44__1__Heizung__opStateHeatPump1 Waermepumpe steht  2021-11-14 18:41:34
2021-11-14_04-11-55__1__Heizung__opStateHeatPump1 Waermepumpe steht  2021-11-14 18:41:34
2021-11-14_04-23-55__1__Heizung__opStateHeatPump1 Waermepumpe steht  2021-11-14 18:41:34
2021-11-14_04-35-55__1__Heizung__opStateHeatPump1 Waermepumpe steht  2021-11-14 18:41:34
2021-11-14_04-38-55__1__Heizung__opStateHeatPump1 Waermepumpe laeuft 2021-11-14 18:41:34
2021-11-14_04-50-55__1__Heizung__opStateHeatPump1 Waermepumpe laeuft 2021-11-14 18:41:34
2021-11-14_04-56-55__1__Heizung__opStateHeatPump1 Abtauen            2021-11-14 18:41:34
2021-11-14_05-05-55__1__Heizung__opStateHeatPump1 Waermepumpe laeuft 2021-11-14 18:41:34
2021-11-14_05-17-55__1__Heizung__opStateHeatPump1 Waermepumpe laeuft 2021-11-14 18:41:34
2021-11-14_05-27-00__1__Heizung__opStateHeatPump1 Waermepumpe steht  2021-11-14 18:41:34
2021-11-14_05-39-00__1__Heizung__opStateHeatPump1 Waermepumpe steht  2021-11-14 18:41:34
2021-11-14_05-51-00__1__Heizung__opStateHeatPump1 Waermepumpe steht  2021-11-14 18:41:34
2021-11-14_06-03-05__1__Heizung__opStateHeatPump1 Waermepumpe steht  2021-11-14 18:41:34
--- Ende Code ---

und die Definition im Gplot-File:

--- Code: ---#logProxy DbLog:logdb,extend=2000:Heizung:opStateHeatPump1:::$val=~s/(Waermepumpe|Abtauen).(Waermepumpe|Abtauen|laeuft|steht)(\d*).*/$2eq"laeuft"?1:0/eg
#logProxy DbLog:logdb,extend=2000:Heizung:opStateHeatPump1:::$val=~s/(Waermepumpe|Abtauen)(\d*).*/$1eq"Abtauen"?1:0/eg
--- Ende Code ---


Der Plot wird einwandfrei angezeigt, auch das Abtauen. Mittlerweile habe ich "Abtauen" schon als Auswahl für die 2. Variable eingefügt, ohne Erfolg.


Wie bekomme ich die Warnmeldung weg, wo liegt mein Fehler?

Danke und Grüße
Bernd

rudolfkoenig:
Du musst dafuer sorgen, dass die zurueckgelieferten Werte immer Zahlen sind.
Pruefen kann man das im FHEMWEB-Detailfenster mit "Show preprocessed input".
Da das eine DbLog-Uebung ist, kann ich leider nicht konkret weiterhelfen.

frober:

--- Zitat von: rudolfkoenig am 14 November 2021, 22:23:25 ---Du musst dafuer sorgen, dass die zurueckgelieferten Werte immer Zahlen sind.
Pruefen kann man das im FHEMWEB-Detailfenster mit "Show preprocessed input".
Da das eine DbLog-Uebung ist, kann ich leider nicht konkret weiterhelfen.

--- Ende Zitat ---

Danke Rudi, jetzt hat es bei mir klick gemacht.
Da bei Abtauen $2 nicht vorhanden ist, muss ich entsprechend $1 abfangen.

Müsste so in etwa (frei aus den Kopf) so funktionieren, kann es aber erst heute Abend testen.

--- Code: ---#logProxy DbLog:logdb,extend=2000:Heizung:opStateHeatPump1:::$val=~s/(Waermepumpe|Abtauen).(laeuft|steht)(\d*).*/$1eq"Abtauen"?0:$2eq"laeuft"?1:0/eg
--- Ende Code ---

frober:
Bin ratlos, die Warnung von logproxy ist weg, SVG mosert immer noch.


--- Code: ---2021.11.15 18:36:09 1: PERL WARNING: Argument "Abtauen" isn't numeric in numeric gt (>) at ./FHEM/98_SVG.pm line 1591.
2021.11.15 18:36:09 1: PERL WARNING: Argument "Abtauen" isn't numeric in subtraction (-) at ./FHEM/98_SVG.pm line 1975.

--- Ende Code ---

Zeile 1591 von SVG entspricht sinngemäß der Zeile 580 von logProxy...nein, ich habe mir nicht den ganzen Code angeschaut...
Wie ist die Reihenfolge, logProxy holt die Daten von Dblog und übergibt sie an SVG?

Ich habe alle Möglichkeiten, die mir eingefallen sind, ausprobiert...

--- Code: ---#logProxy DbLog:logdb,extend=2000:Heizung:opStateHeatPump1:::$val=~s/(Waermepumpe|Abtauen).(laeuft|steht)(\d*).*/$1eq"Abtauen"?0:$2eq"laeuft"?1:0/eg
--- Ende Code ---

--- Code: ---#logProxy DbLog:logdb,extend=2000:Heizung:opStateHeatPump1:::$val=~s/(Waermepumpe|Abtauen).(Waermepumpe|Abtauen|laeuft|steht)(\d*).*/$1eq"Abtauen"?0:$2eq"laeuft"?1:0/eg
--- Ende Code ---

--- Code: ---#logProxy DbLog:logdb,extend=2000:Heizung:opStateHeatPump1:::$val=~s/(Waermepumpe|Abtauen).(laeuft|steht)(\d*).*/$2eq"laeuft"?1:$1eq"Abtauen"?0:0/eg
--- Ende Code ---

--- Code: ---#logProxy DbLog:logdb,extend=2000:Heizung:opStateHeatPump1:::$val=~s/(Waermepumpe|Abtauen).(laeuft|steht)(\d*).*/$1eq"Waermepumpe"&&$2eq"laeuft"?1:0/eg
--- Ende Code ---

--- Code: ---#logProxy DbLog:logdb,extend=2000:Heizung:opStateHeatPump1:::$val=~s/(Waermepumpe|Abtauen).(laeuft|steht)(\d*).*/$1eq"Abtauen"?0:0||$2eq"laeuft"?1:0/eg
--- Ende Code ---

--- Code: ---#logProxy DbLog:logdb,extend=2000:Heizung:opStateHeatPump1:::$val=~s/(Waermepumpe|Abtauen).(laeuft|steht)(\d*).*/$1eq"Abtauen"&&!$2?0:$2eq"laeuft"?1:0/eg
--- Ende Code ---

Unter "Show preproccessed input" steht weiterhin 'Abtauen'.

Wie kann ich das debuggen? Verbose 5 im logproxy oder SVG-Plot hat keine weitere Infos gebracht.

rudolfkoenig:
Ich wuerde die Daten erst direkt aus DbLog holen, und solange an dem Ausdruck drehen, bis in "Show preprocessed input" nur Zahlen zu sehen sind. Ers danach wuerde ich logProxy aktivieren.

Fuer DbLog fragen ist dieser Forumsbereich nicht optimal gewaehlt.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln