Verbrauchs- und Betriebsstundenzähler für Ölheizungen

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

blitz
Beiträge: 47
Registriert: 18.03.2012, 07:34

Re: Verbrauchs- und Betriebsstundenzähler für Ölheizungen

Beitrag von blitz » 24.02.2013, 16:22

Hier die Abbildund der Klemmleiste vom Steuergerät (Siemens).
IMAG-6.jpg
Man beachte den 2.Stecker von unten. Es ist nun der einzige mit 2 Leitungen
in einer Steckeraufname.
Die Stecker sind geklemmt, man muß daher die 2.Leitung anlöten. Achtung:
Die Stecker sind im Steckergehäuse verriegelt.
Man bekommt durch diese Lösung eine saubere und sichere (!) Lösung.
Ich möchte nochmals betonen, beim Öffnen der Steuereinheit sehr sorgfältig
zu sein, es ist schwierig.
Ich habe seinerzeit eine 5 adr. Leitung durch durch den Boden gezogén, 2 Adern
waren noch frei. Das Relais konnte ich daher in einer kleinen Wandverteilung
unterbringen.

blitz
Beiträge: 47
Registriert: 18.03.2012, 07:34

Re: Verbrauchs- und Betriebsstundenzähler für Ölheizungen

Beitrag von blitz » 28.02.2013, 16:14

Hallo JPS,
mir fehlt die Ausschaltzeit des Brenners.Wo steht diese oder fehlt da gar eine Zeile? Es muß doch ebenso aussehen wie die Einschaltzeit.
Gruß Heinz

blitz
Beiträge: 47
Registriert: 18.03.2012, 07:34

Re: Verbrauchs- und Betriebsstundenzähler für Ölheizungen

Beitrag von blitz » 28.02.2013, 17:41

OK, ich habe die Zeile im script gefunden. Aber warum hat die Auswertung nicht die Auszeit
und damit werden alle Berechnungen nicht ausgeführt. Wo könnte ich ansetzen?
Im Voraus schon 'mal vielen Dank.

Benutzeravatar
JPS
Beiträge: 1093
Registriert: 07.08.2010, 22:51
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 8 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Re: Verbrauchs- und Betriebsstundenzähler für Ölheizungen

Beitrag von JPS » 28.02.2013, 18:13

blitz hat geschrieben:warum hat die Auswertung nicht die Auszeit und damit werden alle Berechnungen nicht ausgeführt. Wo könnte ich ansetzen?
Mit

Code: Alles auswählen

var AusZeit= dom.GetObject("Brenner letzte Ausschaltzeit");
wird im Script die Variabe "AusZeit" aus der Systemvariablen "Brenner letzte Ausschaltzeit" ausgelesen und mit

Code: Alles auswählen

AusZeit.State(system.Date("%F %T"));
aktuell gespeichert.

Wenn das bei dir nicht geht, solltest du zunächst mal genau prüfen, ob der Name der Systemvariablen "Brenner letzte Ausschaltzeit" (falls du den Namen übernommen hast) und deren Typ "Zeichenkette" richtig sind.

Funktioniert es beim Einschaltscript?

Wie rufst du das Script auf?

Wird die AusZeit gespeichert, wenn du nur dieses Script ausführst?...

Code: Alles auswählen

var AusZeit= dom.GetObject("Brenner letzte Ausschaltzeit");
AusZeit.State(system.Date("%F %T"));
Verwendung meiner Hinweise und Skripte auf eigenes Risiko | Ich übernehme hierfür keinerlei Gewährleistung bzw. Haftung

blitz
Beiträge: 47
Registriert: 18.03.2012, 07:34

Re: Verbrauchs- und Betriebsstundenzähler für Ölheizungen

Beitrag von blitz » 28.02.2013, 23:35

Die Einschaltzeit wird erfaßt.
Wenn ich das Ausschaltscript (unterhalb des PRG "Brenner Auswertung aus") lösche und dafür nur die 2 Scriptzeilen
für die Ausschaltzeit einsetze, bekomme ich die Ausschaltzeit in die Variable. Wenn ich jedoch das vorherige Script wieder
einfüge, geht es nicht mehr. Hat das Script im Projekt einen Fehler ? Eins muß ich noch erwähnen, die (4) Reset-Scripts habe ich noch nicht eingesetzt. Können diese einen Einfluß haben ?
Grüße

Benutzeravatar
JPS
Beiträge: 1093
Registriert: 07.08.2010, 22:51
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 8 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Re: Verbrauchs- und Betriebsstundenzähler für Ölheizungen

Beitrag von JPS » 01.03.2013, 00:02

Nein, die Reset-Skripte können damit nichts zu tun haben.
blitz hat geschrieben:Wenn ich das Ausschaltscript (unterhalb des PRG "Brenner Auswertung aus") lösche und dafür nur die 2 Scriptzeilen
für die Ausschaltzeit einsetze, bekomme ich die Ausschaltzeit in die Variable.
Das ist schon mal gut. Jetzt gilt es herauszufinden, wo sich bei dir ein Fehler im Script eingeschlichen hat.

