Brennstoffverbrauch erfassen

Begonnen von Quatrian, 17 Dezember 2022, 10:14:00

Vorheriges Thema - Nächstes Thema

Quatrian

Hallo und guten Tag zusammen

Nachdem unsere alte Ölheizung einen Service brauchte und ich ein Gespräch mit dem Monteur über den Funktionsablauf führen konnte kam mir folgende Idee:
Ist es möglich mit einem Reedkontakt den Zustand des Magnetventils am Brenner zu erfassen um so über die Öffnungszeit und den Durchsatz der Düse den Öl-Verbrauch zu erfassen?
Da die Anlage durch ihr Alter keine Möglichkeit bietet so was auszulesen.

Kann mir da Jemand unter die Arme greifen?

Ich dachte an einen alten HM-Fensterkontakt wo ich den Relaiskontakt heraus führe zum Magnetventil. So sollte ich doch dann die Schaltzeiten bekommen. Ich müsste dann ein Logfile erstellen. Soweit so gut aber wie bekomme ich dann die Dauer der Schaltzyklen errechnet?
Hat da Jemand schon in der Art was probiert, geht das technisch überhaupt?

Liebe Grüße
Quatrian

DasQ

Wasn des für ne Heizung?

Du kannst über die brennerlaufzeit, den düsendurchsatz und die Dichte des Öls den Verbrauch sehr genau berechnen (lassen).

Ich hab von hier ein kleines Script mit dem ich das relativ genau mache.
Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

Quatrian

Hallo DasQ,
genau das ist mein Ziel.
Habe seit 20 Std nun ein Log schreiben lassen. Dort habe ich jetzt unter anderen die Einschalt-. und Ausschaltzeiten des Magnetventils und stehe vor dem Problem daraus die Einschaltdauer auszulesen bzw. zu errechnen. Leider gehört das Programmieren nicht wirklich zu meinen Stärken.
Ich habe einen Fensterkontakt der Marke Max mit einem externen Reedkontakt versehen und an der Spule des Ölventils erst mal versuchsweise platziert. Das Erfassen der Schaltzeiten klappt bisher korrekt.

2022-12-18_10:19:11 MAX_132**d opened
2022-12-18_10:19:11 MAX_132**d RSSI: -62
2022-12-18_10:19:11 MAX_132**d battery: ok
2022-12-18_10:19:11 MAX_132**d batteryState: ok
2022-12-18_10:19:11 MAX_132**d rferror: 0
2022-12-18_10:19:11 MAX_132**d onoff: 1
2022-12-18_10:36:22 MAX_132**d closed
2022-12-18_10:36:22 MAX_132**d RSSI: -63
2022-12-18_10:36:22 MAX_132**d battery: ok
2022-12-18_10:36:22 MAX_132**d batteryState: ok
2022-12-18_10:36:22 MAX_132**d rferror: 0
2022-12-18_10:36:22 MAX_132**d onoff: 0
2022-12-18_10:36:22 MAX_132**d windowOpen: 0

Wie bekomme ich die Open und Close Zeiten aus dem Logfile ausgelesen um sie weiter zu verarbeiten?

Gruß Quatrian

Stelaku

#3
Hallo Quatrian
das kannst  Du alles mit HourCounter lösen.

viele grüsse Stephan

Quatrian

Hallo Stelaku,
danke für deinen Tipp.
Werde mir das mal genauer ansehen, scheint auf den ersten Blick genau das zu sein was ich suche.

@All
Schonmal vielen Dank, eure Tipps haben mich schon ein großes Stück voran gebracht.

Gruß Quatrian

Stelaku

Hallo Quatrian

Ich hab da noch was in meinen uralten Backups gefunden. Habe das mit meinere alten Ölheizung auch so realiesiert.
Hier mal eine raw von meinen hourcounter.

