GasCalculator (Werte stimmen nicht)

Begonnen von uxtuner, 13 Februar 2023, 12:36:27

Vorheriges Thema - Nächstes Thema

uxtuner

Hallo,

ich hole mir die Werte von einem S0 Counter (1 Tick = 0.01m3) mit Namen "gascounter" (ist ein userreading). Der Gaszähler zeigt m3 an, der aktuelle Stand ist "14449.000"

Folgendes hab ich konfiguriert:
define myGasCalculator GasCalculator EseraCount_ESERA_1C0000000FF1501D:gascounter.*
setreading myGasCalculator EseraCount_ESERA_1C0000000FF1501D_gascounter_CounterDay1st 14449
setreading myGasCalculator EseraCount_ESERA_1C0000000FF1501D_gascounter_CounterMonth1st 14449
setreading myGasCalculator EseraCount_ESERA_1C0000000FF1501D_gascounter_CounterYear1st 14449
setreading myGasCalculator EseraCount_ESERA_1C0000000FF1501D_gascounter_CounterMeter1st 14449


Internals:
   DEF        EseraCount_ESERA_1C0000000FF1501D:gascounter.*
   FUUID      63e9dae8-f33f-55bb-61d1-13b84bc471231e3c
   NAME       myGasCalculator
   NOTIFYDEV  EseraCount_ESERA_1C0000000FF1501D
   NR         430
   NTFY_ORDER 10-myGasCalculator
   REGEXP     EseraCount_ESERA_1C0000000FF1501D:gascounter.*
   STATE      active
   TYPE       GasCalculator
   eventCount 112
   READINGS:
     2023-02-13 07:42:45   EseraCount_ESERA_1C0000000FF1501D_gascounter_CounterDay1st 14449
     2023-02-13 07:39:48   EseraCount_ESERA_1C0000000FF1501D_gascounter_CounterDayLast 19.260
     2023-02-13 07:41:38   EseraCount_ESERA_1C0000000FF1501D_gascounter_CounterMeter1st 14449
     2023-02-13 07:39:48   EseraCount_ESERA_1C0000000FF1501D_gascounter_CounterMeterLast 19.260
     2023-02-13 07:42:18   EseraCount_ESERA_1C0000000FF1501D_gascounter_CounterMonth1st 14449
     2023-02-13 07:39:48   EseraCount_ESERA_1C0000000FF1501D_gascounter_CounterMonthLast 19.260
     2023-02-13 07:43:15   EseraCount_ESERA_1C0000000FF1501D_gascounter_CounterYear1st 14449
     2023-02-13 07:39:48   EseraCount_ESERA_1C0000000FF1501D_gascounter_CounterYearLast 19.260
     2023-02-13 12:24:21   EseraCount_ESERA_1C0000000FF1501D_gascounter_EnergyCostDay 1.132
     2023-02-13 12:24:21   EseraCount_ESERA_1C0000000FF1501D_gascounter_EnergyCostMeter 1.132
     2023-02-13 12:24:21   EseraCount_ESERA_1C0000000FF1501D_gascounter_EnergyCostMonth 1.132
     2023-02-13 12:24:21   EseraCount_ESERA_1C0000000FF1501D_gascounter_EnergyCostYear 1.132
     2023-02-13 12:24:21   EseraCount_ESERA_1C0000000FF1501D_gascounter_EnergyDay 9.175
     2023-02-13 12:24:21   EseraCount_ESERA_1C0000000FF1501D_gascounter_EnergyMeter 9.175
     2023-02-13 12:24:21   EseraCount_ESERA_1C0000000FF1501D_gascounter_EnergyMonth 9.175
     2023-02-13 12:24:21   EseraCount_ESERA_1C0000000FF1501D_gascounter_EnergyYear 9.175
     2023-02-13 12:24:21   EseraCount_ESERA_1C0000000FF1501D_gascounter_FinanceReserve 451.868
     2023-02-13 12:24:21   EseraCount_ESERA_1C0000000FF1501D_gascounter_Meter 14469.280
     2023-02-13 12:24:21   EseraCount_ESERA_1C0000000FF1501D_gascounter_MonthMeterReading 3
     2023-02-13 12:24:21   EseraCount_ESERA_1C0000000FF1501D_gascounter_PowerCurrent 3.270
     2023-02-13 12:24:21   EseraCount_ESERA_1C0000000FF1501D_gascounter_PowerDayAver 5344.498
     2023-02-13 07:55:43   EseraCount_ESERA_1C0000000FF1501D_gascounter_PowerDayMax 544674.723
     2023-02-13 07:55:43   EseraCount_ESERA_1C0000000FF1501D_gascounter_PowerDayMin 0
     2023-02-13 07:55:43   EseraCount_ESERA_1C0000000FF1501D_gascounter_Vol1stDay 14468.27
     2023-02-13 07:55:43   EseraCount_ESERA_1C0000000FF1501D_gascounter_Vol1stMeter 14468.27
     2023-02-13 07:55:43   EseraCount_ESERA_1C0000000FF1501D_gascounter_Vol1stMonth 14468.27
     2023-02-13 07:55:43   EseraCount_ESERA_1C0000000FF1501D_gascounter_Vol1stYear 14468.27
     2023-02-13 07:55:43   EseraCount_ESERA_1C0000000FF1501D_gascounter_VolLastDay 19.260
     2023-02-13 07:55:43   EseraCount_ESERA_1C0000000FF1501D_gascounter_VolLastMeter 19.260
     2023-02-13 07:55:43   EseraCount_ESERA_1C0000000FF1501D_gascounter_VolLastMonth 19.260
     2023-02-13 07:55:43   EseraCount_ESERA_1C0000000FF1501D_gascounter_VolLastYear 19.260
   system:
     DecimalPlace %.3f
     SecondsToday 86400
     SiPrefixPowerFactor 1000
