Probleme Werte aus userReading für gplot zu extrahieren

Begonnen von laufhem, 01 Juli 2021, 21:41:55

Vorheriges Thema - Nächstes Thema

laufhem

Hallo,
ich scheitere leider gerade daran, aus einem selbst definiertem userReading die entsprechenden Zahlenwerte per RegExp o.Ä. zu extrahieren.
Ich lese von meinem Stromzähler in einem UserReading die derzeitige Leistung, die verbrauchte und die eingespeiste Energie und schreibe diese in einen FileLog:

attr Stromzaehler userReadings StromDataLog {sprintf("Power: %3.0fW Consumption: %3.1fWh Feed: %3.1fWh", ReadingsVal("Stromzaehler","power", 0),ReadingsVal("Stromzaehler","total_consumption", 0),ReadingsVal("Stromzaehler","total_feed", 0))}
attr Stromzaehler event-min-interval StromDataLog:2
define Stromlog_red FileLog ./log/StromDataLog_%Y_%m.log Stromzaehler:StromDataLog.*
attr Stromlog_red logtype text



Wenn ich nun allerdings von der WebOberfläche aus dem Filelog heraus einen SVG-Plot erzeugen möchte, kann er aus der einen Zeile nicht mehr die einzelnen Werte extrahieren.
Wie muss der passende RegExp in der gplot-Datei aussehen?

#Stromlog_red 4:Stromzaehler.StromDataLog.*Power.*\x3a:: oder Ähnlich funktioniert schonmal nicht.
Ich hoffe, ihr könnt mir helfen.

Vielen Dank

rudolfkoenig

Zahlen mit Suffix kann man mit der int Funktion (Siehe https://fhem.de/commandref_modular.html#FileLogget) bereinigen.
Einfacher hat man es, wenn man bei der UserReading ein Leerzeichen zwischen Wert und Einheit laesst.

laufhem

Danke für den Hinweis, aber ich scheitere an der praktischen Umsetzung.
1) Mit der Int-Funktion kann ich nur den ersten Integer pro Zeile extrahieren, oder? Also Kann ich damit nicht sowohl Power, als auch Consumption für den Plot extrahieren?
2) Wie würde der konkrete Befehl im SVG Plot Editor aussehen?
Line 1 Stromlog_red 4 Stromzaehler.* int funktioniert leider nicht.

2021-07-20_13:07:35 Stromzaehler StromDataLog: Power: 136 W  Consumption: 1234500.8 Wh Feed: 2345.3 Wh

rudolfkoenig

Fuer die angezeigte Zeile braucht man kein int.
Power ist Spalte 5, Consumption ist 8 (im Plot Editor wird ab 1 gezehlt).

laufhem