defmod Brenner HourCounter MCP0_A7:on MCP0_A7:off
attr Brenner group Heizung
attr Brenner room Heizung
attr Brenner stateFormat Verbrauch\
<br><br>\
Tankinhalt
attr Brenner userReadings Verbrauch \
{round ((ReadingsVal("Brenner","pulseTimeOverall",0) /3600) *1.5141648 ,1)."&nbsp;;&nbsp;;Liter verbraucht seit den &nbsp ".\
substr(ReadingsTimestamp("Fuellstand_nach_Tanken","state",""),8,2).".".\
substr(ReadingsTimestamp("Fuellstand_nach_Tanken","state",""),5,2).".".\
substr(ReadingsTimestamp("Fuellstand_nach_Tanken","state",""),0,4)."&nbsp".\
round((ReadingsAge("Fuellstand_nach_Tanken","state",""))/86400,1)."&nbsp;;Tage"}, \
Tankinhalt \
{((ReadingsVal("Fuellstand_nach_Tanken","state",0) - ( round ((ReadingsVal("Brenner","pulseTimeOverall",0) /3600) *1.5141648 ,0))))."&nbsp;;&nbsp;;Liter sind noch im Tank"}
attr Brenner widgetOverride stateFormat:textField-long

setstate Brenner 0.0&nbsp;;&nbsp;;Liter verbraucht seit den &nbsp 19.12.2022&nbsp0.0&nbsp;;Tage\
<br><br>\
3133&nbsp;;&nbsp;;Liter sind noch im Tank
setstate Brenner 2022-12-19 12:16:03 Tankinhalt 3133&nbsp;;&nbsp;;Liter sind noch im Tank
setstate Brenner 2022-12-19 12:16:03 Verbrauch 0.0&nbsp;;&nbsp;;Liter verbraucht seit den &nbsp 19.12.2022&nbsp0.0&nbsp;;Tage
setstate Brenner 2019-08-25 21:50:04 clearDate 2019-08-25 21:50:04
setstate Brenner 2022-12-19 12:15:43 countsOverall 5674
setstate Brenner 2022-12-19 12:15:43 countsPerDay 0
setstate Brenner 2022-12-19 12:15:43 pauseTimeEdge 1678
setstate Brenner 2022-12-19 12:15:43 pauseTimeIncrement 481
setstate Brenner 2022-12-19 12:15:43 pauseTimeOverall 43496974
setstate Brenner 2022-12-19 12:15:43 pauseTimePerDay 193
setstate Brenner 2022-12-19 12:15:43 pulseTimeEdge 356
setstate Brenner 2022-12-19 12:15:43 pulseTimeIncrement 356
setstate Brenner 2022-12-19 12:16:03 pulseTimeOverall 0
setstate Brenner 2022-12-19 12:15:43 pulseTimePerDay 0
setstate Brenner 2022-12-19 12:15:43 state 0
setstate Brenner 2021-03-08 16:55:12 tickChanged 745
setstate Brenner 2022-12-19 12:12:30 tickDay 1
setstate Brenner 2022-12-19 12:12:30 tickHour 2
setstate Brenner 2022-12-19 12:12:30 tickMonth 1
setstate Brenner 2022-12-19 12:15:43 tickUpdated 113
setstate Brenner 2022-12-19 12:12:30 tickWeek 1
setstate Brenner 2022-12-19 12:12:30 tickYear 1
setstate Brenner 2022-12-19 12:15:43 value 0




Du müsstes jetzt nur noch Dein regexp eintragen also statt meinen
MCP0_A7:on MCP0_A7:off
so etwas je nach genauen event Deiner Sensoren
MAX_132**d:opened MAX_132**d:closed

in den userreadings wird dann der Ölverbrauch anhand der durchflussmenger der Düse berechnet in meinen Fall hatte meine Düse 1.5141648 Liter pro Stunde.
über ein Dummy hatte ich den Füllstand der Tanks nach den Tanken eingetragen aus dem dann der Restinhalt berechnet wurde.
Das ganze bezieht sich dann auf das reading pulseTimeOverall.

Vieleicht hilft Dir das ja etwas schneller ans Ziel zu kommen.

Viele Grüsse

Stephan

Quatrian

Hallo Selaku,
mittlerweile habe ich mir durch deine Hilfe mit dem Hinweis auf das Hourcounter-Modul und dem dazugehörigen Wiki selbst einen Zähler zusammen gebastelt.
Hatte das Modul bis dato nicht gekannt und war sehr überrascht als ich las, das der Entwickler selbst mit einem Max-Fensterkontakt arbeitet.

Vielen vielen Dank für deine Unterstützung!

Wünsche Allen ein frohes Weihnachtfest
Quatrian

PS:
Habe neugieriger Weise auch deine Version (angepasst) jetzt parallel laufen um die Berechnung zum Tankinhalt mit dem echten Werten zu vergleichen.