Attributes:
   BasicPricePerAnnum 0
   Currency   €
   DecimalPlace 3
   GasCounterOffset 14449
   GasCubicPerCounts 0.01
   GasNominalHeatingValue 10
   GasPricePerKWh 0.1234
   GaszValue  0.9084
   MonthOfAnnualReading 12
   MonthlyPayment 151.00
   ReadingDestination CalculatorDevice
   SiPrefixPower kW
   Volume     m³
   room       Hersteller->Esera,Zaehler->Gas


Weiterhin habe ich noch eine Readingsgroup angelegt

Internals:
   DEF        <%measure_power>,<Zaehler>,<Tag>,<(m³)>,<Monat>,<(m³)>,<Jahr>,<(m³)>,<hr>
myGas.*Calculator:.*_Meter,.*_EnergyCostDay,.*_EnergyDay,.*_EnergyCostMonth,.*_EnergyMonth,.*_EnergyCostMonthLast,.*_EnergyMonthLast,.*_EnergyCostYear,.*_EnergyYear,.*_EnergyCostYearLast,.*_EnergyYearLast
   FUUID      63e8d234-f33f-55bb-ad4c-9d078a0ef15c5243
   NAME       Gaszaehler
   NR         429
   NTFY_ORDER 50-Gaszaehler
   STATE      Initialized
   TYPE       readingsGroup
   changed    0
   mayBeVisible 1
   CONTENT:
     myGasCalculator 1
   CONTENT2:
   DEVICES:
     ARRAY(0x55d3c9a01cd8)
     ARRAY(0x55d3c996b4c0)
   fhem:
     lastDefChange 12
     last_update 1676286025.01181
   helper:
     DEF       
     nameStyle  {
return "style=text-align:right;font-weight:bold;color:black"
}
     valueFormat {
return "%.2f" if( $READING =~ m/_Meter/ );
return "%.2f&nbsp€" if( $READING =~ m/_EnergyCost/ );
return "%.2f&nbspm³" if( $READING =~ m/_Energy(Day|Month|Year)/ )
}
     valueStyle {
return "style=text-align:right;color:blue" if(( $READING =~ m/_EnergyCostDay/ ) && ( $VALUE < 1 ) );
return "style=text-align:right;color:red" if( $READING =~ m/_EnergyCostDay/  );
return "style=text-align:right;color:blue" if( $READING =~ m/_EnergyCost/ );
return "style=text-align:right"
}
     positions:
       myGasCalculator.EseraCount_ESERA_1C0000000FF1501D_gascounter_EnergyCostDay 2:2
       myGasCalculator.EseraCount_ESERA_1C0000000FF1501D_gascounter_EnergyCostMonth 2:4
       myGasCalculator.EseraCount_ESERA_1C0000000FF1501D_gascounter_EnergyCostYear 2:6
       myGasCalculator.EseraCount_ESERA_1C0000000FF1501D_gascounter_EnergyDay 2:3
       myGasCalculator.EseraCount_ESERA_1C0000000FF1501D_gascounter_EnergyMonth 2:5
       myGasCalculator.EseraCount_ESERA_1C0000000FF1501D_gascounter_EnergyYear 2:7
       myGasCalculator.EseraCount_ESERA_1C0000000FF1501D_gascounter_Meter 2:1
     values:
       formated:
         undef
         ARRAY(0x55d3c60dcb00)
         ARRAY(0x55d3c99599c8)
         ARRAY(0x55d3c9904f88)
         ARRAY(0x55d3c9991bb0)
         ARRAY(0x55d3c76554d8)
         ARRAY(0x55d3c406fb90)
         ARRAY(0x55d3c998ac10)
       orig:
         undef
         ARRAY(0x55d3c991d8e0)
         ARRAY(0x55d3c9963280)
         ARRAY(0x55d3c98a8ed8)
         ARRAY(0x55d3c99561b8)
         ARRAY(0x55d3c9999eb0)
         ARRAY(0x55d3c97475a8)
         ARRAY(0x55d3c98f0bd0)
       prefixsuffix:
         undef
         ARRAY(0x55d3c98fee00)
         ARRAY(0x55d3c9923d18)
         ARRAY(0x55d3c46b2900)
         ARRAY(0x55d3c9994298)
         ARRAY(0x55d3c9926d98)
         ARRAY(0x55d3c998d780)
         ARRAY(0x55d3c99022f8)
