Ökofen Monitoring
Diese Seite befasst sich mit einer zentralen Pelletheizung des Herstellers Ökofen. Besonderes Augenmerk lege ich auf das Monitoring wichtiger Betriebsdaten der Heizanlage.
Ökofen Pellematic
Wichtige Komponenten der Ökofen Pellematic Heizanlage sind:
- Pelletkessel
- Pelletsilo
- Pufferspeicher
- Pumpen für Warmwasser und Heizung
- Externer Temperaturfühler
Die Bedienung und Einstellung der Heizanlage geschieht entweder über das Touch-Bedienteil am Gerät oder die Ökofen App. Bestimmte Einstellungen sind nur über das Bedienteil am Gerät möglich, wobei für Bedienteil und App oft die sog. Codeebene nötig ist, um besonders "geschützte" Einstellungen vornehmen zu können (wie z.B. die Leistungsstufe des Kessels oder den Offset für den externen Temperaturfühler).
Wichtige Einstellungen und Kennwerte
- Leistungsstufe des Kessels: 12 [kWh] -> Wichtig für die Berechnungen zum Verbrauch
- Raumtemperatur Heizen: z.B. 21°C
- Heizkurve: z.B. Heizkurve/Kennlinienneigung 1,2; Fußpunkt 30°C; Heizgrenze Heizen: 18°C, Heizgrenze Absenken: 10°C, Vorhaltezeit: 90min
Folgende Tabelle zeigt Vorlauftemperaturen abhängig vom Sollwert der Raumtemperatur und der Außentemperatur (Quelle: Gemini):
| Außentemperatur | Vorlauf bei 20 °C Soll | Vorlauf bei 21 °C Soll | Vorlauf bei 22 °C Soll (ca.) |
| +10 °C (milder Herbst/Frühling) | ca. 33 °C | ca. 34,2 °C | ca. 35,4 °C |
| 0 °C (Gefrierpunkt) | ca. 45 °C | ca. 46,2 °C | ca. 47,4 °C |
| -10 °C (knackiger Frost) | ca. 57 °C | ca. 58,2 °C | ca. 59,4 °C |
Anmerkungen dazu (Quelle: Gemini):
- Jedes zusätzliche Grad Raum-Soll erhöht die Vorlauftemperatur bei Neigung 1,2 um 2,2 °C (1+1,2)
- Für einen Pellematic Condens bedeutet eine höhere Vorlauftemperatur auch eine höhere Rücklauftemperatur. Bleibt der Rücklauf unter ca. 45–50 °C, nutzt der Kessel die Abgaskondensation (Brennwerteffekt) noch voll aus. Bei -10 °C Außen und 22 °C Raum-Soll gerät der Kessel langsam an den oberen Rand des optimalen Brennwertfensters (da die Rücklauftemperatur zu hoch ist).
- Annäherung: Rücklauftemperatur (geschätzt) = Vorlauftemperatur - 10°C
Weitere Annahmen:
- Für die Berechnung des Pelletverbrauchs wird zugrunde gelegt, dass Pellets einen Heizwert von 4,9 kWh/kg haben. Daraus ergibt sich bei einer Nenn-Kesselleistung von 12 kWh ein Pelletverbrauch von 12 kW / 4,9 kWh/kg = 2,45 kg pro Stunde bei 100% Kesselleistung (Modulation).
Software Version
Die hier vorgestellten Scripte und Parameter basieren auf der Praxis mit der Pellematic Software (Bedienteil): "Touch V4.02a_P"
Monitoring zur Datenanalyse
Konzept
JSON Schnittstelle
Allgemeines
- Rate Limit
Einrichtung
Spezifikation
- https://github.com/thannaske/oekofen-json-documentation
- https://forum.iobroker.net/assets/uploads/files/1635351967656-oekoenscropt.txt
InfluxDB
InfluxDB ist eine Open-Source Datenbank speziell für Zeitreihen und wird für das Speichern und Visualisieren der ausgelesenen Daten verwendet.
Installation
Folgende Pakete sind zu installieren (hier unter openSUSE Tumbleweed):
a) InfluxDB
zypper in influxdb2 systemctl enable influxdb systemctl start influxdb
Erfolg testen:
systemctl status influxdb
b) InfluxDB Client für Python (Script)
zypper in python313-influxdb-client
Erfolg testen:
python3 -c "import influxdb_client; print('Erfolgreich installiert')"
c) Influx Client für die Kommandozeile
Der CLI Client ist nötig für bestimmte Operationen (Benutzer, Organisation, etc.), die in der Web UI nicht implementiert sind.
Client Download-Links siehe Install and use the influx CLI.
wget https://dl.influxdata.com/influxdb/releases/influxdb2-client-2.8.0-linux-amd64.tar.gz tar zxvf influxdb2-client-2.8.0-linux-amd64.tar.gz cp ./influx /usr/local/bin/
Erfolg testen:
influx version
Konfiguration
Erster Benutzer
Nach frischer Installation ist unter http://localhost:8086 der erste Benutzer, eine Organisation und ein Bucket anzulegen. Dieser Benutzer hat vollen Zugriff auf das Bucket und die Organisation entsprechend dem erzeugten Token.
Beispiel:
- Benutzer: admin
- Organisation: Privat
- Bucket: oekofen
Weiter unten wird ein weiterer Benutzer erstellt mit eigenem Token, der nur die nötigen Rechte auf das Bucket hat. Dieser Benutzer wird später nur für das Scripting genutzt, um die Daten zu füllen.
Shell
Um auf Kommandozeile den Client influx nutzen zu können, ist einmalig eine Konfiguration zu erstellen:
influx config create --config-name default --host-url http://localhost:8086 --org Privat --token TOKEN --active
Als TOKEN wird der Token verwendet, der beim Anlegen des ersten Benutzers "admin" erstellt wurde (mit den vollen Rechten).
Erfolg testen:
influx user list
- Es darf kein Fehler wie Error: failed to list users: 401 Unauthorized: unauthorized access erscheinen.
Benutzer für das Script
- Benutzer "oekofen" für das Script anlegen
influx user create -n oekofen -p PASSWORD -o Privat
- Token für Benutzer "oekofen" erstellen (nur Rechte am Bucket vergeben!) über http://localhost:8086 als Benutzer "admin" angemeldet:
Load Data -> API Tokens GENERATE API TOKEN -> Custom API Token Buckets: oekofen (read/write)
Der erstellte Token wird später im Script hinterlegt.
Organisationen
Falls irgendwann nötig, kann man Organisationen listen, löschen (geht nur über die id) und deren Mitglieder einsehen wie folgt:
influx org list influx org members list influx org delete --id 123456789
Bucket
- Bucket auf "2 Jahre" Vorhaltezeit gestellt
Load Data -> Buckets SETTINGS OLDER THAN -> Custom duration -> 2 Jahre (730 days)
Visualisierung
- Dashboard
- Flux Scripte
- Merksatz für Flux-Zeitfenster: Tage (1d), Monate (1mo) und Jahre (1y) richten sich mit dem timezone-Modul automatisch am Kalender aus. Nur Wochen (1w) benötigen wegen des Epochen-Donnerstags den Offset offset: -3d, um auf Montag zu springen.
- Offen
- Laufzeit berechnen während Modulation Brenner >0
- Laufzeit gesamt
- Laufzeit Durchschnitt pro Start
- Anzahl Brennerstarts
- Starts gesamt
- Pumpen an/aus (Puffer, Warmwasser)
- Wetter: Wolken jetzt und vorhergesagt, Temp jetzt und vorhergesagt
Backup
Offen
- InfluxDB als Docker Container
- Eigene Domain mit TLS Zertifikat für die FluxDB Web UI
Datensammlung
Basis "Ökofen Spy"
Meine Anpassungen
Einrichten
- Script
- Cronjob
- Erfolg testen
Prüfen der in der InfuxDB gespeicherten Felder über folgendes Flux-Script (Data Explorer) mit "Table" als Visualisierung:
import "influxdata/influxdb/schema" schema.fieldKeys(bucket: "oekofen", predicate: (r) => r._measurement == "oekofen")
Prüfen von Werten, z.B. im Feld "hk1_L_flowtemp_act"
from(bucket: "oekofen") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "oekofen") |> filter(fn: (r) => r["_field"] == "hk1_L_flowtemp_act") |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) |> yield(name: "mean")
Monitoring zur Alarmierung
Konzept
Uptime Kuma
Softwareprojekt
Den Code für Scripts, die InfuxDB-Visualisierung und das Uptime Kuma Monitoring findet man unter ...