Verbrauchs- und Betriebsstundenzähler für Ölheizungen
Verfasst: 01.02.2013, 22:49
Ich versuche, dieses Thema parallel auf meiner Hausautomations-Internetseite aktuell zu halten.
Bei Ölheizungsbrennern ist es sehr einfach möglich, anhand der Parameter der Brennerdüse und der Betriebszeit des Brenners, den Heizölverbrauch zu berechnen. Das wurde an anderen Stellen hier im Forum schon mehrfach erörtert. Mit recht wenig Aufwand lassen sich so umfangreiche Auswertungen bezüglich des Heizölverbrauchs vornehmen. In diesem Beitrag werden folgende Funktionen beschrieben:
1. Abgriff des Brennerzustandes (Stand-by / Feuerung) und Übertragung in die HomeMatic
2. Betriebsstunden- und Verbrauchszähler
- Tageszähler
- Wochenzähler
- Monatszähler
- Jahreszähler
- Zähler seit der letzten Tankung
- Füllstand im Vorratstank
3. Statusinformation und Ausfallwarnung für die Heizungsanlage
1. 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, in der noch kein Heizöl verbraucht wird, kann auch Zustand des Brenners abgegriffen werden, z.B. parallel zur Brenner-Kontrollleuchte oder zum evtl. vorhandenen Betriebsstundenzähler.
Da ich nicht in die elektrische Anlage des Brenners bzw. der Heizungssteuerung eingreifen wollte, habe ich mich für einen ganz anderen Weg entschieden. Mit einem simplen Dämmerungsschalter (Bausatz) wird der Zustand einer an meiner Heizung vorhanden Brenner-Kontroll-LED ermittelt. Hierzu habe ich den Helligkeitssensor in eine schwarze Gummi-LED-Fassung gesteckt, über die Brenner-Kontroll-LED gestülpt und mit Isolierband fixiert...
Das Relais des Dämmerungsschalters schaltet den Eingang eines "HomeMatic Schließerkontakt-Interface für Öffner und Schließerkontakte" (HM-SCI-3-FM). In ein Gehäuse verbaut, schaut das so aus....
...und liefert zuverlässig (z.B. über einen Wintertag) folgenden Ergebnis (0 = Brenner ein, 1 = Brenner aus)...
2. Betriebsstunden- und Verbrauchszähler
Bei der Umsetzung der Zähler-Scripte habe ich als Grundlage die hier (http://homematic-forum.de/forum/viewtop ... =31&t=4218) beschriebenen Scripte genommen, an dieser Stelle vielen Dank für die Vorarbeit.
Als Voraussetzung für das Funktionieren aller Funktionen des Zählers müssen zunächst einige Systemvariablen angelegt werden...
Ergänzend kann man zur Sicherheit parallel zum Relais des Dämmerungsschalters einen Taster schalten und über diesen nach einem CCU-Reboot bei ausgeschaltetem Brenner kurz den HM-SCI-3-FM triggern (im o.a. Bild des Gerätes fehlt dieser Taster noch)...
Natürlich lässt sich dies bei Bedarf auch automatisieren, z.B. über einen HomeMatic-Schaltaktor für Batteriebetrieb, den man nach einem Reboot der CCU kurz den Eingang des HM-SCI-3-FM schalten lässt.
Zur Datenaufzeichnung wird mit diesem Programm...
... beim Einschalten des Brenners das folgende Script ausgeführt...
... und beim Ausschalten des Brenners...
... dieses Script...
Das Ausschaltscript berechnet aus den Betriebsstunden den Verbrauch nach der Formel:
Der Zustand der Aufzeichnungs-Systmvariablen aktualisiert sich immer erst mit dem Ausführen des Ausschaltscripts. In WebMatic sehen die Daten z.B. so aus...
Jetzt gehen mir die zugebilligten 10 Bilder aus, der zweite Teil folgt...
Bei Ölheizungsbrennern ist es sehr einfach möglich, anhand der Parameter der Brennerdüse und der Betriebszeit des Brenners, den Heizölverbrauch zu berechnen. Das wurde an anderen Stellen hier im Forum schon mehrfach erörtert. Mit recht wenig Aufwand lassen sich so umfangreiche Auswertungen bezüglich des Heizölverbrauchs vornehmen. In diesem Beitrag werden folgende Funktionen beschrieben:
1. Abgriff des Brennerzustandes (Stand-by / Feuerung) und Übertragung in die HomeMatic
2. Betriebsstunden- und Verbrauchszähler
- Tageszähler
- Wochenzähler
- Monatszähler
- Jahreszähler
- Zähler seit der letzten Tankung
- Füllstand im Vorratstank
3. Statusinformation und Ausfallwarnung für die Heizungsanlage
1. 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, in der noch kein Heizöl verbraucht wird, kann auch Zustand des Brenners abgegriffen werden, z.B. parallel zur Brenner-Kontrollleuchte oder zum evtl. vorhandenen Betriebsstundenzähler.
Da ich nicht in die elektrische Anlage des Brenners bzw. der Heizungssteuerung eingreifen wollte, habe ich mich für einen ganz anderen Weg entschieden. Mit einem simplen Dämmerungsschalter (Bausatz) wird der Zustand einer an meiner Heizung vorhanden Brenner-Kontroll-LED ermittelt. Hierzu habe ich den Helligkeitssensor in eine schwarze Gummi-LED-Fassung gesteckt, über die Brenner-Kontroll-LED gestülpt und mit Isolierband fixiert...
Das Relais des Dämmerungsschalters schaltet den Eingang eines "HomeMatic Schließerkontakt-Interface für Öffner und Schließerkontakte" (HM-SCI-3-FM). In ein Gehäuse verbaut, schaut das so aus....
...und liefert zuverlässig (z.B. über einen Wintertag) folgenden Ergebnis (0 = Brenner ein, 1 = Brenner aus)...
2. Betriebsstunden- und Verbrauchszähler
Bei der Umsetzung der Zähler-Scripte habe ich als Grundlage die hier (http://homematic-forum.de/forum/viewtop ... =31&t=4218) beschriebenen Scripte genommen, an dieser Stelle vielen Dank für die Vorarbeit.
Als Voraussetzung für das Funktionieren aller Funktionen des Zählers müssen zunächst einige Systemvariablen angelegt werden...
- "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
Ergänzend kann man zur Sicherheit parallel zum Relais des Dämmerungsschalters einen Taster schalten und über diesen nach einem CCU-Reboot bei ausgeschaltetem Brenner kurz den HM-SCI-3-FM triggern (im o.a. Bild des Gerätes fehlt dieser Taster noch)...
Natürlich lässt sich dies bei Bedarf auch automatisieren, z.B. über einen HomeMatic-Schaltaktor für Batteriebetrieb, den man nach einem Reboot der CCU kurz den Eingang des HM-SCI-3-FM schalten lässt.
Zur Datenaufzeichnung wird mit diesem Programm...
... beim Einschalten des Brenners das folgende Script ausgeführt...
Code: Alles auswählen
var EinZeit= dom.GetObject("Brenner letzte Einschaltzeit");
EinZeit.State(system.Date("%F %T")); !Speichern der Einschaltzeit
... dieses Script...
Code: Alles auswählen
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.Variable().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.Variable();
! Die Betriebsstunden seit der letzten Füllung in die Systemvariable einstellen
KumZeitF.State (gelaufenF);
! 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);
! Berechnung Tankinhalts in Litern
var tankinhalt = TankGes - verbrauchtF;
! Tankinhalt in die Systemvariable einstellen
KumTankAkt.State (tankinhalt);
! Die Einschaltdauer im laufenden Kalenderjahr kumulieren = Betriebsstunden
var gelaufenJ = x0 + KumZeitJ.Variable();
! Die Betriebsstunden im laufenden Kalenderjahr in die Systemvariable einstellen
KumZeitJ.State (gelaufenJ);
! 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);
! Die Einschaltdauer im laufenden Kalendermonat kumulieren = Betriebsstunden
var gelaufenM = x0 + KumZeitM.Variable();
! Die Betriebsstunden im laufenden Kalendermonat in die Systemvariable einstellen
KumZeitM.State (gelaufenM);
! 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);
! Die Einschaltdauer in der laufenden Kalenderwoche kumulieren = Betriebsstunden
var gelaufenW = x0 + KumZeitW.Variable();
! Die Betriebsstunden in der laufenden Kalenderwoche in die Systemvariable einstellen
KumZeitW.State (gelaufenW);
! 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);
! Die Einschaltdauer heute kumulieren = Betriebsstunden
var gelaufenT = x0 + KumZeitT.Variable();
! Die Betriebsstunden heute in die Systemvariable einstellen
KumZeitT.State (gelaufenT);
! 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);
Die bei mir verbaute Düse hat eine Leistung von 1.87 kg/h bei einem Betriebsdruck von 10 bar. Hier muss das Script ggf. auf die eigenen Werte angepasst werden.Verbrauch = Betriebsstunden (h) * Leistung der Brennerdüse beim angegebenen Druck (kg/h) * Umrechnungsfaktor (kg->l = 1.197)
Der Zustand der Aufzeichnungs-Systmvariablen aktualisiert sich immer erst mit dem Ausführen des Ausschaltscripts. In WebMatic sehen die Daten z.B. so aus...
Jetzt gehen mir die zugebilligten 10 Bilder aus, der zweite Teil folgt...