Readings in verschiedene Log-Dateien aufsplitten
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.