Skript zum Import von Filelog-Dateien in eine Influx DB

Begonnen von FhemPiUser, 28 September 2024, 15:02:13

Vorheriges Thema - Nächstes Thema

FhemPiUser

Hiermit möchte ich ein Python-Skript zum Import von FHEM FileLog-Dateien in eine Influx DB teilen. Die Idee dazu wurde hier beschrieben.

Mit dem Befehl

python3 importFilelog2influxdb.py -r Daily_PV_Generation -f /fhem/log/FileLog_PV_Daily

kann man z.B. das Reading "Daily_PV_Generation" aller FileLogs "FileLog_PV_Daily-*.log" in die Influx DB importieren. Damit kann man z.B. Graphen für historische Daten aus Fhem FileLog-Dateien generieren (Beispiel siehe Screenshot).

Im Skript muss noch die Config (InfluxDB-Server, -Token etc) individuell konfiguriert werden. Das Skript benötigt außerdem das Modul influxdb-client, der mit folgenden Befehl installiert werden kann:

pip install influxdb-client

Vorher sollte man idealerweise ein virtuelles Environment eingerichtet haben (Anleitung siehe z.B. hier)

Des Weiteren habe ich ein Skript geschrieben, um Filelog-Daten wieder aus der Influx-DB zu löschen.

Mit dem Befehl

python3 deleteDatainfluxdb.py -f FileLog_PV_Daily -s 2023-10-01 -e 2024-10-01

löscht man z.B. alle Daten zum FileLog_PV_Daily im Zeitraum 2023-10-01 bis 2024-10-01.

Update/Change Log importFilelog2influxdb:
- v0.2 mit der Möglichkeit ein start-Datum für den Import anzugeben
- v0.3 mit der Möglichkeit inkrementell zu importieren durch Angabe eines relativen Start-Datums. "-1d" als start-Datum wäre immer Import aller Dateien, die bis zu 1 Tag zurück (bzw. gestern) geändert wurden. Das wird bei mir jede Nacht auf dem NAS ausgeführt, um die täglich FileLogs mit Grafana zu synchronisieren.
- v0.4 mit der Möglichkeit die Spalten für key (Reading-Name) und value (Reading-Wert) anzugeben, um spezielle FileLog-Formate wie z.B. CUL_EM zu unterstützen