Für die Log Datei nur bestimmte Readings loggen, trotz Ähnlichkeit [gelöst]

Begonnen von cocojambo, 12 Januar 2019, 17:37:53

Vorheriges Thema - Nächstes Thema

cocojambo

Vielleicht ist mein Betreff nicht so ganz genau definiert.
Ich habe etwa 20 readings die aus einer Solaranlage kommen und einige davon haben den gleichen Namensanfang, jedoch andere Eweiterungen.
z.Beispiel:
2019-01-12_17:28:21 mySL_now S0_now: 612
2019-01-12_17:28:21 mySL_now Pac_now_avg: 0
2019-01-12_17:28:21 mySL_now S0_now_avg: 677
2019-01-12_17:28:51 mySL_now Pac_now: 0
2019-01-12_17:28:51 mySL_now S0_now: 818
2019-01-12_17:28:51 mySL_now Pac_now_avg: 0
2019-01-12_17:28:51 mySL_now S0_now_avg: 686


Ich schaffe es nicht nur die readings ohne avg- Endung in eine Log Datei auszusondern und in diese in eine Log Datei zu schreiben:

Mit
define FileLog_mySL FileLog ./log/mySL-%Y-%W.log mySL_now:(Pac_now|S0_now).*
ehalte immer auch die readings mit"avg" Endung.

Im Forum und auch in der commandref habe ich nichts ganaues dazu gefunden.
Wie muß ich die Abfrage definieren, damit ich wirklich nur die 2 readings (Werte) ohne avg ins Log-File schreiben kann?

Gruß aus Köln
Norbert
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

OdfFhem

Im FileLog-Device gibt es ein ignore-Attribut - ich glaube, es heisst ignoreRegexp. Mit diesem solltest Du ans Ziel kommen ...

cocojambo

Ja das habe ich auch probiert, mit dem ignorieren bzw mit dem anschließendem Ausschließen, habe ich aber nicht hin bekommen.
Ich denke, es wird doch dafür eine einfache Lösung geben, ein bestimmtes reading auszulesen und zu loggen, ohne das alle ähnlich geschriebenen readings mit in die Auswahl fallen.

Gruß
Norbert
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

OdfFhem

Ich kann aktuell leider nichts testen, aber wenn Du am Ende statt ).* ein ):.* schreibst, sollte es auch klappen ...

cocojambo

@ OdfFhem

Bin im Moment noch unterwegs. Werde es aber heute nachmittag auf jeden Fall probieren.
Erst mal Danke.
Melde mich dann.
Gruß
Norbert
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

cocojambo

@OdfFhem

Wunderbar, das war die Lösung mit den Doppelpunkten funktioniert es einwandfrei.
Danke !!!
Norbert

Nur nebenbei gefragt: Aber warum ist das sonst nirgendwo dokumentiert?
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

Wernieman

Weil es so nicht in die Doku gehört. Du hast einfach den regEx zu "groß" gemacht.

Nur mal als Beispiel:
Zitat2019-01-12_17:28:21 mySL_now S0_now: 612
2019-01-12_17:28:21 mySL_now Pac_now_avg: 0

Dein "mySL_now:(Pac_now|S0_now).*" trickert auf alle Zeilen, das neue "mySL_now:(Pac_now|S0_now):.*" dagegen möchte z.B. nach dem Pac_no ein ":" und das hat die Zeile mit avg nicht.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

cocojambo

Vielen Dank für deine Erklärung. Wenn ich die lese verstehe ich es auch.
Aber da wäre ich im Traum nicht drauf gekommen, weil ich im Internet nach ähnlichen Fällen gesucht habe, und nirgends auf den Doppelpunkt gestossen bin, sonst hätte ich das als Gedankenanstoss schon verstanden und nach der Ursache geforscht.

Nochmals Danke, hat mir viel Mühe und Sucherei gespart.
Gruß aus Köln
Norbert
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

Wernieman

Der ":" bedeutet in einer RegEx infach nur ":"

So wie ein "a" einfach nur ein "a" ;o)
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html