FHEM Forum

FHEM => Automatisierung => Thema gestartet von: frober am 16 November 2021, 17:52:18

Titel: [gelöst]DbLog + SVG-Plot -> Perl Warnung im Log
Beitrag von: frober am 16 November 2021, 17:52:18
Hallo zusammen,

ich habe hier das Thema schon angefangen:
https://forum.fhem.de/index.php/topic,124142.0.html (https://forum.fhem.de/index.php/topic,124142.0.html)

Laut Rudi ist das Problem DbLog spezifisch.

Folgende Daten habe ich in der Datenbank (Bsp.-Daten, da anderes Datum):

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


Das Gplot-File ist, mittlerweile so konfiguriert (logProxy habe erstmal rausgenommen):
#DbLog Heizung:opStateHeatPump1:::$val=~s/(Waermepumpe|Abtauen).(laeuft|steht)(\d*).*/$1eq"Abtauen"?0:$2eq"laeuft"?1:0/eg
Der Plot wird einwandfrei angezeigt.

Im Log bekomme ich folgende Warnung:
2021.11.16 17:27:40 1: PERL WARNING: Argument "Abtauen" isn't numeric in numeric gt (>) at ./FHEM/98_SVG.pm line 1591.
2021.11.16 17:27:40 1: PERL WARNING: Argument "Abtauen" isn't numeric in subtraction (-) at ./FHEM/98_SVG.pm line 1975.


Ich habe auch versucht das mit den Schlüsselwörter zu lösen, erfolglos.
#DbLog Heizung:opStateHeatPump1:::$val=~s/(Waermepumpe|Abtauen).(laeuft|steht)(\d*).*/$1eq"Abtauen"?"ignore":$2eq"laeuft"?1:0/eg

Im Plot, unter "Show preproccessed input" steht weiterhin 'Abtauen'.

Ich muß irgendwie "Abtauen" ignorieren oder als Zahl, am besten als eine Null, zurückgeben.
Wie bekomme ich das gelöst?

Danke und Grüße
Bernd
Titel: Antw:DbLog + SVG-Plot -> Perl Warnung im Log
Beitrag von: Beta-User am 16 November 2021, 17:59:43
Da "Abtauen" abschließend ist (und danach nichts (!) mehr von DBLog geliefert wird), ist es vermutlich einfacher, erst auf eq zu prüfen, und dann erst auf laueft/steht. Oder eben die weiteren Abfragen optional machen...
Titel: Antw:DbLog + SVG-Plot -> Perl Warnung im Log
Beitrag von: frober am 16 November 2021, 18:08:34
Zitat von: Beta-User am 16 November 2021, 17:59:43
Da "Abtauen" abschließend ist (und danach nichts (!) mehr von DBLog geliefert wird), ist es vermutlich einfacher, erst auf eq zu prüfen, und dann erst auf laueft/steht. Oder eben die weiteren Abfragen optional machen...

Das habe ich doch, oder verstehe ich dich falsch?
Zitat.../$1eq"Abtauen"?0:$2eq"laeuft"?1:0/eg

Wie mache ich weiter Abfragen Optional?
Ich dachte wenn etwas zutrifft -> $1eq"Abtauen"?0 wird nicht mehr weitergeprüft.

Titel: Antw:DbLog + SVG-Plot -> Perl Warnung im Log
Beitrag von: Beta-User am 16 November 2021, 18:20:56
Ich vermute, dass gar kein match vorliegt, weil Gruppe 2 in dem Fall failt.
Titel: Antw:DbLog + SVG-Plot -> Perl Warnung im Log
Beitrag von: frober am 16 November 2021, 18:25:39
So etwas vermute ich auch und habe folgendes erfolglos probiert (keine Ahnung ob das von Syntax her funktioniert):
Zitat.../$1eq"Abtauen"&&!$2?0:$2eq"laeuft"?1:0/eg
Titel: Antw:DbLog + SVG-Plot -> Perl Warnung im Log
Beitrag von: frober am 16 November 2021, 19:06:42
Und hier die Lösung ;D

#DbLog Heizung:opStateHeatPump1:::$val=~s/(Waermepumpe|Abtauen)([\s]{0,1})([a-z]{0,6})(\d*).*/$1eq"Abtauen"?0:$3eq"laeuft"?1:0/eg