Zeigt die Fehlerprüfung irgendwelche Besonderheiten?

1. Prüfe nochmal alle Systemvariablen, ob sie so heißen, wie um Skript angegeben.

2. Führe in "Skript testen" mal nur folgendes aus (lasse die "Hallo Welt" Zeile ganz unten zur Kontrolle drin):

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");
Wenn das durchläuft, ist in diesem Programmteil schon mal kein Syntaxfehler.

3. Danach ergänze mal Zeile um Zeile des Skripts und lasse es mal durchlaufen, um festzustellen, ab welchem Programmteil das Skript nicht mehr läuft.
Verwendung meiner Hinweise und Skripte auf eigenes Risiko | Ich übernehme hierfür keinerlei Gewährleistung bzw. Haftung

blitz
Beiträge: 47
Registriert: 18.03.2012, 07:34

Re: Verbrauchs- und Betriebsstundenzähler für Ölheizungen

Beitrag von blitz » 01.03.2013, 15:35

Es ist immer noch so, ich bekomme keine Ausschaltzeit (Status und Bedienung >Systemvariable).
Brenner Status und Einschaltzeit reagieren.
Ich habe die ersten 4 Programme mit dem entsprechenden Script bisher eingegeben. Das Script für die "Brenner Auswertung aus" mehrfach kopiert und getestet...keine Fehler. Auch in den Systemvariablen kann ich keinen Fehler finden. Aber alle folgende Programmteile habe ich noch nicht eingegeben.
Ich hoffe, ich liege richtig,.... für mein Problem nicht relevant
Wenn ich jedoch im Script des Progamms " Brenner Auswertung aus", nur die beiden Zeilen für die Ausschaltzeit eingebe, bekomme ich diese auch.
Ich habe im Augenblick keine Ideen! Ich würde mich freuen, wenn jemand eine zündende Idee hätte.
Eine Erfassung der Brennerlaufzeit mit dem Ölverbrauch wäre schon ein erster Schritt.
Grüße

Benutzeravatar
JPS
Beiträge: 1093
Registriert: 07.08.2010, 22:51
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 8 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Re: Verbrauchs- und Betriebsstundenzähler für Ölheizungen

Beitrag von JPS » 01.03.2013, 16:40

Wenn du das gemacht hast...
JPS hat geschrieben: 2. Führe in "Skript testen" mal nur folgendes aus (lasse die "Hallo Welt" Zeile ganz unten zur Kontrolle drin):
3. Danach ergänze mal Zeile um Zeile des Skripts und lasse es mal durchlaufen, um festzustellen, ab welchem Programmteil das Skript nicht mehr läuft.
und das ganze Script fehlerfrei durchläuft, sprich "Hallo Welt" am Ende ausgegeben wird und alle Systemvariablen richtig sind, muss es eigentlich laufen.

In diesem Fall mach mal einen Neustart der CCU (manchmal laufen Programme nach umfangreichem Testen nicht mehr).

Falls es nach dem Neustart immer noch nicht funktioniert, versuch mal dieses Skript, habe ich gerade aus meiner CCU kopiert und läuft definitiv...

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 heute in die Systemvariable einstellen
KumVerbrauchT.State (verbrauchtT);
Wenn es nicht funktioniert, probier mal das (das gleiche Skript ohne Kommentare):

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");
AusZeit.State(system.Date("%F %T"));
time t = EinZeit.Variable().ToTime();
time t1 = system.Date("%F %T").ToTime();
var x = t.ToInteger();
var x1 = t1.ToInteger();
var x0 = 0.01*(x1-x)/36;
var gelaufenF = x0 + KumZeitF.Variable();
KumZeitF.State (gelaufenF);
var verbrauchtF = gelaufenF * 1.87 * 1.197;
KumVerbrauchF.State (verbrauchtF);
var tankinhalt = TankGes - verbrauchtF;
KumTankAkt.State (tankinhalt);
var gelaufenJ = x0 + KumZeitJ.Variable();
KumZeitJ.State (gelaufenJ);
var verbrauchtJ = gelaufenJ * 1.87 * 1.197;
KumVerbrauchJ.State (verbrauchtJ);
var gelaufenM = x0 + KumZeitM.Variable();
KumZeitM.State (gelaufenM);
var verbrauchtM = gelaufenM * 1.87 * 1.197;
KumVerbrauchM.State (verbrauchtM);
var gelaufenW = x0 + KumZeitW.Variable();
KumZeitW.State (gelaufenW);
var verbrauchtW = gelaufenW * 1.87 * 1.197;
KumVerbrauchW.State (verbrauchtW);
var gelaufenT = x0 + KumZeitT.Variable();
KumZeitT.State (gelaufenT);
var verbrauchtT = gelaufenT * 1.87 * 1.197;
KumVerbrauchT.State (verbrauchtT);
Wenn's immer noch nicht geht, versuch mal das (dieses Skript berechnet nichts, außer der Ausschaltzeit und dem Verbrauch heute)...

