Blog Tutorial

Homematic – Verbrauchs- und Betriebsstundenzähler für Ölheizungen

Letzte Aktualisierung am 8. Dezember 2023

Bei Ölheizungsbrennern ist es sehr einfach möglich, anhand der Parameter der Brennerdüse und der Betriebszeit des Brenners, den Heizölverbrauch zu berechnen. Mit recht wenig Aufwand lassen sich so umfangreiche Auswertungen bezüglich des Heizölverbrauchs vornehmen. In diesem Beitrag wird eine solche Lösung für das Hausautomatisierungssystem Homematic beschrieben.

Features:
Verschiedene Betriebsstunden- und Verbrauchszähler, Füllstand im Vorratstank

Abgriff des Brennerzustandes (Stand-by / Feuerung)

Um die Betriebsstunden des Brenners abzugreifen, gibt es grundsätzlich mehrere Möglichkeiten. Am genauesten ist wohl ein Sensor, der den Schaltzustand des Magnetventils der Heizölversorgung ermittelt. Bei Vernachlässigung der kurzen Aufwärmzeit kann auch Zustand des Brenners abgegriffen werden, z.B. parallel zur Brenner-Kontrollleuchte oder zum evtl. vorhandenen Betriebsstundenzähler.

Wenn man nicht in die elektrische Anlage des Brenners bzw. der Heizungssteuerung eingreifen möchte, lässt sich der Zustand des Brenners auch mit einem simplen Dämmerungsschalter (z.B. ein Bausatz) über die oftmals an der Heizung vorhandene Brenner-Kontroll-LED ermitteln. Der Helligkeitssensor des Dämmerungsschalters wird einfach in eine schwarze Gummi-LED-Fassung gesteckt, über die Brenner-Kontroll-LED gestülpt und mit Isolierband fixiert.

Homematic Zähler für Ölheizungen

Das Relais des Dämmerungsschalters schaltet den Eingang eines „Homematic Schließerkontakt-Interface für Öffner und Schließerkontakte“. Hier ist das noch ein älterer HM-SCI-3-FM, der vom Hersteller inzwischen ausgelistet wurde. Man kann aber natürlich auch ein Nachfolgemodell einsetzen. In ein Gehäuse verbaut, schaut das z.B. so aus…

Homematic Zähler für Ölheizungen

…und liefert zuverlässig (z.B. über einen Wintertag) folgendes Ergebnis (0 = Brenner ein, 1 = Brenner aus)…

Homematic Zähler

Zur Genauigkeit und ggf. automatischen Korrektur des Zählers führe ich unten im Absatz 4. „Korrektur“ mit einem Beispiel aus.

Berechnung von Betriebsstunden und Verbrauch

Der Umsetzung der Zählerskripte liegen einige im Homematic-Forum beschriebene Vorüberlegungen zugrunde.

Folgende Systemvariablen sind erforderlich…

  • „Brenner Betriebsstunden heute“, Zahl
  • „Brenner Betriebsstunden laufende Woche“, Zahl
  • „Brenner Betriebsstunden laufender Monat“, Zahl
  • „Brenner Betriebsstunden laufendes Kalenderjahr“, Zahl
  • „Brenner Betriebsstunden seit letzter Fuellung“, Zahl
  • „Brenner Verbrauch heute“, Zahl
  • „Brenner Verbrauch laufende Woche“, Zahl
  • „Brenner Verbrauch laufender Monat“, Zahl
  • „Brenner Verbrauch laufendes Kalenderjahr“, Zahl
  • „Brenner Verbrauch seit letzter Fuellung“, Zahl
  • „Brenner letzte Ausschaltzeit“, Zeichenkette
  • „Brenner letzte Einschaltzeit“, Zeichenkette
  • „Brenner Tankinhalt aktuell“, Zahl
  • „Brenner Tankinhalt bei letzter Fuellung“, Zahl
  • „Brenner Status“, Logikwert, wahr = Feuerung, falsch = Stand-by

Anstatt unmittelbar den Zustand des HM-SCI-3-FM zur Triggerung der Programme zu nutzen, empfiehlt sich ein Umweg über die Systemvariable „Brenner Status“, da der HM-SCI-3-FM im Vergleich zu einer Systemvariablen nach einem Reboot der CCU nicht den ursprünglichen Status behält, sondern bis zum nächsten Schalten immer den Zustand „geschlossen“ anzeigt.

Homematic Zähler
Homematic Zähler

Zur Datenaufzeichnung wird mit diesem Programm…

Homematic Zähler

… beim Einschalten des Brenners das folgende Skript ausgeführt…

var EinZeit= dom.GetObject("Brenner letzte Einschaltzeit");
EinZeit.State(system.Date("%F %T")); !Speichern der Einschaltzeit

… und beim Ausschalten des Brenners…

Homematic Zähler

… dieses Skript…

var AusZeit= dom.GetObject("Brenner letzte Ausschaltzeit");
var EinZeit= dom.GetObject("Brenner letzte Einschaltzeit");
var TankGes= dom.GetObject("Brenner Tankinhalt bei letzter Fuellung").Value();
var KumTankAkt= dom.GetObject("Brenner Tankinhalt aktuell");
var KumZeitF= dom.GetObject("Brenner Betriebsstunden seit letzter Fuellung");
var KumVerbrauchF= dom.GetObject("Brenner Verbrauch seit letzter Fuellung");
var KumZeitJ= dom.GetObject("Brenner Betriebsstunden laufendes Kalenderjahr");
var KumVerbrauchJ= dom.GetObject("Brenner Verbrauch laufendes Kalenderjahr");
var KumZeitM= dom.GetObject("Brenner Betriebsstunden laufender Monat");
var KumVerbrauchM= dom.GetObject("Brenner Verbrauch laufender Monat");
var KumZeitW= dom.GetObject("Brenner Betriebsstunden laufende Woche");
var KumVerbrauchW= dom.GetObject("Brenner Verbrauch laufende Woche");
var KumZeitT= dom.GetObject("Brenner Betriebsstunden heute");
var KumVerbrauchT= dom.GetObject("Brenner Verbrauch heute");

! Speichern der Ausschaltzeit
AusZeit.State(system.Date("%F %T"));

! Den Einschaltzeit String aus der Systemvariablen in ein Zeitobjekt umwandeln
time t = EinZeit.State().ToTime();

! Die aktuelle (Ausschalt)Zeit String erzeugen und in ein Zeitobjekt umwandeln
time t1 = system.Date("%F %T").ToTime();

! Das Zeitobjekt Einschaltzeit in Sekunden seit 1.1.1970 umwandeln
var x = t.ToInteger();

! Das Zeitobjekt aktuelle Zeit in Sekunden seit 1.1.1970 umwandeln
var x1 = t1.ToInteger();

!Die Differenz ist die Einschaltdauer in Stunden umgerechnet
var x0 = 0.01*(x1-x)/36;

! Die Einschaltdauer seit der letzten Füllung kumulieren = Betriebsstunden seit der letzten Füllung
var gelaufenF = x0 + KumZeitF.State();

! Die Betriebsstunden seit der letzten Füllung in die Systemvariable einstellen
KumZeitF.State (gelaufenF.Round(2));

! Berechnung von Verbrauch in Liter mit 1,87 kg/h seit der letzten Füllung
var verbrauchtF = gelaufenF * 1.87 * 1.197;

! Verbrauch seit der letzten Füllung in die Systemvariable einstellen
KumVerbrauchF.State (verbrauchtF.Round(2));

! Berechnung Tankinhalts in Litern
var tankinhalt = TankGes - verbrauchtF;

! Tankinhalt in die Systemvariable einstellen
KumTankAkt.State (tankinhalt.Round(2));

! Die Einschaltdauer im laufenden Kalenderjahr kumulieren = Betriebsstunden
var gelaufenJ = x0 + KumZeitJ.State();

! Die Betriebsstunden im laufenden Kalenderjahr in die Systemvariable einstellen
KumZeitJ.State (gelaufenJ.Round(2));

! Berechnung von Verbrauch in Liter mit 1,87 kg/h im laufenden Kalenderjahr
var verbrauchtJ = gelaufenJ * 1.87 * 1.197;

! Verbrauch im laufenden Kalenderjahr in die Systemvariable einstellen
KumVerbrauchJ.State (verbrauchtJ.Round(2));

! Die Einschaltdauer im laufenden Kalendermonat kumulieren = Betriebsstunden
var gelaufenM = x0 + KumZeitM.State();

! Die Betriebsstunden im laufenden Kalendermonat in die Systemvariable einstellen
KumZeitM.State (gelaufenM.Round(2));

! Berechnung von Verbrauch in Liter mit 1,87 kg/h im laufenden Kalendermonat
var verbrauchtM = gelaufenM * 1.87 * 1.197;

! Verbrauch im laufenden Kalendermonat in die Systemvariable einstellen
KumVerbrauchM.State (verbrauchtM.Round(2));

! Die Einschaltdauer in der laufenden Kalenderwoche kumulieren = Betriebsstunden
var gelaufenW = x0 + KumZeitW.State();

! Die Betriebsstunden in der laufenden Kalenderwoche in die Systemvariable einstellen
KumZeitW.State (gelaufenW.Round(2));

! Berechnung von Verbrauch in Liter mit 1,87 kg/h in der laufenden Kalenderwoche
var verbrauchtW = gelaufenW * 1.87 * 1.197;

! Verbrauch in der laufenden Kalenderwoche in die Systemvariable einstellen
KumVerbrauchW.State (verbrauchtW.Round(2));

! Die Einschaltdauer heute kumulieren = Betriebsstunden
var gelaufenT = x0 + KumZeitT.State();

