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

Begonnen von frober, 14 November 2021, 19:22:57

Vorheriges Thema - Nächstes Thema

frober

Hallo zusammen,

jedesmal wenn ich den PLot meiner Heizung aufrufe bekomme ich folgende Logeinträge:
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.


Hier ein Auszug der Daten von DbLog:
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


und die Definition im Gplot-File:
#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


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
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

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.

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.
#logProxy DbLog:logdb,extend=2000:Heizung:opStateHeatPump1:::$val=~s/(Waermepumpe|Abtauen).(laeuft|steht)(\d*).*/$1eq"Abtauen"?0:$2eq"laeuft"?1:0/eg
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

frober

#3
Bin ratlos, die Warnung von logproxy ist weg, SVG mosert immer noch.

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.


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

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

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

Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

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.

frober

In diesem Thread habe ich die Lösung gefunden:
https://forum.fhem.de/index.php?topic=124180.msg1187471#msg1187471

und hier isse  ;D
#DbLog Heizung:opStateHeatPump1:::$val=~s/(Waermepumpe|Abtauen)([\s]{0,1})([a-z]{0,6})(\d*).*/$1eq"Abtauen"?0:$3eq"laeuft"?1:0/eg:
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...