Neues Modul: GasCalculator

Begonnen von Sailor, 21 Januar 2016, 12:48:11

Vorheriges Thema - Nächstes Thema

Wzut

Den Inhalt und  Menge fehlende Liter erfasse ich seit Jahren mit einem Selbstbau Ultraschall Abstandsmesser (Deckel bis Pegel)
Der Sensor hat eine Auflösung von 0,5 cm das entspricht bei mir ~ 23 Liter. Die Werte kommen ca. alle 4 Stunden neu und ein paar Sekunden vor Mitternacht habe ich nochmal einen extra Event für beide Werte die ins Log gehen. Tageswerte sind relativ unwichtig, wichtiger ist Woche, Monat und natürlich Jahr.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Sailor

Hallo Wzut

Zitat von: Wzut am 03 März 2020, 16:08:18
Den Inhalt und  Menge fehlende Liter erfasse ich seit Jahren mit einem Selbstbau Ultraschall Abstandsmesser (Deckel bis Pegel)
Der Sensor hat eine Auflösung von 0,5 cm das entspricht bei mir ~ 23 Liter. Die Werte kommen ca. alle 4 Stunden neu und ein paar Sekunden vor Mitternacht habe ich nochmal einen extra Event für beide Werte die ins Log gehen. Tageswerte sind relativ unwichtig, wichtiger ist Woche, Monat und natürlich Jahr.

Dann wäre der GasCalculator die richtige Wahl mit GaszValue = 1 und GasNominalHeatingValue=10600 (kWh/1000l Oel)

Ein besonderes Modul müsste dann aber geschaffen werden, welches deinen sinkenden Stand im Heizöltank in einen kontinuierlichen Verbrauch in m^3 (1000l) Heizölverbrauch umrechnet.
Diese Anzeige darf dann aber nicht "zittern". Das bedeutet, der Zähler darf nur eine Richtung kennen: Nach oben!
Dies könnte man mit einem entsprechend grooooooßen  Abfrageintervall lösen.

Gruß
    Sailor
******************************
Man wird immer besser...

Wzut

THX4Info, habe ich mir schon fast gedacht das es nicht aus dem Stand mal ebenso ohne Zusatzaufwand geht.
Das mit dem nicht zittern ist gar nicht so einfach, da zum einen das Volumen sich leicht ändert beim Wechsel der Umgebungstemperatur und spätestens beim Volltanken gehts steil nach oben :)
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Dracolein

Zitat von: Sailor am 01 März 2020, 19:13:07
Aber bitte daran denken:
a) Der Zaehler muss das Attribut "event-on-change-reading .*" gesetzt haben.
b) Der Calculator eine saubere, durch ":" getrennte Definition zwischen Zaehler-Device und dem Reading haben.


Darf ich hier nochmal um Erklärungen bitten?

a) Der Zähler = das Device, welches im Gascalculator-Device als Zähler-Device definiert wurde? Hier soll das Attribut event-on-change-reading mit ".*" gesetzt werden. Die Bedeutung ist mir klar, aber welcher Nachteil entsteht, wenn dies nicht gesetzt ist? (kann derzeit keine Fehler feststellen)

b) ist mir gänzlich unklar, was gemeint ist.


Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

mirror

Hallo,
ich hatte auch crash nach dem Schalttag.
zu a) war bei mir nicht gesetzt und lief nach Update auch ohne, habe es aber dann gesetzt.
zu b) da ist wohl gemeint wie die Formatierung des logfiles aussehen soll - hab ich so verstanden:
2020-01-01_00:04:44 Gaszaehler ESPEasy_Counter_Gas_Total_EnergyCostDayLast: 5.465
2020-01-01_00:04:44 Gaszaehler ESPEasy_Counter_Gas_Total_EnergyDayLast: 114.328

Sailor

#305
Hallo Draco

Zitat von: Dracolein am 07 März 2020, 19:50:37
Darf ich hier nochmal um Erklärungen bitten?

a) Ich will sicher gehen, dass der notify auch bei den entsprechenden Änderungen am Zählerreading durchdringt.