! Die Betriebsstunden heute in die Systemvariable einstellen
KumZeitT.State (gelaufenT.Round(2));

! Berechnung von Verbrauch in Liter mit 1,87 kg/h heute
var verbrauchtT = gelaufenT * 1.87 * 1.197;

! Verbrauch in der laufenden Kalenderwoche in die Systemvariable einstellen
KumVerbrauchT.State (verbrauchtT.Round(2));

Das Ausschaltskript berechnet aus den Betriebsstunden (h ) den Verbrauch (V ) mit einer Düse der Leistung (P ) von 1.87 kg/h bei einem Betriebsdruck von 10 bar nach der folgenden Formel:

V = h * P * Umrechnungsfaktor \quad kg->l \quad Heizoel \quad (1.197)

Wichtige Anmerkungen

Das Skript muss – sofern nicht zufällig die gleiche Düse und der gleiche Betriebsdruck verwendet werden – auf die eigenen Werte angepasst werden. Sonst wird der Zähler den Ölverbrauch nicht korrekt berechnen.
Hierbei bitte daran denken, die Werte in allen Zeitraumzählern anzupassen (Konstante „1.87 * 1.197“ in den Zeilen 41, 59, 71, 83 und 95).
Wer diese Konstante öfter mal anpasst, kann sich dafür alternativ auch eine Systemvariable anlegen.

Beim Einschalten und während des laufenden Brenners bleibt die Anzeige des Zählers unverändert…

Homematic Zähler für Ölheizungen
Homematic Zähler für Ölheizungen

Erst beim Ausschalten des Brenners triggert das Ausschaltskript, das die Zählerstände aktualisiert…

Homematic Zähler für Ölheizungen
Homematic Zähler für Ölheizungen

Anwendungsbeispiele

In meiner aio NEO Ansicht, ist der Zähler in die Statusübersicht der Heizungsanlage integriert…

Homematic Zähler für Ölheizungen

In der Darstellung des CCU-Historian lassen sich die aufgezeichneten Daten anschaulich auswerten…

Verbrauch
Verbrauch

Nach einem Export der CSV-Rohdaten aus dem CCU-Historian können die Daten beliebig weiterverarbeitet und dargestellt werden, z.B. mithilfe einer Tabellenkalkulation…

Verbrauch
Monatsverbrauch Heizöl inkl. Brauchwassererwärmung
Verbrauch
Täglicher Heizölverbrauch inkl. Brauchwassererwärmung (Mittelwerte über drei Jahre)
Verbrauch
Täglicher Leistungsbedarf inkl. Brauchwassererwärmung (Mittelwerte über drei Jahre)
Verbrauch
Wie oben mit mittlerer Tagestemperatur

Reset

Der Reset des Tankungszählers kann manuell nach dem Tanken erfolgen, z.B. mit einem Schlüsselschalter, der in das o.g. Auswertegehäuse eingebaut ist und über einen freien Kanal des HM-SCI-3-FM das Reset-Programm triggert. Alternativ kann man das Reset-Programm natürlich auch über andere Wege starten…

Homematic Zähler

Das Programm setzt den Füllstand des Tanks automatisch auf 2800l. Dieser Wert sollte auf den eigenen realistischen Wert angepasst werden. Der genaue Wert nach der Tankung kann danach manuell verändert werden, z.B. über die „Setzen-Funktion“ in WebMatic…

Homematic Zähler
Homematic Zähler

Ich empfehle, die Zeitraumzähler gemeinsam mit nur einem Programm/Skript zurücksetzen. Wie das geht, habe ich in dem verlinkten Tutorial gesondert erläutert.

Wer möchte, kann die Zeitraumzähler – analog zum Vorgehen beim Tankungszähler – aber auch einzeln mit einem per Zeitmodul ausgelösten Programm auf "0" zurück setzen.

Hier ein Beispiel für den Tageszähler…

Homematic Zähler

Auch der Reset-Verlauf lässt sich im CCU-Historian sehr schön verfolgen…

Verbrauch
Verbrauch


Korrektur

Korrekturfaktor

Je nachdem, an welcher Stelle der Heizung bzw. in welcher individuellen Art und Weise die Ein- und Ausschaltzeitpunkte des Brenners abgegriffen werden, kann es durch die zeitliche Differenz von Abgriff und tatsächlichem Ölfluss Abweichungen geben.

Bei der hiesigen Anordnung hat der Vergleich mit dem anhand der Rechnungen über einen Zeitraum von acht Jahren ermittelten Ölverbrauch gezeigt, dass der reale Verbrauch um 5,14% größer als der berechnete Verbrauch ist.

Dieser Korrekturfaktor kann in eine spätere externe Auswertung einbezogen oder direkt in das Skript aufgenommen werden, sofern bereits hinreichende Langzeitdaten vorliegen.

Der Korrekturfaktor (K) für das Skript errechnet sich wie folgt…

K = \frac{Jahresverbrauch \quad Rechnungen}{Jahresverbrauch \quad Zaehler}

Mit den hier vorliegenden Daten ergibt sich der Faktor…

K = \frac{1905,62 \quad l}{1812,54 \quad l} = 1,0514

…, welcher bei allen Zeitraumzählern im Ausschaltskript entsprechend zu ergänzen ist…

! Beispiel Verbrauch im laufenden Kalenderjahr mit Aufschlag 5,14 Prozent
var verbrauchtJ = gelaufenJ * 1.87 * 1.197 * 1.0514;

Auch hier kann bei Bedarf für den Korrekturfaktor eine Systemvariable angelegt werden.

Um die Daten später Jahres-weise auswerten zu können, empfiehlt es sich, den Korrekturfaktor zum Jahreswechsel einzupflegen oder korrigierte und unkorrigierte Werte parallel aufzuzeichnen.

Mit dem folgenden Ausschaltskript wird letzteres vorgenommen sowie der korrigierte Verbrauch zusätzlich mit dem Heizwert von Heizöl 9,8 kWh/l in kWh umgerechnet und gespeichert…

var AusZeit= dom.GetObject("Brenner letzte Ausschaltzeit");
var EinZeit= dom.GetObject("Brenner letzte Einschaltzeit");
var TankGes= dom.GetObject("Brenner Tankinhalt bei letzter Fuellung").Value();
var FaktorK= dom.GetObject("Brenner Korrekturfaktor").Value();
var KumTankAkt= dom.GetObject("Brenner Tankinhalt aktuell");
var KumTankAktk= dom.GetObject("Brenner Tankinhalt aktuell korrigiert");
var KumZeitF= dom.GetObject("Brenner Betriebsstunden seit letzter Fuellung");
var KumVerbrauchF= dom.GetObject("Brenner Verbrauch seit letzter Fuellung");
var KumVerbrauchFk= dom.GetObject("Brenner Verbrauch seit letzter Fuellung korrigiert");
var KumVerbrauchFkk= dom.GetObject("Brenner Verbrauch seit letzter Fuellung korrigiert kWh");
var KumZeitJ= dom.GetObject("Brenner Betriebsstunden laufendes Kalenderjahr");
var KumVerbrauchJ= dom.GetObject("Brenner Verbrauch laufendes Kalenderjahr");
var KumVerbrauchJk= dom.GetObject("Brenner Verbrauch laufendes Kalenderjahr korrigiert");
var KumVerbrauchJkk= dom.GetObject("Brenner Verbrauch laufendes Kalenderjahr korrigiert kWh");
var KumZeitM= dom.GetObject("Brenner Betriebsstunden laufender Monat");
var KumVerbrauchM= dom.GetObject("Brenner Verbrauch laufender Monat");
var KumVerbrauchMk= dom.GetObject("Brenner Verbrauch laufender Monat korrigiert");
var KumVerbrauchMkk= dom.GetObject("Brenner Verbrauch laufender Monat korrigiert kWh");
var KumZeitW= dom.GetObject("Brenner Betriebsstunden laufende Woche");
var KumVerbrauchW= dom.GetObject("Brenner Verbrauch laufende Woche");
var KumVerbrauchWk= dom.GetObject("Brenner Verbrauch laufende Woche korrigiert");
var KumVerbrauchWkk= dom.GetObject("Brenner Verbrauch laufende Woche korrigiert kWh");
var KumZeitT= dom.GetObject("Brenner Betriebsstunden heute");
var KumVerbrauchT= dom.GetObject("Brenner Verbrauch heute");
var KumVerbrauchTk= dom.GetObject("Brenner Verbrauch heute korrigiert");
var KumVerbrauchTkk= dom.GetObject("Brenner Verbrauch heute korrigiert kWh");

! Speichern der Ausschaltzeit
AusZeit.State(system.Date("%F %T"));

! Den Einschaltzeit String aus der Systemvariablen in ein Zeitobjekt umwandeln
time t = EinZeit.State().ToTime();

! Die aktuelle (Ausschalt)Zeit String erzeugen und in ein Zeitobjekt umwandeln
time t1 = system.Date("%F %T").ToTime();

! Das Zeitobjekt Einschaltzeit in Sekunden seit 1.1.1970 umwandeln
var x = t.ToInteger();

! Das Zeitobjekt aktuelle Zeit in Sekunden seit 1.1.1970 umwandeln
var x1 = t1.ToInteger();

!Die Differenz ist die Einschaltdauer in Stunden umgerechnet
var x0 = 0.01*(x1-x)/36;

! Die Einschaltdauer seit der letzten Füllung kumulieren = Betriebsstunden seit der letzten Füllung
var gelaufenF = x0 + KumZeitF.State();

! Die Betriebsstunden seit der letzten Füllung in die Systemvariable einstellen
KumZeitF.State (gelaufenF.Round(2));

