Readings in verschiedene Log-Dateien aufsplitten

Aus FHEMWiki
Version vom 31. Dezember 2014, 17:05 Uhr von Rohan (Diskussion | Beiträge) (Syntax-Fehler korrigiert und Kategorisierung)

Aus verschiedenen Gründen kann es wünschenswert sein, die Readings eines Fhem-Devices in unterschiedliche Log-Dateien aufzuteilen. Dies kann man auch verwenden, um bestimmte Werte (Readings) nicht zu loggen.

Gegeben ist hier als Beispiel folgender Log-Dateiinhalt:

2014-12-09_11:12:32 DS2423_1 gaspower_B: 0
2014-12-09_11:12:32 DS2423_1 energy_A: 8148.093
2014-12-09_11:12:32 DS2423_1 power_A: 0.600743655234849
2014-12-09_11:12:32 DS2423_1 statEnergy_A: Hour: 0.068 Day: 3.570 Month: 102.140 Year: 102.140 (since: 2014-12-02 )
2014-12-09_11:12:32 DS2423_1 statEnergy_AHour: 0.068
2014-12-09_11:12:32 DS2423_1 statEnergy_ADay: 3.570
2014-12-09_11:12:32 DS2423_1 statEnergy_AMonth: 102.140
2014-12-09_11:12:32 DS2423_1 statEnergy_AYear: 102.140
2014-12-09_11:12:32 DS2423_1 energy_A: 8148.093
2014-12-09_11:12:32 DS2423_1 gasenergy_B: 536.9
2014-12-09_11:14:32 DS2423_1 counters.A: 8148103
2014-12-09_11:14:32 DS2423_1 counters.B: 5369
2014-12-09_11:14:32 DS2423_1 energy_A: 8148.103
2014-12-09_11:14:32 DS2423_1 power_A: 0.601512186542027
2014-12-09_11:14:32 DS2423_1 gaspower_B: 0
2014-12-09_11:14:32 DS2423_1 gasenergy_B: 536.9
2014-12-09_11:14:32 DS2423_1 statEnergy_A: Hour: 0.078 Day: 3.580 Month: 102.150 Year: 102.150 (since: 2014-12-02 )
2014-12-09_11:14:32 DS2423_1 statEnergy_AHour: 0.078
2014-12-09_11:14:32 DS2423_1 statEnergy_ADay: 3.580
2014-12-09_11:14:32 DS2423_1 statEnergy_AMonth: 102.150
2014-12-09_11:14:32 DS2423_1 statEnergy_AYear: 102.150
2014-12-09_11:14:32 DS2423_1 energy_A: 8148.103
2014-12-09_11:14:32 DS2423_1 gasenergy_B: 536.9
2014-12-09_11:16:32 DS2423_1 counters.A: 8148113
2014-12-09_11:16:32 DS2423_1 counters.B: 5369
2014-12-09_11:16:32 DS2423_1 gaspower_B: 0

Zum Hintergrund: Es handelt sich um einen per 1-Wire angeschlossenen DS2423-Zählers (zweifach), der die S0-Signale eines Gas- und eines Drehstromzählers mitzählt und deren Werte Fhem-intern in die entsprechenden Werte umgerechnet werden sowie um die Ausgabe des auf diese Werte angesetzten Statistik-Moduls von Fhem (alle Zeilen, die die Zeichenkette "stat" enthalten).

Geloggt wurden diese Werte (Readings) bisher mittels folgender Definitionen in einer Fhem-CFG-Datei:

define FileLog_DS2423_1 FileLog /opt/fhem/log/DS2423_1-%Y-%m.log DS2423_1

Nun sollen die Zeilen mit "stat..." und die anderen (also ohne "stat...") in getrennte Log-Dateien geschrieben werden. Dazu braucht es folgende Defintionen:

# Basis-Readings des Device
define FileLog_DS2423_1 FileLog /opt/fhem/log/DS2423_1-%Y-%m.log DS2423_1:(?!statEnergy).*

Hierdurch werden alle Readings, die nicht die Zeichenkette "statEnergy" enthalten (also die Basiswerte), in die angegebene Datei DS2423_1-%Y-%m.log geschrieben. Wichtig ist das "!", welches die Bedingung negiert.

Mittels

# Logfile für Werte des Statistik-Moduls zum DS2423_1
define FileLog_DS2423_1_Stat FileLog /opt/fhem/log/DS2423_1_Stat-%Y-%m.log DS2423_1:(statEnergy).*

werden die Readings, welche die Zeichenkette "statEnergy" enthalten, in die Log-Datei DS2423_1_Stat-%Y-%m.log geschrieben.