b) Wenn Dein analoger Gaszaehler von einem fhem device namens "myGasCounter" abgefragt wird und die aufaddierten Zaehlimpulse in dem entsprechenden Reaing mit dem Namen "TotalEnergy" abgelegt werden, so lautet die Definition des GasCalculators wie folgt:

define myGasCalculator GasCalculator myGasCounter:TotalEnergy.*

Gruss
    Sailor
******************************
Man wird immer besser...

Dracolein

Danke für den Hinweis, alle Unklarheiten beseitigt und meine Devices entsprechend angepasst.


Davon ab befinde ich mich mit meinem Gaszähler seit dem 01.03.2020 im ersten ernsthaften Monat.
Was mir auffällt: EnergyCostMonth zeigt derzeit ca. 81 € an. Es hat sich zum Monatswechsel nicht auf Null gesetzt, sondern addiert weiterhin täglich die Tageswerte hinzu seit Mitte Februar. Müsste dies nicht zum 01.03.2020 wieder bei Null starten?
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

Sailor

Hallo Draclolein

Zitat von: Dracolein am 08 März 2020, 08:49:04
Was mir auffällt: EnergyCostMonth zeigt derzeit ca. 81 € an. Es hat sich zum Monatswechsel nicht auf Null gesetzt, sondern addiert weiterhin täglich die Tageswerte hinzu seit Mitte Februar. Müsste dies nicht zum 01.03.2020 wieder bei Null starten?