! Berechnung von Verbrauch mit 1,87 kg/h seit der letzten Füllung
var verbrauchtF = gelaufenF * 1.87 * 1.197;
var verbrauchtFk = gelaufenF * 1.87 * 1.197 * FaktorK;
var verbrauchtFkk = gelaufenF * 1.87 * 1.197 * FaktorK * 9.8;

! Verbrauch seit der letzten Füllung in die Systemvariable einstellen
KumVerbrauchF.State (verbrauchtF.Round(2));
KumVerbrauchFk.State (verbrauchtFk.Round(2));
KumVerbrauchFkk.State (verbrauchtFkk.Round(2));

! Berechnung Tankinhalts in Litern
var tankinhalt = TankGes - verbrauchtF;
var tankinhaltk = TankGes - verbrauchtFk;

! Tankinhalt in die Systemvariable einstellen
KumTankAkt.State (tankinhalt.Round(2));
KumTankAktk.State (tankinhaltk.Round(2));

! Die Einschaltdauer im laufenden Kalenderjahr kumulieren = Betriebsstunden
var gelaufenJ = x0 + KumZeitJ.State();

! Die Betriebsstunden im laufenden Kalenderjahr in die Systemvariable einstellen
KumZeitJ.State (gelaufenJ.Round(2));

! Berechnung von Verbrauch mit 1,87 kg/h im laufenden Kalenderjahr
var verbrauchtJ = gelaufenJ * 1.87 * 1.197;
var verbrauchtJk = gelaufenJ * 1.87 * 1.197 * FaktorK;
var verbrauchtJkk = gelaufenJ * 1.87 * 1.197 * FaktorK * 9.8;

! Verbrauch im laufenden Kalenderjahr in die Systemvariable einstellen
KumVerbrauchJ.State (verbrauchtJ.Round(2));
KumVerbrauchJk.State (verbrauchtJk.Round(2));
KumVerbrauchJkk.State (verbrauchtJkk.Round(2));

! Die Einschaltdauer im laufenden Kalendermonat kumulieren = Betriebsstunden
var gelaufenM = x0 + KumZeitM.State();

! Die Betriebsstunden im laufenden Kalendermonat in die Systemvariable einstellen
KumZeitM.State (gelaufenM.Round(2));

! Berechnung von Verbrauch mit 1,87 kg/h im laufenden Kalendermonat
var verbrauchtM = gelaufenM * 1.87 * 1.197;
var verbrauchtMk = gelaufenM * 1.87 * 1.197 * FaktorK;
var verbrauchtMkk = gelaufenM * 1.87 * 1.197 * FaktorK * 9.8;

! Verbrauch im laufenden Kalendermonat in die Systemvariable einstellen
KumVerbrauchM.State (verbrauchtM.Round(2));
KumVerbrauchMk.State (verbrauchtMk.Round(2));
KumVerbrauchMkk.State (verbrauchtMkk.Round(2));

! Die Einschaltdauer in der laufenden Kalenderwoche kumulieren = Betriebsstunden
var gelaufenW = x0 + KumZeitW.State();

! Die Betriebsstunden in der laufenden Kalenderwoche in die Systemvariable einstellen
KumZeitW.State (gelaufenW.Round(2));

! Berechnung von Verbrauch mit 1,87 kg/h in der laufenden Kalenderwoche
var verbrauchtW = gelaufenW * 1.87 * 1.197;
var verbrauchtWk = gelaufenW * 1.87 * 1.197 * FaktorK;
var verbrauchtWkk = gelaufenW * 1.87 * 1.197 * FaktorK * 9.8;

! Verbrauch in der laufenden Kalenderwoche in die Systemvariable einstellen
KumVerbrauchW.State (verbrauchtW.Round(2));
KumVerbrauchWk.State (verbrauchtWk.Round(2));
KumVerbrauchWkk.State (verbrauchtWkk.Round(2));

! Die Einschaltdauer heute kumulieren = Betriebsstunden
var gelaufenT = x0 + KumZeitT.State();

! Die Betriebsstunden heute in die Systemvariable einstellen
KumZeitT.State (gelaufenT.Round(2));

! Berechnung von Verbrauch mit 1,87 kg/h heute
var verbrauchtT = gelaufenT * 1.87 * 1.197;
var verbrauchtTk = gelaufenT * 1.87 * 1.197 * FaktorK;
var verbrauchtTkk = gelaufenT * 1.87 * 1.197 * FaktorK * 9.8;

! Verbrauch in der laufenden Kalenderwoche in die Systemvariable einstellen
KumVerbrauchT.State (verbrauchtT.Round(2));
KumVerbrauchTk.State (verbrauchtTk.Round(2));
KumVerbrauchTkk.State (verbrauchtTkk.Round(2));

Natürlich müssen die zusätzlich erforderlichen Systemvariablen ergänzt werden…

  • Brenner Korrekturfaktor
  • Brenner Tankinhalt aktuell
  • Brenner Tankinhalt aktuell korrigiert
  • Brenner Verbrauch seit letzter Fuellung korrigiert
  • Brenner Verbrauch seit letzter Fuellung korrigiert kWh
  • Brenner Verbrauch laufendes Kalenderjahr korrigiert
  • Brenner Verbrauch laufendes Kalenderjahr korrigiert kWh
  • Brenner Verbrauch laufender Monat korrigiert
  • Brenner Verbrauch laufender Monat korrigiert kWh
  • Brenner Verbrauch laufende Woche korrigiert
  • Brenner Verbrauch laufende Woche korrigiert kWh
  • Brenner Verbrauch heute korrigiert
  • Brenner Verbrauch heute korrigiert kWh

Außerdem sind die Anpassungen beim Reset der jeweiligen Zeitraumzähler zu berücksichtigen. Hier am Beispiel des Tankungszählers…

Homematic Zähler

Größere Abweichungen nach einem Crash

Falls die Homematic-CCU einmal ausfällt und ein „Not-Reboot“ durchgeführt werden muss, kommt der Zähler mit alten Werten (Zeitpunkt der letzten automatischen Sicherung) wieder hoch. Lässt man den Zähler einfach weiterlaufen, kann es passieren, dass die gesamte Zeit, seitdem der Brenner zuletzt eingeschaltet wurde, als Betriebsdauer berechnet wird. In jedem Fall werden sich ohne Eingriff ungenaue Werte einschleichen.

Hier ein Workaround, was nach einem „Not-Reboot“ zu tun ist, damit der Zähler wieder auf die richtigen Werte kommt:

  1. Die SysVar „Brenner Status“ manuell auf „Feuerung“ setzen (z.B. mit WebMatic) -> Die SysVar „Brenner letzte Einschaltzeit“ wird auf die aktuelle Zeit gesetzt
Homematic Zähler
  1. Die SysVar „Brenner Status“ manuell auf „Stand-by“ setzen -> Die SysVar „Brenner letzte Ausschaltzeit“ wird auf die aktuelle Zeit gesetzt, das Script berechnet jetzt irgendwelche Werte.
Homematic Zähler
  1. Bei den folgenden SysVar manuell die letzten aufgezeichneten Werte setzen. Als Quelle kann man z.B. die Aufzeichnungen des CCU-Historian nehmen. Zur Not muss man die Betriebszeiten der letzten Sicherung (Anzeige nach dem Reboot) zugrunde legen und hochrechnen.
  • Brenner Betriebsstunden heute
  • Brenner Betriebsstunden laufende Woche
  • Brenner Betriebsstunden laufender Monat
  • Brenner Betriebsstunden laufendes Kalenderjahr
  • Brenner Betriebsstunden seit letzter Fuellung
  • Wenn nicht kurz vor dem Absturz getankt wurde, sollte die SysVar „Brenner Tankinhalt bei letzter Fuellung“ noch stimmen, bitte kontrollieren und ansonsten korrigieren.

Die folgenden Werte müssen nicht verändert werden, da sie anschließend automatisch korrekt errechnet werden:

  • Brenner Verbrauch heute
  • Brenner Verbrauch laufende Woche
  • Brenner Verbrauch laufender Monat
  • Brenner Verbrauch laufendes Kalenderjahr
  • Brenner Verbrauch seit letzter Fuellung
  • Brenner Tankinhalt aktuell
  1. Die SysVar „Brenner Status“ manuell auf „Feuerung“ setzen.
  2. Direkt im Anschluss die SysVar „Brenner Status“ manuell auf „Stand-by“ setzen.
  3. Jetzt sollten alle Werte wieder stimmen.

Zum korrespondierenden Beitrag im…

HomeMatic-Forum



Bitte beachten...

