Zum Inhalt springen

Ökofen Monitoring

aus www.kruedewagen.de, Homepage von Ralf und Judith Krüdewagen (Kruedewagen)
(Weitergeleitet von Ökofen Pelletheizung)

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):

Vorlauftemperaturen
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

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 ...

Siehe auch