Ja, wenn ich nicht den Bock geschossen hätte, genau zum Monatswechsel den Bug ins Modul einzuarbeiten...  >:(
Jetzt müssen wir alle bis April warten...

Gruß
    Sailor
******************************
Man wird immer besser...

Dracolein

Ach das war mitunter der Bug, über den hier diskutiert wurde.
Ich bin in Sachen Updates und Übersicht noch nicht Herr der Lage, sorry.
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

octek0815

#309
Hallo Sailor,

wäre es möglich den Tages-, Monats und Jahreswechsel per Parameter (Uhrzeit) einzustellen.
Für mich wäre es sinniger den Wechsel bzw. das Speichern der Vor- Tages, Monats und Jahres Werten kurz vor Mitternacht durchzuführen.

Gleiches gilt im übrigen für ElectricityCalculator und WaterCalculator.

Wäre toll!

Danke und Grüße
Oliver

Dracolein

Zitat von: octek0815 am 11 März 2020, 16:49:52
Hallo Sailor,

wäre es möglich den Tages-, Monats und Jahreswechsel per Parameter (Uhrzeit) einzustellen.
Für mich wäre es sinniger den Wechsel bzw. das Speichern der Vor- Tages, Monats und Jahres Werten kurz vor Mitternacht durchzuführen.

Gleiches gilt im übrigen für ElectricityCalculator und WaterCalculator.

Wäre toll!

Danke und Grüße
Oliver
Habe das über ein at-device gelöst und kopiere mir um 23:59 Uhr den letzten Tages-Ist-Wert auf ein eigenes Reading, um es mit noch richtigem Timestamp im Logfile zu speichern. Die genannten Module erledigen das immer um 00:00:14, womit der Logeintrag dann um 1 Tag verschoben ist.
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

octek0815

Das geht natürlich, aber hätte das gerne im Device direkt und nicht noch weitere Devices.

Gisbert

Hallo Sailor,
hallo Markus,
hallo Dracolein,

ich habe seit gestern abend einen Zähler an meiner Gasuhr (Danke an Dracolein und Papa Romeo, die mich dabei unterstützt haben).
Aktuell steht mein Zähler bei 597, was 5.97 m³ Gas bedeutet.

Wenn ich das Attribut GasCounterOffset auf 6938.15 (m³) Gas setze, was dem Zählerstand vor dem Einbau des Zählers entspricht, dann bekomme ich mächtig große Zahlen bei allen Readings, die ...Energy... enthalten, ganz so, als ob der Gesamtverbrauch nicht in den letzten 4 Jahren seit Einbau mit Stand 0 m³, sondern heute stattgefunden hat. Soll das so sein, oder sind das nur die Anfangswehen und der "Fehler" wächst sich mit jedem Tag mehr raus? Anbei noch ein list.

Ich nehme an, dass das Reading <DestinationDevice>_<SourceCounterReading>_EnergyDay : Energieverbrauch in kWh seit Mitternacht gut geeignet ist, um den täglichen Verbrauch zu loggen und in einer Grafik darzustellen. Die momentane Heizleistung (zeitliche Ableitung des Verbrauchs) bekomme ich dann wohl mit dem Reading <DestinationDevice>_<SourceCounterReading>_PowerCurrent : Aktuelle Heizleistung. (Mittelwert zwischen aktueller und letzter Messung) - sehe ich das richtig so?

Wenn ja, dann logge ich mal diese beiden Readings.

Viele Grüße Gisbert

Internals:
   CFGFN     
   DEF        Temp.EG:Total_monotonic.*
   FUUID      5e8257fd-f33f-e986-e4d6-0136353ea388cd50
   NAME       Gaszaehler
   NOTIFYDEV  Temp.EG
   NR         5389
   NTFY_ORDER 10-Gaszaehler
   REGEXP     Temp.EG:Total_monotonic.*
   STATE      active
   TYPE       GasCalculator
   READINGS:
     2020-03-31 20:19:50   Temp.EG_Total_monotonic_EnergyCostDay 4118.709
     2020-03-31 00:03:39   Temp.EG_Total_monotonic_EnergyCostDayLast 0.222
     2020-03-31 20:19:50   Temp.EG_Total_monotonic_EnergyCostMeter 4118.911
     2020-03-31 20:19:50   Temp.EG_Total_monotonic_EnergyCostMonth 4118.911
     2020-03-31 20:19:50   Temp.EG_Total_monotonic_EnergyCostYear 4118.911
     2020-03-31 20:19:50   Temp.EG_Total_monotonic_EnergyDay 71381.442
     2020-03-31 00:03:39   Temp.EG_Total_monotonic_EnergyDayLast 3.400
     2020-03-31 20:19:50   Temp.EG_Total_monotonic_EnergyMeter 71384.937
     2020-03-31 20:19:50   Temp.EG_Total_monotonic_EnergyMonth 71384.937
     2020-03-31 20:19:50   Temp.EG_Total_monotonic_EnergyYear 71384.937
     2020-03-31 20:19:50   Temp.EG_Total_monotonic_FinanceReserve -3337.853
     2020-03-31 20:19:50   Temp.EG_Total_monotonic_Meter 6944.120
     2020-03-31 20:19:50   Temp.EG_Total_monotonic_MonthMeterReading 9
     2020-03-31 20:19:50   Temp.EG_Total_monotonic_PowerCurrent 0.000
     2020-03-31 20:19:50   Temp.EG_Total_monotonic_PowerDayAver 2029.969
     2020-03-31 20:15:50   Temp.EG_Total_monotonic_PowerDayMax 1069862.730
     2020-03-31 00:03:39   Temp.EG_Total_monotonic_PowerDayMin 0.000
     2020-03-31 00:03:39   Temp.EG_Total_monotonic_Vol1stDay 0.4
     2020-03-30 22:41:11   Temp.EG_Total_monotonic_Vol1stMeter 0.06
     2020-03-30 22:41:11   Temp.EG_Total_monotonic_Vol1stMonth 0.06
     2020-03-30 22:41:11   Temp.EG_Total_monotonic_Vol1stYear 0.06
     2020-03-31 00:03:39   Temp.EG_Total_monotonic_VolLastDay 0.400
     2020-03-30 22:41:11   Temp.EG_Total_monotonic_VolLastMeter 0.060
     2020-03-30 22:41:11   Temp.EG_Total_monotonic_VolLastMonth 0.060
     2020-03-30 22:41:11   Temp.EG_Total_monotonic_VolLastYear 0.060
   helper:
     bm:
       GasCalculator_Attr:
         cnt        12
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        31.03. 19:43:24
         max        6.29425048828125e-05
         tot        0.000498056411743164
         mAr:
           set
           Gaszaehler
           SiPrefixPower
           kW
       GasCalculator_Define:
         cnt        1
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        30.03. 22:35:09
         max        0.0018460750579834
         tot        0.0018460750579834
         mAr:
           HASH(0x55758b3c7520)
           Gaszaehler GasCalculator Temp.EG:Total_monotonic.*
       GasCalculator_Get:
         cnt        28
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        31.03. 05:38:09
         max        0.000901937484741211
         tot        0.00687336921691895
         mAr:
           HASH(0x55758b3c7520)
           Gaszaehler
           ?
       GasCalculator_Notify:
         cnt        4299
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        31.03. 18:18:51
         max        0.224585771560669
         tot        15.4459359645844
         mAr:
           HASH(0x55758b3c7520)
           HASH(0x5575891cb3a8)
       GasCalculator_Set:
         cnt        202
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        31.03. 05:38:09
         max        0.00103902816772461
         tot        0.0462663173675537
         mAr:
           HASH(0x55758b3c7520)
           Gaszaehler
           ?
   system:
     DecimalPlace %.3f
     SiPrefixPowerFactor 1
Attributes:
   BasicPricePerAnnum 170.59
   Currency   €
   DecimalPlace 3
   GasCounterOffset 6938.15
   GasCubicPerCounts 0.01
   GasNominalHeatingValue 10.28
   GasPricePerKWh 0.0577
   GaszValue  1
   MonthOfAnnualReading 7
   MonthlyPayment 101
   ReadingDestination CalculatorDevice
   SiPrefixPower W
   Volume     m³
   room       Heizung
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Gisbert

Nachsatz:

Was hat es mit
attr Gaszaehler SiPrefixPower W
auf sich?
Müsste das nicht kW heißen, da ja auch kWh angegeben sind?

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Sailor

#314
Hallo Gisbert

Zitat von: Gisbert am 31 März 2020, 20:41:22
ich habe seit gestern abend einen Zähler an meiner Gasuhr (Danke an Dracolein und Papa Romeo, die mich dabei unterstützt haben).
Aktuell steht mein Zähler bei 597, was 5.97 m³ Gas bedeutet.

Du hast das Attribut "GasCubicPerCounts" schon mal richtigerweise  auf 0.01 kWh/counts gesetzt

Zitat von: Gisbert am 31 März 2020, 20:41:22
Wenn ich das Attribut GasCounterOffset auf 6938.15 (m³) Gas setze, was dem Zählerstand vor dem Einbau des Zählers entspricht, dann bekomme ich mächtig große Zahlen bei allen Readings, die ...Energy... enthalten, ganz so, als ob der Gesamtverbrauch nicht in den letzten 4 Jahren seit Einbau mit Stand 0 m³, sondern heute stattgefunden hat. Soll das so sein, oder sind das nur die Anfangswehen und der "Fehler" wächst sich mit jedem Tag mehr raus?

Das ist genau richtig; Das waechst sich mit jedem Tag, Monat, Jahr und Ablesezeitraum raus.
Oder du setzt die enstprechenden Werte mit dem fhem-Befehl setReadings manuell.

Nebenbei, denn Offset brauchst du seit Kurzem nicht mehr selbst berechnen. Einfach den Befehl
set myGasCalculator SyncCounter <AktuellerMechanischerZaehlerstand>
eingeben und schon wird das Attribut gesetzt.

Zitat von: Gisbert am 31 März 2020, 20:41:22
Ich nehme an, dass das Reading <DestinationDevice>_<SourceCounterReading>_EnergyDay : Energieverbrauch in kWh seit Mitternacht gut geeignet ist, um den täglichen Verbrauch zu loggen und in einer Grafik darzustellen.

Korrekt

Zitat von: Gisbert am 31 März 2020, 20:41:22
Die momentane Heizleistung (zeitliche Ableitung des Verbrauchs) bekomme ich dann wohl mit dem Reading <DestinationDevice>_<SourceCounterReading>_PowerCurrent : Aktuelle Heizleistung. (Mittelwert zwischen aktueller und letzter Messung) - sehe ich das richtig so?

Ebenfalls korrekt. Aber bei sehr kleinen Verbrauchswerten (im Sommer) und sehr kleinen Abfrageintervallen kann es zum Zittern der Werte kommen.
Das ist im Messfehler aufgrund der Digitalisierung begründet und sollte nicht weiter verwundern...

Gruß
    Sailor
******************************
Man wird immer besser...