FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: thoweiss am 06 Juli 2014, 11:47:22

Titel: RegExp problem [gelöst]
Beitrag von: thoweiss am 06 Juli 2014, 11:47:22
Hallo zusammen,
ich nutze für die Überwachung meiner PV-Anlage SMA-Spot in Verbindung mit den SMAUtils.

Im logfile wird jetz auch die Wechselrichtertemperatur geloggt,
allerdings leider mit direkt angehängter Einheit °C.
2014-07-01_05:31:10 wr.stp5000tl device_temperature: 30.0°C

Leider kann ich damit für eine Plot nichts anfangen.

Hier die Plot Definition:
pv-%Y-%m.log wr.stp5000tl:(string_1_idc|string_2_idc|string_1_udc|string_2_udc|string_1_pdc|string_2_pdc|total_pac|device_temperature).*

Kann ich dort bereits das mitloggen der Einheit vermeiden?
Wenn ja - wie?

Ich müsste ja vermutlich die Regexp anpassen mit \d\d.\d aber wo trage ich das ein?


Oder muss das in die Plot-Definition mir rein?

Habe das regexp mit fhem noch nicht wirklich verstanden...

Danke und Gruß,
Thorsten
Titel: Antw:RegExp problem
Beitrag von: thoweiss am 07 Juli 2014, 13:00:01
So - bin einen Schritt weiter:

Ich habe jetzt die Plot-Definition angepasst.

Von

pv-%Y-%m.log wr.stp5000tl:(string_1_idc|string_2_idc|string_1_udc|string_2_udc|string_1_pdc|string_2_pdc|total_pac|device_temperature).*

auf

pv-%Y-%m.log wr.stp5000tl:string_1_idc.*|string_2_idc.*|string_1_udc.*|string_2_udc.*|string_1_pdc.*|string_2_pdc.*|total_pac.*|device_temperature.*

jetzt wir natürlich immer noch alles geloggt.

Wenn ich den Part  device_temperature.* in device_temperature.\d\d\.\d ändere wird allerdings die Temperatur gar nicht mehr geloggt.

Wie bekomme ich das hin das nur die Ziffern der Temperatur ohne das °C in das Logfile eingetragen werden?

Gruß,
Thorsten


Titel: Antw:RegExp problem
Beitrag von: John am 07 Juli 2014, 14:14:33
Hi thoweiss


ich fürchte du bohrst am falschen Ende.
ZitatIch habe jetzt die Plot-Definition angepasst.

Du passt die Log-Definition an und nicht die Plot-Definition.
Mit der Log-Definition definierst du einen Filter über Events, die in der Logdatei erscheinen sollen.
Transformieren, also ändern, kannst hier nichts.

Aber wenn du dich den Charts und deren Auswertung zuwendest, kannst du einzelne Terme einer Zeile modifizieren.

Schau dir mal als Beispiel folgende Seite an
http://www.fhemwiki.de/wiki/HourCounter#Chart_der_Aktualwerte (http://www.fhemwiki.de/wiki/HourCounter#Chart_der_Aktualwerte)
Hier werden einzelne Terme umgerechnet.

Ich kann dir zwar noch nicht die Lösung zeigen, aber vielleicht den Weg weisen.

Nachtrag:
Das könnte ggf eine Lösung sein.
gefunden bei http://www.fhemwiki.de/wiki/Creating_Plots#Data_Extraction (http://www.fhemwiki.de/wiki/Creating_Plots#Data_Extraction)

ZitatSo you can do something like attr <weblink> title "Min $data{min1}, Max $data{max1}, Last $data{currval1}" Also implemented in this function is code which operates on the data retrieved. This can be specified at the "<fn>" tag. Up till now following functions are impemented:

    int (to cut off % from a number, as for the actuator)

John
Titel: Antw:RegExp problem
Beitrag von: thoweiss am 07 Juli 2014, 22:44:03
Danke für den Hinweis. Ich werde das dann als Funktion bei den plots versuchen.

Gruß,
Thorsten
Titel: Antw:RegExp problem
Beitrag von: thoweiss am 08 Juli 2014, 19:24:29
Ich habe es jetzt so gelöst:

Ich habe als Funktion jetzt folgendes eingefügt:
$fld[3]=substr($fld[3],0,4)

Dadurch werden nur die ersten vier Zeichen übernommen und das °C wird abgeschnitten.

Danke nochmal für den Schubser in die richtige Richtung!
Titel: Antw:RegExp problem [gelöst]
Beitrag von: John am 08 Juli 2014, 19:36:53
Hi thoweiss,

funktioniert das auch, wenn nur einstelle vor dem Komma vorkommt ? (z.B. 9.0°C)

wenn du in das Logfile einfach einen derartigen Wert reinschreibst  kannst du es testen.

John
Titel: Antw:RegExp problem [gelöst]
Beitrag von: thoweiss am 08 Juli 2014, 19:42:08
Mist erwischt - das funktioniert natürlich nicht. Allerdings treten einstellige Temperaturen beim Wechselrichter bei mir nicht auf.

Leider bekomme ich die regexp-lösung nicht hin. Damit stehe ich auf kriegsfuss:-X