Attributes:
   group      Alle Verbraucher
   nameStyle  {
return "style=text-align:right;font-weight:bold;color:black"
}
   room       Zaehler->Gas
   valueFormat {
return "%.2f" if( $READING =~ m/_Meter/ );
return "%.2f&nbsp€" if( $READING =~ m/_EnergyCost/ );
return "%.2f&nbspm³" if( $READING =~ m/_Energy(Day|Month|Year)/ )
}
   valueStyle {
return "style=text-align:right;color:blue" if(( $READING =~ m/_EnergyCostDay/ ) && ( $VALUE < 1 ) );
return "style=text-align:right;color:red" if( $READING =~ m/_EnergyCostDay/  );
return "style=text-align:right;color:blue" if( $READING =~ m/_EnergyCost/ );
return "style=text-align:right"
}


Das Ergebnis sieht so aus wie im Anhang

Leider stimmen die m3 Angaben um den Faktor 10 nicht - was läuft falsch?
Viele Grüße
  Uwe

Intel NUC (VDR & FHEM & HA & AgentDVR), QNAP TS-453, Esera OneWire (8-fach Schalter, Hub, Controller II), EDS 1-Wire Server, Mosquitto Server, Wolf CGW-2 m. ISM7MQTT, Shelly (Plug S, H&T, 2.5, 1 PM, Floodsensor/Rauchmelder), Tado (Thermostat V3+) etc.

uxtuner

ich vermute mal die Readings sind kWh - dann würde es stimmen und ich muss nur die Bezeichnung von m3 in kWh ändern ...
Kann das jemand bestätigen?
Viele Grüße
  Uwe

Intel NUC (VDR & FHEM & HA & AgentDVR), QNAP TS-453, Esera OneWire (8-fach Schalter, Hub, Controller II), EDS 1-Wire Server, Mosquitto Server, Wolf CGW-2 m. ISM7MQTT, Shelly (Plug S, H&T, 2.5, 1 PM, Floodsensor/Rauchmelder), Tado (Thermostat V3+) etc.

thgorjup

#2
Hallo uxtuner,
ich kenne den S0 Counter nicht, aber ich gehe davon aus, dass ein Readkontakt die Umläufe des Magneten an der dritten Nachkommastelle erfasst.
Somit entsprechen 100 Umläufe einem Kubikmeter (1m³). Wenn dein Zähler dies meldet, dann müssen es tatsächlich auch m³ sein.
Die Umrechnung in kWh erfolgt mittels Zustandszahl und Brennwert. Also (P = U * Zz * Bw).

Bei meinem Gaszähler bereche ich die ganzen Werte bereits im Tasmota Script und übergebe sie per MQTT an FHEM.
Ich habe das mit einem Hourcounter gelöst, der stündlich zurück gesetzt wird und zeige diesen als Plot an.
Lässt sich sicher auch anders lösen, aber mir reicht das für die Übersicht des Verbrauchs.

Hier mal der Link zu meinem Wiki mit dem kompletten FHEM Code.
http://wiki.gorjup.de/doku.php?id=public:gaszaehler#konfiguration_in_fhem

Gruß
Thomas
FHEM auf Ubuntu 18.04LTS, 2x nanoCUL, JeeLink, nanoPIR, MQTT, ESP-Easy, HUE.
Sensoren+Aktoren: HM, IT, Lacrosse, Multitrade-PIR, VU+, Somfy

uxtuner

der Zähler macht pro 0.01 m3 einen Tick, die Umrechnung für den GasCalculator macht das Attribut "GasCubicPerCounts"
IMHO ist die Darstellung in den Readings kWh - damit wäre alles ok
Viele Grüße
  Uwe

Intel NUC (VDR & FHEM & HA & AgentDVR), QNAP TS-453, Esera OneWire (8-fach Schalter, Hub, Controller II), EDS 1-Wire Server, Mosquitto Server, Wolf CGW-2 m. ISM7MQTT, Shelly (Plug S, H&T, 2.5, 1 PM, Floodsensor/Rauchmelder), Tado (Thermostat V3+) etc.