Code: Alles auswählen

var AusZeit= dom.GetObject("Brenner letzte Ausschaltzeit");
var EinZeit= dom.GetObject("Brenner letzte Einschaltzeit");
var KumZeitT= dom.GetObject("Brenner Betriebsstunden heute");
var KumVerbrauchT= dom.GetObject("Brenner Verbrauch heute");
AusZeit.State(system.Date("%F %T"));
time t = EinZeit.Variable().ToTime();
time t1 = system.Date("%F %T").ToTime();
var x = t.ToInteger();
var x1 = t1.ToInteger();
var x0 = 0.01*(x1-x)/36;
var gelaufenT = x0 + KumZeitT.Variable();
KumZeitT.State (gelaufenT);
var verbrauchtT = gelaufenT * 1.87 * 1.197;
KumVerbrauchT.State (verbrauchtT);
Verwendung meiner Hinweise und Skripte auf eigenes Risiko | Ich übernehme hierfür keinerlei Gewährleistung bzw. Haftung

blitz
Beiträge: 47
Registriert: 18.03.2012, 07:34

Re: Verbrauchs- und Betriebsstundenzähler für Ölheizungen

Beitrag von blitz » 02.03.2013, 18:34

Hallo JPS,
vielen Dank für Deine umfangreiche Arbeit und Deine Mühe mich auf den richtigen Weg zu bringen.
Es ist mir leider nicht gelungen dieses 1:1 zu übernehmen. Jedoch das letzte script (Brennerlaufzeit und
Ölverbrauch) hat mich schon erst einmal zufrieden gestellt; Dank dafür.
Eine Bitte noch: 1.Ich möchte die Ölmenge von "Hand" in die Variable "Tankinhalt aktuell" einstellen können
und 2. von dieser Ölmenge soll dann der der Ölverbrauch stetig abgezogen werden
Das wäre schon ein enormer Komfort!

Benutzeravatar
JPS
Beiträge: 1093
Registriert: 07.08.2010, 22:51
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 8 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Re: Verbrauchs- und Betriebsstundenzähler für Ölheizungen

Beitrag von JPS » 02.03.2013, 23:05

okay, ich verstehe dich so, dass das dritte Programm bei dir läuft, dann stimmt anscheinend wirklich was mit den Systemvariablen nicht, anders kann ich mir das aus der Ferne jetzt auch nicht erklären. Du solltest zur Fehlereingrenzung mal - wie oben bereits erwähnt - das Programm zeilenweise erweitern und dabei jeweils testen, ob es durchläuft bzw. an welcher Stelle es nicht mehr läuft.

Probier bitte vorher nochmal, ob das Skript mit dieser Änderung vielleicht funktioniert...

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");
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 heute in die Systemvariable einstellen
KumVerbrauchT.State (verbrauchtT);
Ansonsten sollte das folgende Skript - wie von dir gewünscht - vom aktuellen Tankinhalt die im Brennzyklus verbrauchte Menge abziehen. Dieses Skript konnte ich hier aber nicht testen, da es mir meinen eigenen Zähler durcheinander hauen würde...

Code: Alles auswählen

var AusZeit= dom.GetObject("Brenner letzte Ausschaltzeit");
var EinZeit= dom.GetObject("Brenner letzte Einschaltzeit");
var KumTankAkt= dom.GetObject("Brenner Tankinhalt aktuell");
var KumZeitT= dom.GetObject("Brenner Betriebsstunden heute");
var KumVerbrauchT= dom.GetObject("Brenner Verbrauch heute");
AusZeit.State(system.Date("%F %T"));
time t = EinZeit.Variable().ToTime();
time t1 = system.Date("%F %T").ToTime();
var x = t.ToInteger();
var x1 = t1.ToInteger();
var x0 = 0.01*(x1-x)/36;
! Berechnung von Verbrauch in Liter mit 1,87 kg/h im letzten Brenner-Einschaltzyklus
var verbrauchtZ = x0 * 1.87 * 1.197;
! Berechnung des Tankinhalts in Litern
var tankinhalt = KumTankAkt.Variable() - verbrauchtZ;
! Tankinhalt in die Systemvariable einstellen
KumTankAkt.State (tankinhalt);
var gelaufenT = x0 + KumZeitT.Variable();
KumZeitT.State (gelaufenT);
var verbrauchtT = gelaufenT * 1.87 * 1.197;
KumVerbrauchT.State (verbrauchtT);
Manuell kannst du den aktuellen Tankinhalt am besten über WebMatic http://homematic-forum.de/forum/viewtop ... 369#p84071 setzen...
Zwischenablage02.png
Zwischenablage02.png (5.77 KiB) 3457 mal betrachtet
Wert in das Feld links eintragen und rechts auf "Setzen" klicken.
Verwendung meiner Hinweise und Skripte auf eigenes Risiko | Ich übernehme hierfür keinerlei Gewährleistung bzw. Haftung

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“