SMART WOHNEN in Stern's Haus ist ein rein privates, nicht kommerzielles Projekt. Meine Hinweise, Anleitungen, Schaltungen und Software werden so angeboten, „wie sie sind“, Support kann ich nur im Rahmen meiner begrenzten Freizeit leisten, hierfür bitte ich um Verständnis.
Die Verwendung meiner Hinweise, Anleitungen, Schaltungen und Software erfolgt auf eigenes Risiko. Ich übernehme hierfür keinerlei Gewährleistung bzw. Haftung! Für die Einhaltung der einschlägigen technischen Vorschriften ist jeder Anwender selbst verantwortlich!
Creative Commons Lizenzvertrag
Copyright © Jens-Peter Stern | SMART WOHNEN in Stern's Haus | sternshaus.de
  1. Ein toller Beitrag „HomeMatic – Verbrauchs- und Betriebsstundenzähler für Ölheizungen“.
    Ich werde das versuchen umzusetzen. Mein Ölbrenner ist mit einem normalen Stecker an einer Steckdose angeschlossen, ich werde den neuen “ HomeMatic Zwischenstecker mit Leistungsmessung “ einsetzen um die Betriebszeiten zu erfassen.(habe ich gerade bestellt)
    Wie setze ich die Pushover Mitteilungen in Prowl Meldungen um, können sie mir bitte ein Beispiel dazu mailen?
    Ich nutze Prowl Meldungen z.B. wenn die Alarmanlage scharf geschaltet ist, aber wie ich einen Systemzustand als Meldung versende ist mir nicht ganz klar. Bin noch recht neu auf dem Gebiet.
    LG
    Jürgen

    • Hallo Jürgen,
      danke für das Feedback. Die Idee mit dem neuen leistungsmessenden Zwischenstecker ist sicher eine gute Alternative, wenn der Brenner über eine Steckdose angeschlossen ist. Um eine möglichst genaue Messung hinzubekommen sollte der Leistungsmesser so abgestimmt werden, dass er nur bei Betrieb der Pumpe (Ölfluss) eingeschaltet ist. Ich habe dieses Gerät zwar (noch) nicht aber das lässt sich bestimmt irgendwie einstellen.

      Über eine Rückmeldung zu den diesbezüglichen Erfahrungen würde ich mich freuen.

      Zum Umschreiben der Skripte auf Prowl kann ich leider nicht viel beitragen, da ich keine iOS-Geräte verwende und daher Prowl nicht wirklich kenne. Das müsste aber irgendwie funktionieren. Ich empfehle, hierzu mal im HomeMatic-Forum nach “prowl” und “wget” zu suchen ( http://homematic-forum.de/forum/search.php?keywords=prowl+wget ).

      Aber was spricht gegen die Nutzung von Pushover parallel zu Prowl? Ich kenne einige Apple-Nutzer, die zwischenzeitlich komplett von Prowl auf Pushover umgestiegen sind.

      Grüße
      Jens

  2. Hallo Jens.
    Danke für die schnelle Anwort, also Prowl habe ich schon für einige Meldungen auf 2 CCU´s in gebrauch, aber ich versuche mal mich mit Pushover anzufreunden.
    Also, zum Zwischenstecker, man wird genau über den gezogenen Strom informiert, d.H. die Vorwärmung, Öffnung des Ventils und wenn die Zündung ausschaltet, ist ganz interessant, ich werde das noch genauer beobachten, aber man kann ja einstellen bei welchen Werten der Brenner auf Feuerung geht. Ich habe das Gerät jetzt erst seit 1 Tag in Gebrauch.
    Ich muss mir auch die Scripte mal genauer ansehen,Betriebsstunden, heute, laufende Woche und Monat stehen auf 0, während sie für laufendes Jahr und seit letzter Füllung korrekt angezeigt werden??!!
    Na mal sehen ob ich den Fehler alleine finde, einen schönen Tag noch.
    Jürgen

  3. Hallo Jens,
    mir glühen die Augen,
    ich bekomme es einfach nicht in den Griff.
    Woran kann es liegen, das die Betriebsstunden heute,laufende Woche und laufender Monat, auf NULL stehen, aber in laufendes Kalenderjahr und seit letzter Füllung jeweils 0,53 Std. stehen. Tank aktuell, sowie seit letzter Füllung, sind auch ok, aber beim Rest tut sich nichts.
    Ich habe die scripte mehrmals eingefügt, ich weis nicht weiter, die variablen sind auch ok, die Bezeichnungen habe ich zur Sicherheit von der Webseite in die Variable kopiert, mehrmals.
    Die CCU habe ich auch schon mehrmals neu gestartet, ohne Erfolg.
    Ich hoffe du hast noch einen Tipp für mich.
    Liebe Grüße
    Jürgen

    • Hallo, ich schaue mir das mal an und melde mich. Stelle dein Problem doch auch mal im Homematic-Forum im passenden Beitag dar, da können dir die anderen User womöglich schneller helfen, bis dann.
      Jens

  4. Jürgen

    Hallo Jens,
    ich habe jetzt an der CCU einen „hardware reset“ gemacht.
    Jetzt läuft alles super.
    Vielen Dank für das tolle Script und die schnellen Antwoten.
    Einen schönen Maifeiertag.
    Jürgen

    • Hallo Jürgen,
      schön, dass es nun auch bei dir funktioniert. Manchmal bewirkt ein „Reboot“ wahre Wunder.
      Weiterhin viel Spaß und Erfolg beim Hausautomatisieren.
      Liebe Grüße
      Jens

  5. Hi,
    dieses Script reagiert erst ab einer Zeitdifferenz von 36 Sekunden Brennerlaufzeit. Ist das ausreichend genau für eine Restmengenberechnung des Öls?
    danke

    • Hallo Alexander,

      normalerweise sollten Ein- und Ausschaltskript unmittelbar nach der Änderung der SysVar ablaufen und hierzu jeweils deutlich weniger als 36 Sekunden benötigen. Beim manuellen Umschalten der SysVar, z.B. in WebMatic, kann man das sehr schön sehen.

      Ich gehe daher davon aus, dass sich die 36 Sekunden nicht auf die Skriptlaufzeit sondern auf die individuellen Gegebenheiten der Heizungsanlage bis zum Umschalten der SysVar beziehen.

      Wenn die Verzögerung von 36 Sekunden sowohl beim Ein- als auch beim Ausschalten der SysVar auftreten, hebt sich das in der Berechnung wieder auf. Sollte sie z.B. nur beim Ein- nicht aber Ausschalten auftreten, kann es helfen, zur Feinabstimmung die SysVar nicht sofort sondern um den gleichen Wert verzögert wieder auszuschalten.

      Allgemein ist es so, dass sehr kurze Brennerlaufzeiten über einen langen Betrieb zu größeren Ungenauigkeiten führen können. Da muss man selbst entscheiden, wie weit z.B. plus minus 50 Liter bei einem 3000 Liter Tank akzeptabel sind. Mein Brenner läuft immer mindestens einige Minuten, da habe ich diesbezüglich keine Probleme festgestellt. Ich habe dieses System jetzt seit knapp zwei Jahren im Betrieb und war beim letzten Tanken selbst überrascht wie genau es über die Zeit berechnet hat.

      Grüße
      Jens

  6. Coole Sache. Habe ich bei mir umgesetzt und funktioniert.
    Meiner Meinung nach sollte im berechnungsteil angefangen werden wenn einer der beiden Datum Werte 0 ist.
    Ich hatte gestern Abend innerhalb 20 Minuten plötzlich über 4000 betriebsstunden.
    Genauso würde ich die Datum Systemvars am Ende auf null setzen falls das System einen schaltzustand verpasst.
    Mfg Michael

    • Hallo Michael,

      was genau meinst du damit?

      Die Datumswerte können doch normalerweise eigentlich nicht NULL sein, da sie ja im Skript von der CCU gespeichert werden, wenn der Einschalt- bzw. Ausschaltimpuls kommt (ausgenommen natürlich, die CCU ist stehen geblieben, dann muss man den Zähler mit dem im Hinweis zum zum „Not-Reboot“ beschriebenen Vorgehen korrigieren).

      Was im normalen Betrieb theoretisch passieren kann, ist dass ein Impuls mal nicht in der CCU ankommt und daher falsche Betriebszeiten berechnet werden (bei mir ist das in den knapp drei Jahren, seit ich den Zähler nutze aber noch nicht spürbar aufgetreten). Aber auch in diesem Fall dürften die Datumswerte nicht NULL aufweisen.

      Würde mich mal interessieren, was bei dir dazu führt, dass die Datumswerte auf NULL gesetzt werden.

      Liebe Grüße Jens

  7. Franz Schuscha

    Hallo Jens,
    Vielen Dank für diesen Beitrag. Ich versuche es gerade umzusetzen nur leider wird die Ausschaltzeit nicht in die System Variable geschrieben.
    Wenn ich folgendes händisch bei „Script testen“ einfüge setzt er mir komischer Weise die Ausschaltzeit.
    var AusZeit= dom.GetObject(„Brenner letzte Ausschaltzeit“);
    ! Speichern der Ausschaltzeit
    AusZeit.State(system.Date(„%F %T“));
    Wenn ich dein ganzen Script einsetze wird nichts in die SysVar geschrieben.
    Hast du vielleicht eine Idee ?

    Mit freundlichen Grüßen
    Franz

    • Hallo Franz,
      das ist ungewöhnlich. Ich kann mir dazu nur vorstellen, dass das Skript nicht durchläuft, weil irgendwo ein Fehler reingekommen ist. Vielleicht hat sich beim Kopieren oder Editieren ein nicht sichtbarer Zeilenumbruch eingeschlichen, das gibt es schon mal.

      Ich würde das Skript mal mit dem Erweiterten Skript Parser (siehe Forum oder Homematic-Inside) testen und untersuchen, an welcher Stelle es stehen bleibt.

      Ich kann auch gerne mal ein funktionierendes Skript per Mail als Textdatei übermitteln, wenn das hilft.

      Liebe Grüße Jens

  8. Hallo Jens,
    zunächst einmal auch von mir herzlichen Dank für deine Veröffentlichungen und die viele Arbeit, die du dir für die Homematic – Community gemacht hast.
    Ich habe auf der Basis deiner Veröffentlichung und der Diskussion im Forum dein Skript in einer stark verkürzten Version im Einsatz. Die Historie der Daten (also die Wochen-, Monats- und Jahresanzeigen generiere ich über CCU-Historian, so dass ich lediglich die Tageswerte als Systemvariablen benötige. Alles funktioniert soweit gut, bis auf den Fehler, dass jeweilige Verbrauch nicht vom Heizölbestand (Brenner Tankinhalt aktuell) abgezogen wir. Könntest du mir auf die Sprünge helfen?
    Hier mein benutztes Skript:

    gelöscht von sTeRn AV
    

    Ich würde mich über eine Rückmeldung freuen!
    L.G
    Olaf

    • Hallo Olaf,

      schön, dass ich dir „hinter den Kulissen“ mit deinem speziellen Problem helfen konnte und es jetzt bei dir funktioniert.

      Liebe Grüße Jens

  9. Genau „das“ wollte ich dir auch gerade schreiben… 🙂
    Also herzlichen Dank nochmals!
    LG
    Olaf

  10. Holger Goth

    Hallo Jens,
    habe meine Gasheizung mit disem Script am laufen.
    Mir geht es darum das ich einfach weiß wann und wie oft sich mein Brenner einschaltet.
    Als Schnittstelle habe ich das Kontaktinterface :
    Homematic 092068 3-Kanal-Funk-Schließerkontakt-Interface
    Dieser Kontakt bekommt sofort die Meldung offen oder geschlossen und habe dies auch in die Scripte richtig eingefügt.
    Den Ölverbrauch habe ich natürlich entfernt um nur Zeitdaten zu erfassen.
    Jedoch hab ich auch ein Problem mit der Ein und Auschaltzeit.
    Die Erfassung des Start´s kommt etliche Sekunden zu spät und die Auschaltzeit ebenso…..
    Wird das Interface nicht im Sekundenintervall abgefragt ?
    Würde es was bringen wenn ich bei allen Scripten anstatt Auslösen bei Änderung die Option Aulösen bei Aktualisierung nehme ?
    paar Sekunden sind nicht so schlimm aber teilweise geht es in die Minutenbereiche bei mir.
    Das Interface sitzt ein paar Meter neben meiner CCU und somit eine einwandfreie Funkübertragung.
    Vlt hast du mir einen Tipp….

    Danke Gruß Holger

    • Holger Goth

      Noch als Nachtrag die Gesamt Brennerstunden heute passen.
      Als Beispiel heute Abend lief mein Brenner 1 Stunde. Was auch passt jedoch wenn ich die Ein und Auschaltzeiten vergleiche komme ich auf ca 20 bis 30 Minuten.

    • Hallo Holger,

      auch ich nutze den von dir verwendeten HM-SCI-3-FM, habe aber nicht das Phänomen, wie du es beschreibts.

      Der HM-SCI-3-FM wird nicht abgefragt sondern sendet aktiv seinen Zustand, wenn einer der angeschlossenen Kontakte seinen Zustand ändert. Dann sollte das eigentlich sofort an die CCU übertragen werden. Wenn du ausschließen kannst, dass der Anschuss am HM-SCI-3-FM möglicherweise defekt ist (keine „Wackelkontakte“ etc.), kann es entweder an der Funkstrecke liegen (auch ggf. zu nah an der CCU?, sonstige Störquellen?) oder die CCU ist eventuell solange mit irgend etwas anderem beschäftigt.

      Ich verstehe das doch richtig, dass auch schon das Umschalten der SysVar „Brennerstatus“ verzögert ist? Falls das zeitverzugslos klappt, Ein- und Ausschaltskript aber verzögert abgearbeitet werden, liegt das definitiv an Vorgängen innerhalb der CCU.

      Auslösen bei Aktualisierung statt Auslösen bei Änderung kannst du mal versuchen. Ich glaube aber nicht, dass das wirklich was bringen wird.

      Wenn die Verzögerung von Einschalten und Ausschalten immer gleich ist, ist das für die Auswertung übrigens unschädlich, weil ja immer nur die Differenz zu Grunde gelegt wird und diese dann gleich bleibt.

      Liebe Grüße Jens

      • Auch noch ein Nachtrag: Wenn alles nichts hilft, die CCU aber – wie du schreibst – im gleichen Raum ist, könntest du alternativ überlegen, an Stelle des HM-SCI-3-FM z.B. ein „Homematic 092011 Wired RS485 I/O-Modul 12 Eingänge 14 Ausgänge“ oder einen Homeduino zu verwenden.
        Grüße Jens

  11. Holger Goth

    wäre eine Überlegung wert Jens ,
    danke aber wieso stimmt dann meine Gesamtlaufzeit vom Brenner ?
    Grüße und ein schönes Wochenende….

    • Guten Morgen Holger,
      das Skript macht ja nichts anderes als die Differenz zwischen Aus- und Einschaltzeitpunkt zu berechnen und diese in den einzelnen Zeitraumzählern aufzusummieren.
      Wenn du mit dem Skript 60 Minuten und manuell maximal 30 Minuten (bei gleichem Betrachtungsfenster) ermittelt hast, wurde der entweder Zähler nicht zurück gesetzt oder mit deinem Skript stimmt etwas grundsätzlich nicht. Hast du in der Berechnung der Zeiten etwas verändert?
      Wenn du magst, kannst du mir dein Skript auch mal per Mail schicken, dann sehe ich gerne mal drüber.
      Liebe Grüße Jens

  12. Hallo Jens,
    tolle Beschreibung und Umsetzung. Meinst du, man könnte einen Fensterkontakt für diese Anwendung nutzen ? Vielleicht funktioniert sogar der optische Fensterkontakt mit der LED am Brenner ? Schonmal getestet ?

    Gruß
    Sascha

    • Hallo Sascha,
      grundätzlich kannst du jeden Sensor verwenden, die Frage ist nur, von wo und wie du den Trigger von der Heizung in den Sensor bekommst. Einen magnetischen Tür-/Fensterkontakt kann ich mir da bei keinem mir bekannten Heizungssystem vorstellen. Ob bei einer Heizung mit LED ein optischer Kontakt funktioniert, müsste man mal testen, das wäre aber meines Erachtens reiner Zufall und ich glaube eigentlich nicht, dass es funktionieren wird. Ich selbst besitze keinen solchen Sensor und kann es daher leider nicht ausprobieren.
      Liebe Grüße Jens

  13. Hi Jens,
    mit dem Fensterkontakt meinte ich diesen umzubauen um daran den Dämmerungssensor anzuschließen (https://hausautomatisierung.rainer-grundel.de/2014/07/video-zum-umbau-eines-fenstersensors/) um das als alternativ günstigere Lösung zu nehmen statt des HM-SCI-3-FM.

    Viele Grüße

    Sascha

    • Hallo Sascha,
      achso, das müsste funktionieren, der Sensor kann ja auch die beiden Zustände dauerhaft anzeigen. Du kannst dich ja mal melden, falls du es ausprobierst, ob es geklappt hat.
      Liebe Grüße Jens

  14. Hi Jens,

    habe es jetzt mit einem WeMos und einem Lichtsensor gelöst. Der WeMos schreibt direkt in die Variable „Brenner-Status“ in der CCU. Danke für das Skript, das hat sehr geholfen

    • Hallo Sascha,
      schön, dass alles funktioniert. Den WeMos D1 zum Abgriff zu nutzen ist eine gute und zeitgemäße Idee. Wäre eine Alternative, wenn mein Relaismodul mal kaputt geht.
      Liebe Grüße Jens

  15. Hallo Jens,

    ich brauche bitte deinen Rat. Habe seit Anfang des Jahres nach deinem Tutorial den Betriebsstundenzähler in Berieb genommen. Hat auch nach anfänglichen Schwierigkeiten (bei denen Du mir sehr geholfen hast auch bis jetzt wunderbar funktioniert), Jetzt habe ich auf RaspberryMatic umgestellt, seit diesem Zeitpunkt funktioniert es nicht mehr richtig. Das Ausschaltscript setzt alle Werte auf den Verbrauch der aus der letzten Einschalt und Ausschaltzeit errechnet wird/wurde. Er summiert die errechneten Betriebsstunden nicht mehr auf die Werte auf. Sonderns setzt alle Werte Betriebsstunden/Verbrauch auf den gleichen Wert. Was läuft schief?

    Ich hoffe Du kannst mir helfen.

    Vielen Dank!

    Rico

    • Hallo zusammen, ich nutze auch dieses tolle Programm seit diesem Frühjahr, vielen Dank für die tolle Vorlage. Seit einigen Tagen habe ich ein ähnliches Problem wie Rico (im Kommentar vom 18.07.17). Und zwar läuft der Brenner eine gewisse Zeit und dann wird der Wert „Brenner Betriebsstunden Heute“ auf irgendeinen Wert gesetzt (zb. 0,35 Stunden) und alle anderen Werte der Betriebsstunden + die Verbräuche werden auf den selben Wert (zb. 0,35) gesetzt. Kann uns hiermit jemand weiterhelfen? Vielen Dank! Grüße Georg

      • Hallo Georg,
        ich bin gerade dabei, mit Rico das Problem etwas einzugrenzen. Nutzt du auch einen RaspberryPi mit RasperryMatic an Stelle einer CCU?
        Grüße Jens

        • Hallo Jens, nein habe keinen Rasperry im einsatz. Nutze die CCU2 ganz normal… das einzigste was von mir geändert wurde ist das Einspielen des Updates 2.29.18 vom 20.07. Also es verhält sich folgendermaßen: Sobald der Brenner ausschaltet wird die letzte Laufzeit als alle Werte übernommen…es wird also gar nichts mehr berechnet….bis zum nächsten Brennereinsatz…dann wird diese Laufzeit übernommen….

          • Es scheint als seien die Aktivitäten zur Verbesserung der Logikschicht ursächlich, dass das Skript ab der Firmware 2.29.18 zumindest in den Logikschicht-Versionen „Standard“ und „Community“, nicht mehr läuft.

            Entgegen meines ursprünglichen Verdachtes, dass die Zeitspannenberechnung nicht mehr funktioniert, war das Problem sehr viel trivialer und es reichten einige marginale Anpassungen im Ausschaltskript, um den Zähler unter der Firmware 2.29.18 wieder zum Laufen zu bekommen.

            Bitte das o.a., aktualisierte Ausschaltskript verwenden, das Einschaltskript kann belassen werden.

            Ich habe das Skript mit einer CCU2 in den in den Logikschicht-Versionen „Standard“ und „Community“ getestet, ob damit auch das RaspberryMatic-Problem gelöst ist, müssten Anwender desselben bitte mal prüfen. Der Langzeittest mit der CCU2 steht noch aus. Falls euch etwas auffällt, meldet euch bitte.

            Grüße Jens

  16. Hallo Jens,
    habe eine CCU2 und bei mir werden mit der Firmware 2.29.18 alle Werte auf 0 + aktuelle Laufzeit gesetzt.
    Anscheinend werden die Aktuellen Werte die vor dem Berechnen in den Variablen (Laufzeit) stehen nicht eingelesen. Stehe gerade bisschen auf dem Schlauch….

    • Hallo,
      1. hat es bis zur Aktualisierung auf 2.29.18 funktioniert oder wurde der Zähler erst mit dieser Firmware neu erstellt?
      2. ist das auch bei dem geänderten Skript (s.o. im Tutorial) der Fall?
      Falls noch nicht gemacht, bitte mal das geänderte Skript ausprobieren, ansonsten sehen wir weiter.
      Grüße Jens

  17. Hallo Jens,
    Ja das oben genannte Skript geht mit der 2.29.18 auch nicht (bei mir).

    Bis vorgestern hatte ich das andere Skript mit varA- varZ Variablen. dies hatte mit der Vorletzten Firmware prima funktioniert.

    Anscheinend, werden die Variablen nicht richtig eingelesen bei der Berechnung.
    Da alle Werte dann nur den letzten Brenner Start enthalten.

    Viele Grüße,
    Fruehwi

    • Hallo Fruehwi,
      ich hatte dir vor einigen Tagen eine Mail geschickt, hast du das zwischenzeitlich mal ausprobiert?
      Grüße Jens

  18. Hallo Jens,

    vielen Dank für die Überarbeitung deines Skriptes es läuft auf dem Raspi mit RaspberryMatic wieder Problemlos.
    Nochmals vielen Dank für deine schnelle Hilfe.

    BG
    Rico

  19. Hallo Jens,

    jetzt habe ich deine Email im Spam Ordner von GMX gefunden.
    Ich habe die neue Version (mit verkürzten Variablen) von dir genommen und am nächsten Tag hat es dann funktioniert. Keine Ahnung warum das abends nicht ging… war schon spät.
    Danke für dein Unterstützung.
    Viele Grüß

  20. Hallo Jens,
    vielen Dank für Deine Arbeit zur Auslesung der Betriebsstunden und Heizölverbrauch.
    Ich bin dabei, Dein Vorgehen zu kopieren, habe aber dazu noch ein paar Fragen:
    – Geht die Berechnung auch unter der neuen CCU3 und der aktuellen Firmware?
    – Meine CCU3 ist im 1. Stock und der Heizungsraum im Keller mit einer Stahltür versehen. Wird aus Deiner Erfahrung die Verbindung funktionieren? (Kleiner Hinweis: Im Nebenraum habe ich eine HM-ES-TX-WM zur Stommessung am Stromzähler, der sauber funktioniert)
    – Wir haben einen Buderus-Brenner mit einem LED. Wie funktioniert die Verbindung von einem Dämmerungsschalter und dem Interface HM-SCI-3-FM? Konnte die Verbindung aus der Beschreibung und Bildern nicht genau erkennen.
    Wäre toll, wenn Du mir helfen könntest.
    Danke vorab und viele Grüße
    Blicky

    • Hallo Blicky,

      Geht die Berechnung auch unter der neuen CCU3 und der aktuellen Firmware?

      Ich nutze hier eine RasppberryMatic mit der jeweils aktuellen Firmware; die Skripte sollten auch auf einer CCU3 laufen, die ist von der Firmware her ja im Grunde das Gleiche.

      Meine CCU3 ist im 1. Stock und der Heizungsraum im Keller mit einer Stahltür versehen. Wird aus Deiner Erfahrung die Verbindung funktionieren? (Kleiner Hinweis: Im Nebenraum habe ich eine HM-ES-TX-WM zur Stommessung am Stromzähler, der sauber funktioniert)

      Das musst du leider selbst ausprobieren, weil die Empfangsverhältnisse sehr von den lokalen Gegebenheiten abhängig sind. Außerdem kenne ich die CCU3 nicht und habe somit da keine Erfahrungswerte. Aber wenn der HM-ES-TX-WM funktioniert…

      Wir haben einen Buderus-Brenner mit einem LED. Wie funktioniert die Verbindung von einem Dämmerungsschalter und dem Interface HM-SCI-3-FM? Konnte die Verbindung aus der Beschreibung und Bildern nicht genau erkennen.

      Bei dem von mir genutzten (verlinkten) Dämmerungsschalter wird der Helligkeitssensor ganz einfach über eine 2-Draht-Leitung mit der Platine verbunden. Die beiden Drähte sind an dem Helligkeitssensor angelötet, der in einer schwarzen Gummi-LED-Fassung steckt, die über die Brenner-Kontroll-LED gestülpt und mit Isolierband fixiert ist. Im Beispiel ist es übrigens auch eine Buderus Heizung mit einer roten LED für den Brenner. Ich habe noch eine Steckverbindung am Gehäuse eingebaut (der grüne Chinch-Stecker im Foto unten), die ist aber optional.

      Der Dämmerungsschalter wiederum hat ein Relais, das einen Kanal des HM-SCI-3-FM schaltet, solange die Brenner-LED an ist.

      Liebe Grüße Jens

      • Super, vielen Dank für die tolle und ausführliche Antwort von Dir, Jens.
        Dann werde ich mal basteln und meine Erfahrungen dann kundtun.
        Viele Grüßé
        Blicky

  21. Hallo zusammen.

    Zuerst ein „galaktisches“ Danke an Jens. Wirklich mal eine Sache für die Homatic, die auch einen Mehrwert hat.

    Habe alles nach Anleitung installiert und bin über die „Fuellung“ bzw. „Füllung“ im Script gestolpert. Jetzt funzt das Teil heute Abend hervorragend.

    Ich habe die Homatic mit „HConnect“ (absolut zuverlässig, billig und prof. aufgebaut, gegenüber den Mitbewerbern) an Alexa angebunden. Ein Traum wäre es die Daten über Alexa abzufragen. Werde es mal mit „iobroker“ versuchen, da Alexa noch nicht soweit gereift ist, dass diese auch Rückmeldungen der Homatic abruft.

    Und nochmals ein Danke an Jens.

    Grüsse aus München
    Herbert

    • Hallo Herbert,
      danke für dein nettes Feedback, freut mich, dass die Anleitung für dich hilfreich war.
      Liebe Grüße und weiterhin viel Spaß und Erfolg beim Automatisieren.
      Jens

  22. Klaus Schittek

    Hallo Jens, fange gerade mit homematic an und bin über Dein Script gestolpert. Super Arbeit. Nutze es mit einem Zwischenstecker mit Leistungsmessung. Es ist ziemlich genau.
    Wenn jedoch die CCU resp. Raspimatic abstürzt kommt der Zähler mit Phantasiezahlen bspw. Betriebsstunden heute -80.000. Auch die anderen Zähler haben ähnlich negative Größen. Du schreibst, beieinem Notreboot kommt der Zähler mit den zuletzt gespeicherten Einstellungen. Muss man das irgendwo einstellen?
    Frohe Ostern
    Klaus

    • Hallo Klaus,

      um dir da evtl. etwas zu sagen zu können, schicke mir mal bitte einen Screenshot von den Programmen, wie du den Zwischenstecker mit Leistungsmessung als Trigger eingebunden hast und ggf. auch mal deine Skripte als Textdateien.

      Grüße Jens

  23. Torsten Schneider

    Hallo Jens,
    ich wollte die Korrektur der Zähler nach dem Not Reboot und Update vereinfachen. Dazu habe ich dein Script als Basis benutzt. Leider habe ich da noch Fehler in der Berechnung…
    Kannst Du mir bitte auf die Sprünge helfen? 🙂

    var KumZeitF= dom.GetObject("Brenner Betriebsstunden seit letzter Fuellung");
    var KumZeitJ= dom.GetObject("Brenner Betriebsstunden laufendes Kalenderjahr");
    var KumZeitM= dom.GetObject("Brenner Betriebsstunden laufender Monat");
    var KumZeitW= dom.GetObject("Brenner Betriebsstunden laufende Woche");
    var KumZeitT= dom.GetObject("Brenner Betriebsstunden heute");
    var KumVerbrauch= dom.GetObject("Brenner Korrektur Verbrauch").Value();
    var KumLaufzeit= dom.GetObject("Brenner Korrektur Laufzeit");

    ! Umrechnung Liter in Laufzeit
    var laufzeitK = KumVerbrauch / 1.89271;

    ! Laufzeit in systemvariable schreiben
    KumLaufzeit.State (laufzeitK);

    ! Korrektur Betriebstunden seit letzter Füllung
    var gelaufenFK = KumZeitF.State() - laufzeitK;

    ! Korrektur Betriebstunden seit letzter Füllung in die Systemvariable schreiben
    KumZeitF.State (gelaufenFK);

    ! Korrektur Betriebstunden laufendes Kalenderjahr
    var gelaufenJK = KumZeitJ.State() - laufzeitK;

    ! Korrektur Betriebstunden laufendes Kalenderjahr in die Systemvariable schreiben
    KumZeitJ.State (gelaufenJK);

    ! Korrektur Betriebstunden laufender Monat
    var gelaufenMK = KumZeitM.State() - laufzeitK;

    ! Korrektur Betriebstunden laufender Monat in die Systemvariable schreiben
    KumZeitM.State (gelaufenMK);

    ! Korrektur Betriebstunden laufende Woche
    var gelaufenWK = KumZeitW.State() - laufzeitK;

    ! Korrektur Betriebstunden laufende Woche in die Systemvariable schreiben
    KumZeitW.State (gelaufenWK);

    ! Korrektur Betriebstunden heute
    var gelaufenTK = KumZeitT.State() - laufzeitK;

    ! Korrektur Betriebstunden seit letzter Füllung in die Systemvariable schreiben
    KumZeitT.State (gelaufenTK);

    • Hallo Torsten,

      dazu müsstest du mir bitte noch ein paar Infos geben. Wann und wie lässt du das Skript laufen? Was ist deine konkrete Idee hinter diesem Skript?

      Auf den ersten schnellen Blick würde ich an Stelle dieses Aufwandes für ein Ereignis, was in der Praxis ja eher selten vorkommt, regelmäßig (z.B. jede Stunde) einen DOM-Save per Skript auslösen, dann würden auch alle anderen SysVar aktuell(er) gespeichert. Bei einem Update (Reboot) geschieht ein DOM-Save ohnehin automatisch, sodass es da eigentlich gar kein Workaround braucht. Bei einem Stromausfall sollte die Feuerungsvariable beim Wiederhochfahren der CCU vorsoglich auf „Standby“ gesetzt werden, das könnte man analog zu der Vorgehensweise bei „CCU im Reboot“ machen. Die Ungenauigkeiten, die dabei entstehen, dürften über die Laufzeit vernachlässigber sein.

      Liebe Grüße Jens

      • Torsten Schneider

        Hallo Jens,
        Danke das Du dich meiner annimmst!!! Ein DOM-Save gibt es wohl bei einen CCU Update. Bei dem Update einer Raspberry Matic über das Recovery System (rmupdate) gibt es den Dom-Save wohl nicht.
        Ich habe da schon ein wenig etwas versucht, aber ich hatte immer ca. 10 – 20l zuviel auf dem Zähler (im Sommer, also nur bei Brauchwasser Erwärmung). Da Jens im Monatsrhythmus ein Update heraus gibt, rechnet sich ein Automatismus über ein Script für mich schon. Zumal der HM-SCI-3-FM immer mit dem Closed Status hoch kommt, also genau im falschen Schaltzustand. Zwangsläufig stimmt die Betriebsstunden Zählung also nicht.
        Aber nun zu den Randbedingungen:
        Als Visualisierung und Steuerung meiner Smart Home Umgebung benutze ich Mediola Neo.
        Auf dieser habe ich ein Popup kreiert, auf diesen kann ich den Korrekturwert in Liter angeben, ein „Taster“ startet das Programm mit dem Script und setzt den Brenner Status kurz auf Fire und dann zurück auf Standby.
        Die Idee ist den Korrekturwert in Liter anzugeben, dies dann in die Laufzeit zurück zu rechnen.
        Anschließend könnte man damit die Betriebsstunden korrigieren und damit den Verbrauch korrigieren.
        Leider komme ich mit den Scripten noch nicht so klar.
        Liebe Grüße Torsten

        • Hallo Torsten,

          vorweg, ich gehe davon aus, dass das Skript bei dir bis zum Ende durchläuft.

          Deine Idee habe ich jetzt mal versucht, nachzuvollziehen.

          Du schreibst „Auf dieser habe ich ein Popup kreiert, auf diesen kann ich den Korrekturwert in Liter angeben, ein „Taster“ startet das Programm mit dem Script und setzt den Brenner Status kurz auf Fire und dann zurück auf Standby.“

          Ich nehme an, in dieser Reihenfolge?

          Dann pssiert folgendes:

          1. Die SysVar „Brenner Korrektur Verbrauch“ bekommt den Wert in Liter, den du in aio manuell eingibst, der ist geschätzt oder aus einer Aufzeichnung, nehme ich an?

          2. Das Skript läuft. Du berechnest aus dem Korrekturwert in Liter die Laufzeit und speicherst sie in die SysVar „Brenner Korrektur Laufzeit“. Anschließend substrahierst du von den Betriebstunden der jeweiligen Zeiträume deinen Korrekturwert.
          Nehmen wir an, du hast im Monat 100 Liter (nach deinem Umrechnungfaktor 52,83 h) verbraucht und dein gewünschter Korrekturwert ist 10 Liter, richtig wären also 90 Liter.
          Dein Skript errechnet aus den manuell eingegebenen Korrekturwert von 10 Litern einen Korrekturwert von…
          10 / 1.89271 = 5,28 h
          Vom Zählerstand des Monatszählers ziehst du den Korrekturwert ab…
          52,83 – 5,28 = 47,55 h
          Das passt, denn das Ausschaltskript sollte daraus später folgendes errechnen…
          47,55 * 1.89271 = 90 Liter

          3. Du setzt die SysVar „Brenner Status“ auf Feuerung. Das Einschaltskript läuft und speichert die aktuelle Zeit als Einschaltzeit.

          4. Du setzt die SysVar „Brenner Status“ auf Standby. Das Ausschaltskript läuft, speichert die Ausschaltzeit und errechnet die Einschaltdauer in Stunden (x0). Diese ist wegen des kurzen Zeitabstandes verachlässigbar klein. Anschließend wird in der Zeile…
          var gelaufenM = x0 + KumZeitM.State();
          die von dir mit dem obigen Skript korrigierte Laufzeit mit der vernachlässigbaren Laufzeit addiert und gespeichert…
          KumZeitM.State (gelaufenM.Round(2));

          In der Theorie sollte das funktionieren.

          Da es bei dir anscheinend nicht funktioniert, würde ich – analog zum Workaround – zusätzlich vor der Ausführung des Skripts die SysVar „Brenner Status“ auf Feuerung und unmittelbar danach wieder auf Standby setzen.
          Wenn das auch nichts hilft (was wahrscheinlich ist), würde ich versuchen, das Skript zunächst außerhalb von aio zum Laufen zu bekommen (Korrekturwert manuell mit Webmatic o.ä. in die SysVar schreiben, anschließend das Skript im HomeMatic Script Executor laufen lassen (ggf. zeilenweise) und dabei Schritt für Schritt die einzelnen Werte und deren Speicherung in den jeweiligen SysVar überprüfen). Du solltest sicher verifizieren können, dass alles richtig berechnet und gespeichert wird.
          Wichtig ist natürlich auch, dass die SysVar „Brenner Status“ während bzw. zwischen den Skriptlaufzeiten nicht von einem dritten Trigger verändert wird.

          Ansonsten habe ich dazu aus der Distanz auch keine Idee.
          Liebe Grüße und viel Erfolg Jens

  24. Hallo Jens,

    vielen dank für die tolle Anleitung.
    Bin gerade dabei das ganze nachzubauen.
    Was ich allerdings nicht verstehe mit dem Druck.
    Ich habe eine Düse mit 1,9 Kg/h und ein Druck von 13,8 Bar.
    Was muss ich jetzt eintragen?

    Grüße Sven

    • Hallo Sven,

      das ist gar nicht so leicht zu beantworten, weil das sehr von deiner individuellen Heizung abhängt. Entscheidend ist der tatsächliche Öldurchsatz.

      Wenn die 1,9 kg/h die Herstellerangabe deiner Heizung für den Öldurchsatz bei 13,8 bar Pumpenförderdruck sind und der Brenner auch mit diesem Druck betrieben wird, kannst du das Skript mit der wie folgt geänderten Formel ausprobieren: „gelaufenT * 1.9 * 1.197“.

      Falls nicht, wird es schwieriger. In der Regel weisen die Düsen – je nach Norm – einen Referenzdruck von 10 bar (bei kg/h) oder 7 bar (bei GPH) auf. Wenn 1,9 kg/h auf deiner Düse aufgedruckt ist, dürfte sie auf 10 bar Referenzdruck genormt sein. Da sich die Eigenschaften der Düse ändern, wenn der Öldruck vom Referenzwert abweicht, was bei dir ja der Fall zu sein scheint, musst du die tatsächliche Düsenleistung anhand des Datenblattes deiner individuellen Düse oder – dann wird es ungenauer – über allgemeine Näherungstabellen ermitteln. Von Bedeutung ist auch, ob deine Heizung das Öl vorwärmt, da der Öldurchsatz bei vorgewärmtem Öl niedriger ist. Dies kann dir ggf. das Datenblatt des Brenners oder dein Heizungsmonteur beantworten, von letzterem kannst du dir auch den tatsächlich verwendeten Druck ermitteln lassen.

      Für Hintergründe empfehle ich dir diese Website und die dortigen Anlagen, insbesondere das Heft Wissenwertes über Öldüsen, in dem auch Näherungstabellen enthalten sind.

      An dieser Stelle möchte ich aber nochmals darauf hinweisen, dass die hier angewandte Methode eine Näherung darstellt, die in meiner individuellen Konfiguration (mit zufällig einer Düse, die genau mit dem Referenzdruck betrieben wird) aus der Erfahrung von nunmehr über acht Jahren heraus sehr genau dem tatsächlichen Verbrauch entspricht. Hier wirst du in der Praxis den Verbrauch über einen längeren Zeitraum beobachten und im Skript ggf. nachsteuern müssen.

      Liebe Grüße Jens

  25. Robert D.

    Hallo Jens,
    finde es super was du da gemacht hast.
    Ich habe eine Rasperrymatic mit der aktuellen Fimeware laufen, weis leider nicht wie ich das ganze angehen soll.bBitte um Hilfe.
    1. An meinem Brenner habe ich ein Koppelrelaise (paralell zum Betriebstundenzähler) angebracht, dabei verwende ich einen Öffnerkontakt der ab den HM-SCI-3FM (1.Kontakt) schaltet, also wenn Brenner steht ist Kontakt am Koppelrelaise geschlossen und wenn Brenner läuft der Kontakt offen, ist das korrekt ?
    2. Als nächstes müsste ich nun die Variablen eingeben, oder, ist das richtg ?
    3. Dann steh ich an, muss ich nun alle Programme eingeben? Und wie mach ich das mit den Scripten?
    Komm da irgendwie nicht klar!
    DANKE für deine Hilfe!

    • Hallo Robert,

      zu 1. In der Anleitung ist das Relais geschlossen, wenn der Brenner läuft. Bei deiner Variante müsstest du die Systemvariable für den Brennerstatus anders herum schalten. Beides ist möglich.

      Zu 2. und 3. Richtig, als nächsten Schritt die Systemvariablen und Programme erstellen. Die Skripte werden an den entsprechenden Stellen in den Programmen eingetragen. Wenn du noch nicht weißt, wie das funktioniert, solltest du dich da evtl. noch etwas einlesen (Einsteiger Tipps im Homematic Forum, Dokumentation etc.).

      Liebe Grüße Jens

      • Robert D.

        Hallo Jens,
        danke für dein schnelle Antwort.
        zu 1. das Relaise zieht beim start des Brenners an,also müsste ich einen Schließerkontakt am Relaise verwenden so das bei Brenner EIN, der S1 und COM am HM-SCI-FM geschlossen sind oder?
        zu 2. und 3. also alle Variablen und Programme erstellen. Da sind ja Ausgabescripte drin, welches muss ich verwenden?
        Sorry das ich so dumm frage!
        DANKE nochmal für die Hilfe!

        • Hallo Robert,
          zu 1. Genau
          zu den Programmen: genau so, wie die Reihenfolge im Tutorial. Das Einschaltprogramm erhält das (kurze) Einschaltskript, das Ausschaltprogramm das (längere) Ausschaltskript.

          • Robert D.

            DANKE NOCHMALS!
            Eine Frage hab ich noch zur Einstellung Kanal CH.:1 des HM-SCI-3-FM,
            Das steht:
            Meldung in Position geschlossen: geschlossen
            Meldung in Position offen: offen
            Meldeverzögerung: 0.0
            Max. Sendeversuche: 6
            Das kann ich so lassen oder?

          • Das sind die Standardeinstellung. Die können so belassen werden.

  26. Wieso hast Du beim ersten Programm zwei Programme erstellt und nicht mittels „Sonst…“ den Brenner Status auf sofort Stand-by gesetzt?
    Sorry bin neu in der Homematic.
    Danke für die Anleitung und Gruß
    Bernd

    • Hallo Bernd,

      ich war schon immer ein Freund mehrerer kleiner Programme, anstatt weniger komplexerer Programme.
      Hier hat es aber auch mit meinen (frühen – das läuft hier so seit über 10 Jahren und wurde ursprünglich auf einer CCU1 erstellt) Erfahrungen mit dem verwendeten HM-SCI-3-FM zu tun, der seinen Status hin und wieder mal verliert. Daher hatte ich den Weg über „Aktualisierung“ und nicht „Änderung“ sowie die Systemvariable genommen.
      Bei einem zuverlässigeren Sensor, an Stelle eines HM-SCI-3-FM, wird es wohl genügen, auf „Änderung“ zu triggern und das auch in nur einem Programm zuverlässig funktionieren.
      Die Systemvariable kann dann theoretisch ebenfalls weggelassen werden, diese ist aber hilfreich, wenn man den Zähler mal korrigieren muss.

      Grüße Jens

      • Danke Jens,
        das verstehe ich.
        Eine Frage hätte ich noch. Müsste nicht auch der Wochen- sowie Jahreszähler, genauso wie der Tageszähler per Zeitmodul zurück gesetz werden?

        • Hallo Bernd,
          ja klar, oben ist der Tageszähler ja nur beispielhaft aufgeführt. Ich empfehle aber, es so wie hier zu machen (Beipielskript 3, getriggert 23:59 Uhr täglich), dann funktioniert das auch beim Monatszähler und Schaltjahren ordentlich.
          Grüße Jens

      • Danke erstmal für deinen Artikel hier.
        Daher auch ein kleiner Tipp von mir.
        Ich setze/werde den Jahreszähler (Heizung) am 1. Juli (Heizpause) jeden Jahres zurück. Dadurch habe ich eine Übersicht über die Kosten pro Heizsaison. am 1. 1. würde ich sonst den Ende des letzten und den Anfang des nächsten Winters haben.
        So kann ich später auch besser die einzelnen Winter (hmm was ist die Mehrzahl von Winter?) und die Kosten vergleichen.

  27. Hallo Jens,
    den von Dir verlinkten Dämmerungsschalter scheint es bei Conrad nicht mehr zu geben. Könntest Du den Link (für eine Alternative) aktualisieren oder den Namen/Typ des Schalters dazu schreiben?

    Vielen Dank!

    Sebastian

    • Hallo Sebastian,
      danke für den Hinweis. Ich habe den Link im Beitrag oben aktualisiert, er führt zu dem von mir verwendeten Bausatz. Es sollten aber auch andere Bausätze/Module verwendet werden können, z.B. dieser.
      Grüße Jens

  28. Hallo Jens,
    auch von meiner Seite ein RIESEN DANKESCHÖN für die Arbeit + Veröffentlichung!
    Läuft jetzt 1-2 Wochen an meiner Ölheizung per Strom-Messung.

    Bin zwar CCU Script Anfänger, dennoch wollte ich meine Erfahrungen bezüglich dem Punkt „Not Reboot“ teilen:
    Bei den ersten Versuchen ein Hart-Reset zu provozieren, schien die CCU den Status „Brenner Stand-By“ zu setzen, was das „Brenner AUS“ Script triggerte. Das + eine recoverte uralte EIN Zeit SysVar hat dann extreme falsch-Zeiten errechnet.
    Daraufhin habe ich den Workaround mit „CCU im Reboot“ implementiert (CCU3 – habe 30s angesetzt). mMn ist es nun egal, welche EIN/AUS Zeiten er sich beim Not-Reboot ausdenkt, solange das „Brenner AUS“ Script „gesperrt“ wird von CCU im Reboot, zerhaut er die Berechnung nicht.
    Es sei denn..mir fällt nur eine logische Möglichkeit ein, die falsche Ergebnisse liefert: der Brenner geht auf „Feuerung“ und wenige Sek später stürzt die CCU ab und macht einen Not-Reboot. Sie fährt wieder hoch, die SysVars für EIN/AUS Zeiten stehen auf uralt-Wert, soweit so gut. Und nun, einige Min später geht der Brenner von Feuerung auf Stand-By (arbeitet ja autark, den kümmert die vorher gecrashte CCU nicht), damit wird die AUS Zeit gesetzt, bzw. das „Brenner AUS“ Script getriggert, rechnet aber falsch, da es die korrekte EIN Zeit verpasst hat und nur die uralt Zeit zur verfügung steht. -> Berechnung fail.
    Lösung:
    Neues Script „Heizung Brenner Einschaltzeit nach Reboot“, ohne WENN Bedingung, sofort Ausführung von diesem Script:
    var EinZeit= dom.GetObject(„Brenner letzte Einschaltzeit“);
    EinZeit.State(system.Date(„%F %T“)); !Speichern der Einschaltzeit

    Damit wird bei jedem Neustart immer eine aktuelle EIN Zeit hinterlegt. Im dümmsten Fall verliert man ein paar Minuten Brennerzeit zwischen Feuerung-Start und Reboot in der Berechnung. Aber besser als versehentlich 1h Dauerbrennzeit falsch einzurechnen.

    PS: Ich habe zusätzlich auch noch Brenner Betriebsminuten laufende Stunde/letzte Stunde und Brennerstarts laufende Stunde/letzte Stunde aufgenommen um etwas besser evtl. Taktung des Brenners zu tracken. Außerdem noch „Brenner Wärmeleistung letzte Stunde“ (Berechnung von Waerme Leistung in kW mit 9,8kWh/l Heizwert mit 93% Wirkungsgrad der Heizung) implementiert. Ich denke dieser Wert + Außentemperatur in Historien anschauen ist ganz interessant falls man zB mit dem Energiepass vergleichen will oder sich Gedanken machen möchte für eine Wärmpepumpe oder Hybrid Lösung.

    Gruß
    Arek

    • Hallo Arek,
      vielen Dank für das Feedback und die interessante Idee.
      Klar, die „Ungenauigkeit“ nach dieser Methode wird sich in der Auswertung über einen längeren Zeitraum kaum auswirken. Es ist halt immer die Frage, wie das System nach so einem Neustart oder gar der Wiederherstellung einen Backups „hochkommt“. Der gewählte Trigger kann auch eine Rolle spielen.
      Glücklicherweise kommen solche Ausfälle heutzutage ja nur sehr selten vor. Das Projekt stammt noch aus CCU 1-Zeiten, als CCU-Abstürze leider regelmäßig auftraten und das hat damals wirklich genervt 😉
      Liebe Grüße und danke nochmals, Jens

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

WordPress Cookie Plugin von Real Cookie Banner