Stromzähler,Gaszähler und wasserzähler

Begonnen von Sebastian84, 02 Juli 2024, 23:09:56

Vorheriges Thema - Nächstes Thema

Sebastian84

Guten Abend

Ich möchte gerne vom alten Stromzähler (Iskra Type T3F-01 75U/kwh,
Von Gaszähler (G4 Rf1 Itron) und
Vom Wasserzähler (MAP 16) die Wärte ermitteln und berechen.
Ich bröchte eine Schritt für Schritt Anleitung für Fhem. Der Stromzähler ist neben mein Rasberry. Der Gaszähler und Wasserzähler müsste über Wlan zum Rasberry ausgerüstet werden.

rabehd

Das wären 3 Themen und da würde ich mal mit einer Suche hier im Forum anfangen.
Hardware?
Auch funktionierende Lösungen kann man hinterfragen.

Aurel_B


Sebastian84

Ich wollte mir jetzt ein Aqara Tür- und Fenstersensor hollen und ein externen Reedkontakt mit Kabel anlöten. Der Reedkonakt sitzt dann am Gaszähler. Der Aqare Sensor binde ich in Fhem ein. Nur jetzt weiß ich nicht wie ich da jetzt ein Zähler einrichte und mir damit die die kosten berechne.

MadMax-FHEM

FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

Aber muss da nicht vorher ein Zähler Programiert werden?

MadMax-FHEM

Naja mit deinen überschwänglich ausufernden Infos: wie soll man helfen?

Evtl. noch HourCounter?
https://wiki.fhem.de/wiki/HourCounter

Kommt halt drauf an was dein Aqara liefert, nehme an Impulse?
Was bedeutet dann jeder Impuls?

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

rabehd

Zitat von: MadMax-FHEM am 10 Juli 2024, 19:53:37Kommt halt drauf an was dein Aqara liefert, nehme an Impulse?
Was bedeutet dann jeder Impuls?

Als "Fenstersensor" wohl ein on/off (1/0). Das on wahrscheinlich nur kurz. Man könnte also die on's zählen und mit der Menge multiplizieren.
Zuerst sollte der "Fenstersensor" mal in fhem eingebunden werden, das Ergebnis (list) hier gepostet werden und dann gibt es bestimmt viel an konkreter Hilfe. Ich kann nicht klar herauslesen, ob nicht schon das Einbinden des "Fenstersensors" die Herausforderung ist.
Schade das der Ersteller nicht wirklich auf die Hinweise eingeht und einfach mal weiterschreibt.
Auch funktionierende Lösungen kann man hinterfragen.

Sebastian84

Sorry. In 2 Wochen bin ich wieder zuhause. Dann werde ich mich an
alle Ratschlege halten,und mich melden.

Sebastian84

Ich habe jetzt über ein Fensterkontakt und ein Reedkontakt am Gaszähler angebracht. Ich bekomme jetzt auch ein Signal über Open und closed.

Der Auszug vom Gaszähler

DEF        sensor 39  IODev=deconz
   FUUID      66a64118-f33f-cdd4-8bb4-7b5f18870d2b31c1
   FVERSION   31_HUEDevice.pm:0.262040/2022-07-09
   ID         S39
   INTERVAL   
   IODev      deconz
   NAME       Gaszaehler
   NR         510
   STATE      open
   TYPE       HUEDevice
   eventCount 8
   has_events 1
   manufacturername LUMI
   modelid    lumi.sensor_magnet.aq2
   name       Gaszaehler
   on         1
   reachable  1
   swversion  0.0.0_0003
   type       ZHAOpenClose
   uniqueid   00:15:8d:00:0a:b3:82:d4-01-0006
   READINGS:
     2024-07-29 10:57:10   IODev           deconz
     2024-07-29 11:47:37   battery         100
     2024-07-29 11:47:37   batteryPercent  100
     2024-07-29 11:47:37   lastseen        2024-07-29T09:47Z
     2024-07-29 11:47:37   reachable       1
     2024-07-29 11:47:37   state           open
     2024-07-29 11:47:37   temperature     29
   helper:
     devtype    S
     state      open
     update_timeout 1
     configList:
     json:
       ep         1
       etag       bfb6cdd05c77746e62ddf983f5e31daa
       lastannounced
       lastseen   2024-07-29T09:47Z
       manufacturername LUMI
       modelid    lumi.sensor_magnet.aq2
       name       Gaszaehler
       swversion  0.0.0_0003
       type       ZHAOpenClose
       uniqueid   00:15:8d:00:0a:b3:82:d4-01-0006
       config:
         battery    100
         temperature 2900
       state:
         lastupdated 2024-07-29T09:47:37.612
     setList:
Attributes:
   model      lumi.sensor_magnet.aq2
   room       ESPEasy
 

Wie bekomme ich den jetzt ein Zähler hin der die closed Signale Zählt und die dan über Verbrauch Tag Woche Monat Jahr hinbekomme und den Preis erechne.

MadMax-FHEM

Wie geschrieben denke ich: https://wiki.fhem.de/wiki/HourCounter und https://wiki.fhem.de/wiki/GasCalculator (https://wiki.fhem.de/wiki/ElectricityCalculator)

Sollte gehen?

HourCounter (wie der Name sagt) zählt und das dann als Input für GasCalculator? Evtl. halt dann schauen was das Zählen des HourCounters in "Geld" bedeutet und dann (per userReadings) im GasCalculator berechnen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

  define Zaehler HourCounter Gaszaehler:closed Gaszaehler:open 
Müsste ich den dummy Zähler dann so erstellen?

MadMax-FHEM

Vermutlich, wenn "on" == "closed"

Probiere es doch einfach aus... ;)

Mit einem Auszug aus dem Eventmonitor könnte man das besser beurteilen.
Bzw. kannst du die dort erstellte RegEx doch einfach übernehmen.

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

Define Gasverbrauch gasculculator Zaehler   
Müsste so der Gasculcuator definiert werden?

MadMax-FHEM

Denke nicht.
Zitat von: https://fhem.de/commandref_DE.html#GasCalculatorEine gültige Regular Expression (regex or regexp) von dem Event wo der Zählerstand gefunden werden kann

Aber auch hier gilt die gleiche Antwort wie oben...

Selbst lesen/einlernen ist nicht so deins...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

Der Zähler zählt richtig. Aber in Gasverbrauch wird nicht gezählt.

Save config
anyViews
 0_System
1_UG
2_EG
3_1.OG
4_2.OG
Wecker.Aus 5_Klingel
 6_Heizung
 7_Muelltonne
 8_Zuhause
 
 
       9_Batterie
ESPEasy
 FBDECT
 Garten
HUEDevice
ge_wht_steckdose Keller
 Plots
 Unsorted
icoEverything Everything
Commandref
Remote doc
Edit files
Select style
Event monitor

Internals:
   CFGFN     
   DEF        Gaszaehler:closed Gaszaehler:open
   FUUID      66a7a8d5-f33f-cdd4-59cc-a43a9a0efc2df93c
   NAME       Zaehler
   NR         9575
   NTFY_ORDER 50-Zaehler
   STATE      2
   TYPE       HourCounter
   VERSION    1.0.1.2 - 24.12.2014
   eventCount 11
   READINGS:
     2024-07-29 17:51:39   countsOverall   2
     2024-07-29 17:51:39   countsPerDay    2
     2024-07-29 17:51:39   pauseTimeEdge   314
     2024-07-29 17:51:39   pauseTimeIncrement 0
     2024-07-29 17:51:39   pauseTimeOverall 3034
     2024-07-29 17:51:39   pauseTimePerDay 3034
     2024-07-29 17:51:39   pulseTimeEdge   37
     2024-07-29 17:51:39   pulseTimeIncrement 37
     2024-07-29 17:51:39   pulseTimeOverall 1485
     2024-07-29 17:51:39   pulseTimePerDay 1485
     2024-07-29 17:51:39   state           2
     2024-07-29 17:51:39   tickChanged     4
     2024-07-29 16:36:20   tickDay         0
     2024-07-29 17:00:00   tickHour        1
     2024-07-29 16:36:20   tickMonth       0
     2024-07-29 17:51:39   tickUpdated     6
     2024-07-29 16:36:20   tickWeek        0
     2024-07-29 16:36:20   tickYear        0
     2024-07-29 17:51:39   value           0
   helper:
     OFF_Regexp Gaszaehler:open
     ON_Regexp  Gaszaehler:closed
     calledByEvent
     changedTimestamp 2024-07-29 17:51:39
     forceClear
     forceDayChange
     forceHourChange
     forceMonthChange
     forceWeekChange
     forceYearChange
     isFirstRun
     sdRoundHourLast 1722265200
     value      0
     cmdQueue:
Attributes:
   room       ESPEasy

 








DEF        Zaehler
   FUUID      66a7aa8f-f33f-cdd4-6fec-b9934dc1eb317676
   NAME       Gasverbrauch
   NOTIFYDEV  Zaehler
   NR         9830
   NTFY_ORDER 10-Gasverbrauch
   REGEXP     Zaehler
   STATE      active
   TYPE       GasCalculator
   system:
     DecimalPlace %.3f
     SiPrefixPowerFactor 1
Attributes:
   BasicPricePerAnnum 0
   Currency   €
   DecimalPlace 3
   GasCounterOffset 0
   GasCubicPerCounts 0.01
   GasNominalHeatingValue 10
   GasPricePerKWh 0.0654
   GaszValue  1
   MonthOfAnnualReading 5
   MonthlyPayment 0
   ReadingDestination CalculatorDevice
   SiPrefixPower W
   Volume     m³
   room       ESPEasy
 

MadMax-FHEM

Habe ich doch geschrieben, dass es so verm. nicht funktionieren wird...

Und auch wo steht wie es sein müsste...
Und welche Infos u.U. helfen würden...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

   CFGFN     
   DEF        Zaehler:state:.*
   FUUID      66a7c709-f33f-cdd4-b4f6-c83784957c038ead
   NAME       Gasverbrauch
   NOTIFYDEV  Zaehler
   NR         14425
   NTFY_ORDER 10-Gasverbrauch
   REGEXP     Zaehler:state:.*
   STATE      active
   TYPE       GasCalculator
   eventCount 10
   READINGS:
     2024-07-29 19:00:00   Zaehler_state_CounterDay1st 0.030
     2024-07-29 19:00:00   Zaehler_state_CounterDayLast 0.030
     2024-07-29 19:00:00   Zaehler_state_CounterMeter1st 0.030
     2024-07-29 19:00:00   Zaehler_state_CounterMeterLast 0.030
     2024-07-29 19:00:00   Zaehler_state_CounterMonth1st 0.030
     2024-07-29 19:00:00   Zaehler_state_CounterMonthLast 0.030
     2024-07-29 19:00:00   Zaehler_state_CounterYear1st 0.030
     2024-07-29 19:00:00   Zaehler_state_CounterYearLast 0.030
     2024-07-29 19:00:00   Zaehler_state_WFRDayMax 0
     2024-07-29 19:00:00   Zaehler_state_WFRDayMin 0
   system:
     DecimalPlace %.3f
     SiPrefixPowerFactor 1
Attributes:
   BasicPricePerAnnum 0
   Currency   €
   DecimalPlace 3
   GasCounterOffset 0
   GasCubicPerCounts 0.01
   GasNominalHeatingValue 10
   GasPricePerKWh 0.0654
   GaszValue  1
   MonthOfAnnualReading 5
   MonthlyPayment 0
   ReadingDestination CalculatorDevice
   SiPrefixPower W
   Volume     m³
   room       ESPEasy
 
Wie kann ich den jetzt mir den Gesamtzähler( 8175,204 )Stand mit vortlaufenden werten Zählen lassen?
 

MadMax-FHEM

Ich habe jetzt mehrfach gelesen...
Unabhängig davon, dass das kein deutscher Satz ist: ich habe keine Ahnung was du meinst...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

Ich wollte den Gesamt Zählerstand 8175,204m3 vortlaufend Zählen lassen.

MadMax-FHEM

Ich nutze das Modul nicht...
Würde aber vermuten (laut commandref), dass das mit den set-Befehlen möglich sein sollte.

Das Attribut offset klingt nicht nach dem was ich vermute, dass du vielleicht willst...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

#21
   DEF        Zaehler:state:.*
   FUUID      66a87c13-f33f-cdd4-8267-5cbaff8b25113166
   NAME       Gasverbrauch
   NOTIFYDEV  Zaehler
   NR         45843
   NTFY_ORDER 10-Gasverbrauch
   REGEXP     Zaehler:state:.*
   STATE      Zaehlerstand:255.667 <br/><br/>Verbrauch_Heute:    12.400 Kwh<br/> Kosten_Heute:1.219 €<br/><br/>Verbrauch_Monat:12.400 Wkh <br/>Kosten_Monat: 1.219 €<br/><br/>Verbrauch_Jahr:12.400 Wkh<br/>Kosten_Jahr:1.219 €
   TYPE       GasCalculator
   eventCount 47
   READINGS:
     2024-07-30 07:39:01   Zaehler_state_CounterDay1st 0.060
     2024-07-30 07:39:01   Zaehler_state_CounterDayLast 0.060
     2024-07-30 07:39:01   Zaehler_state_CounterMeter1st 0.060
     2024-07-30 07:58:23   Zaehler_state_CounterMeterLast 0.060
     2024-07-30 07:39:01   Zaehler_state_CounterMonth1st 0.060
     2024-07-30 07:39:01   Zaehler_state_CounterMonthLast 0.060
     2024-07-30 07:39:01   Zaehler_state_CounterYear1st 0.060
     2024-07-30 07:39:01   Zaehler_state_CounterYearLast 0.060
     2024-07-30 10:00:00   Zaehler_state_EnergyCostDay 1.219
     2024-07-30 10:00:00   Zaehler_state_EnergyCostMeter 1.219
     2024-07-30 10:00:00   Zaehler_state_EnergyCostMonth 1.219
     2024-07-30 10:00:00   Zaehler_state_EnergyCostYear 1.219
     2024-07-30 10:00:00   Zaehler_state_EnergyDay 12.400
     2024-07-30 10:00:00   Zaehler_state_EnergyMeter 12.400
     2024-07-30 10:00:00   Zaehler_state_EnergyMonth 12.400
     2024-07-30 10:00:00   Zaehler_state_EnergyYear 12.400
     2024-07-30 10:00:00   Zaehler_state_FinanceReserve -1.219
     2024-07-30 10:00:00   Zaehler_state_Meter 1.300
     2024-07-30 10:00:00   Zaehler_state_MonthMeterReading 3
     2024-07-30 10:00:00   Zaehler_state_PowerCurrent 0.000
     2024-07-30 10:00:00   Zaehler_state_PowerDayAver 255.667
     2024-07-30 08:56:41   Zaehler_state_PowerDayMax 3600.000
     2024-07-30 08:44:17   Zaehler_state_PowerDayMin -116
     2024-07-30 07:39:01   Zaehler_state_Vol1stDay 0.06
     2024-07-30 07:39:01   Zaehler_state_Vol1stMeter 0.06
     2024-07-30 07:39:01   Zaehler_state_Vol1stMonth 0.06
     2024-07-30 07:39:01   Zaehler_state_Vol1stYear 0.06
     2024-07-30 07:39:01   Zaehler_state_VolLastDay 0.060
     2024-07-30 07:39:01   Zaehler_state_VolLastMeter 0.060
     2024-07-30 07:39:01   Zaehler_state_VolLastMonth 0.060
     2024-07-30 07:39:01   Zaehler_state_VolLastYear 0.060
     2024-07-30 07:39:01   Zaehler_state_WFRDayMax 0
     2024-07-30 07:39:01   Zaehler_state_WFRDayMin 0
   system:
     DecimalPlace %.3f
     SiPrefixPowerFactor 1
Attributes:
   BasicPricePerAnnum 0
   Currency   &#8364;
   DecimalPlace 3
   GasCounterOffset 0
   GasCubicPerCounts 0.1
   GasNominalHeatingValue 10
   GasPricePerKWh 0.0983
   GaszValue  1
   MonthOfAnnualReading 5
   MonthlyPayment 0
   ReadingDestination CalculatorDevice
   SiPrefixPower W
   Volume     m&#179;
   group      Gaszaehler
   icon       gasmeter2
   room       ESPEasy
   stateFormat Zaehlerstand:Zaehler_state_PowerDayAver <br/><br/>Verbrauch_Heute:    Zaehler_state_EnergyDay Kwh<br/> Kosten_Heute:Zaehler_state_EnergyCostDay €<br/><br/>Verbrauch_Monat:Zaehler_state_EnergyMonth Wkh <br/>Kosten_Monat: Zaehler_state_EnergyCostMonth €<br/><br/>Verbrauch_Jahr:Zaehler_state_EnergyYear Wkh<br/>Kosten_Jahr:Zaehler_state_EnergyCostYear €
 

Das klappt alles.
Jetzt würde ich gerne ein Reading haben Was den Gaszählerstand zb.8175.345 mit den Wert aus den Reading:Zaehler_state_Meter zusammen rechnet. Und Wenn sich der Wert in Reading:Zaehler_Meter ändert sich automatisch auf den Gaszählerstand addiert.

MadMax-FHEM

#22
Zitat von: Sebastian84 am 30 Juli 2024, 10:19:07Jetzt würde ich gerne ein Reading haben Was den Gaszählerstand zb.8175.345 mit den Wert aus den Reading:Zaehler_state_Meter zusammen rechnet.
Ich hab's jetzt wieder mehrmals gelesen und: auch das ist kein Satz den ich verstehen kann...

Zaehler_state_Meter: habe ich gefunden

Gaszählerstand zb.8175.345 -> konnte ich nicht finden

Ansonsten:

notify auf eines oder beide Events (also wenn sich Gaszählerstand ändert oder Zaehler_state_Meter) und dann zusammenzählen (oder was auch immer) und dann per setreading in eines (oder beide) Devices schreiben.

userReadings entweder dort wo es Gaszählerstand gibt (Trigger nicht vergessen!) oder am Device Gasverbrauch (Trigger dann auf Zaehler_state_Meter) und dort dann die Berechnung durchführen die du willst

Beim userReadings wird halt nur "gerechnet", wenn am Device an dem es "dran hängt" ein passender Event kommt.
Beim notify (wenn du auf beide Ereignisse triggerst) wird immer berechnet...

EDIT: ein at geht nat. auch, wenn du es beispielsweise regelmässig oder zu bestimmten Zeiten haben willst... Und nat. weitere Möglichkeiten...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

Die 8175.345 ist der Zählerstand den ich abgelesen habe [der ist nicht in Fhem] und dazu möchte ich das Reading:Zaehler_state_Meter
Addieren damit ich daraus den Zehlerstand habe.

rih

#24
Ich vermute, du willst den aktuellen Gaszählerstand in FHEM sehen.
Dazu musst du das Reading "Zaehler_state_CounterMeter1st" per set-Befehl mit deinem Zählerstand überschreiben. Ebenso kannst du die Readings "Zaehler_state_CounterMonth1st", "Zaehler_state_CounterYear1st" sowie die "...MonthLast" und "...YearLast"-Readings auf plausible Zählerstände anpassen, damit du nicht bis zum Monats -oder Jahresende auf die entsprechenden Werte warten musst. Du musst nichts selbst berechnen.
Entschuldige, wenn ich falsch liege bzw. dich falsch verstanden habe.

MadMax-FHEM

Wenn es so ist, wie rih schreibt: hatte ich bereits weiter oben geschrieben...

(Ansonsten: userReadings, Trigger auf Zaehler_state_Meter und da dann einfach zum Wert deine Zahl addieren -> fertig)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

Also muss ich alle
ZitatZaehler_state_CounterMeter1st" per set-Befehl mit deinem Zählerstand überschreiben. Ebenso kannst du die Readings "Zaehler_state_CounterMonth1st", "Zaehler_state_CounterYear1st" sowie die "...MonthLast" und "...YearLast"-Readings auf plausible Zählerstände anpassen
Mit z.b. 8172.345 eintagen und dann wie bei jeder Zählung von Reading  Zaehler_state_Meter weiter auf den Wert 8172.345 addierst wird?

rih

Zitat von: Sebastian84 am 30 Juli 2024, 11:42:54Mit z.b. 8172.345 eintagen und dann wie bei jeder Zählung von Reading  Zaehler_state_Meter weiter auf den Wert 8172.345 addierst wird?
Ja, der weitere Verbrauch wird zu diesem Wert addiert und sollte dann, sofern dein Reedkontakt korrekt funktioniert, immer den realen Zählerstand abbilden.

Sebastian84

Ich hab die Zählerstand eingegben

DEF        Zaehler:state:.*
   FUUID      66a87c13-f33f-cdd4-8267-5cbaff8b25113166
   NAME       Gasverbrauch
   NOTIFYDEV  Zaehler
   NR         45843
   NTFY_ORDER 10-Gasverbrauch
   REGEXP     Zaehler:state:.*
   STATE      Zaehlerstand:8173.021<br/><br/>Verbrauch_Heute:    17.400 Kwh<br/> Kosten_Heute:1.710 €<br/><br/>Verbrauch_Monat:17.400 Wkh <br/>Kosten_Monat: 1.710 €<br/><br/>Verbrauch_Jahr:17.400 Wkh<br/>Kosten_Jahr:1.710 €
   TYPE       GasCalculator
   eventCount 73
   READINGS:
     2024-07-30 07:39:01   Zaehler_state_CounterDay1st 0.060
     2024-07-30 07:39:01   Zaehler_state_CounterDayLast 0.060
     2024-07-30 11:28:32   Zaehler_state_CounterMeter1st 8173.021
     2024-07-30 12:49:05   Zaehler_state_CounterMeterLast 8173.021
     2024-07-30 12:46:05   Zaehler_state_CounterMonth1st 8173.021
     2024-07-30 12:47:56   Zaehler_state_CounterMonthLast 8173.021
     2024-07-30 12:46:27   Zaehler_state_CounterYear1st 8173.021
     2024-07-30 12:48:13   Zaehler_state_CounterYearLast 8173.021
     2024-07-30 18:00:00   Zaehler_state_EnergyCostDay 1.710
     2024-07-30 18:00:00   Zaehler_state_EnergyCostMeter 1.710
     2024-07-30 18:00:00   Zaehler_state_EnergyCostMonth 1.710
     2024-07-30 18:00:00   Zaehler_state_EnergyCostYear 1.710
     2024-07-30 18:00:00   Zaehler_state_EnergyDay 17.400
     2024-07-30 18:00:00   Zaehler_state_EnergyMeter 17.400
     2024-07-30 18:00:00   Zaehler_state_EnergyMonth 17.400
     2024-07-30 18:00:00   Zaehler_state_EnergyYear 17.400
     2024-07-30 18:00:00   Zaehler_state_FinanceReserve -1.710
     2024-07-30 18:00:00   Zaehler_state_Meter 1.800
     2024-07-30 18:00:00   Zaehler_state_MonthMeterReading 3
     2024-07-30 18:00:00   Zaehler_state_PowerCurrent 0.000
     2024-07-30 18:00:00   Zaehler_state_PowerDayAver 113.601
     2024-07-30 08:56:41   Zaehler_state_PowerDayMax 3600.000
     2024-07-30 08:44:17   Zaehler_state_PowerDayMin -116
     2024-07-30 07:39:01   Zaehler_state_Vol1stDay 0.06
     2024-07-30 07:39:01   Zaehler_state_Vol1stMeter 0.06
     2024-07-30 07:39:01   Zaehler_state_Vol1stMonth 0.06
     2024-07-30 07:39:01   Zaehler_state_Vol1stYear 0.06
     2024-07-30 07:39:01   Zaehler_state_VolLastDay 0.060
     2024-07-30 07:39:01   Zaehler_state_VolLastMeter 0.060
     2024-07-30 07:39:01   Zaehler_state_VolLastMonth 0.060
     2024-07-30 07:39:01   Zaehler_state_VolLastYear 0.060
     2024-07-30 07:39:01   Zaehler_state_WFRDayMax 0
     2024-07-30 07:39:01   Zaehler_state_WFRDayMin 0
   system:
     DecimalPlace %.3f
     SiPrefixPowerFactor 1
Attributes:
   BasicPricePerAnnum 0
   Currency   &#8364;
   DecimalPlace 3
   GasCounterOffset 0
   GasCubicPerCounts 0.1
   GasNominalHeatingValue 10
   GasPricePerKWh 0.0983
   GaszValue  1
   MonthOfAnnualReading 5
   MonthlyPayment 0
   ReadingDestination CalculatorDevice
   SiPrefixPower W
   Volume     m&#179;
   group      Gaszaehler
   icon       gasmeter2
   room       ESPEasy
   stateFormat Zaehlerstand:Zaehler_state_CounterMeter1st<br/><br/>Verbrauch_Heute:    Zaehler_state_EnergyDay Kwh<br/> Kosten_Heute:Zaehler_state_EnergyCostDay €<br/><br/>Verbrauch_Monat:Zaehler_state_EnergyMonth Wkh <br/>Kosten_Monat: Zaehler_state_EnergyCostMonth €<br/><br/>Verbrauch_Jahr:Zaehler_state_EnergyYear Wkh<br/>Kosten_Jahr:Zaehler_state_EnergyCostYear €
 
Aber die Werte werden nicht Aktualisiert.

MadMax-FHEM

#29
Wo hast du das "Zaehler:state:.*" her?

Selbst "erfunden" oder z.B. durch Eventmonitor?

Ich dachte immer bei state kommt state im Event nicht vor...

Wobei ich dachte du meintest es würde tun?
EDIT: ja, oben hast du geschrieben, dass alles geht...

Aber wie so oft (eigentlich immer) sind Infos von dir sehr spärlich (fast unbrauchbar)...

EDIT: kommen Events von deinem Zähler? Wie sehen die aus? -> Eventmonitor...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

  2024-07-30 20:00:00 GasCalculator Gasverbrauch Zaehler_state_PowerCurrent: 0.000
2024-07-30 20:00:00 GasCalculator Gasverbrauch Zaehler_state_PowerDayAver: 101.677
2024-07-30 20:00:00 GasCalculator Gasverbrauch Zaehler_state_EnergyDay: 18.400
2024-07-30 20:00:00 GasCalculator Gasverbrauch Zaehler_state_EnergyMonth: 18.400
2024-07-30 20:00:00 GasCalculator Gasverbrauch Zaehler_state_EnergyYear: 18.400
2024-07-30 20:00:00 GasCalculator Gasverbrauch Zaehler_state_EnergyMeter: 18.400
2024-07-30 20:00:00 GasCalculator Gasverbrauch Zaehler_state_EnergyCostDay: 1.809
2024-07-30 20:00:00 GasCalculator Gasverbrauch Zaehler_state_EnergyCostMonth: 1.809
2024-07-30 20:00:00 GasCalculator Gasverbrauch Zaehler_state_EnergyCostYear: 1.809
2024-07-30 20:00:00 GasCalculator Gasverbrauch Zaehler_state_EnergyCostMeter: 1.809
2024-07-30 20:00:00 GasCalculator Gasverbrauch Zaehler_state_FinanceReserve: -1.809
2024-07-30 20:00:00 GasCalculator Gasverbrauch Zaehler_state_Meter: 1.900
2024-07-30 20:00:00 GasCalculator Gasverbrauch Zaehler_state_MonthMeterReading: 3
2024-07-30 20:00:00 HourCounter Zaehler countsPerDay: 19
2024-07-30 20:00:00 HourCounter Zaehler countsOverall: 24
2024-07-30 20:00:00 HourCounter Zaehler pulseTimeIncrement: 32
2024-07-30 20:00:00 HourCounter Zaehler pulseTimeEdge: 32
2024-07-30 20:00:00 HourCounter Zaehler pulseTimePerDay: 20312
2024-07-30 20:00:00 HourCounter Zaehler pulseTimeOverall: 30366
2024-07-30 20:00:00 HourCounter Zaehler pauseTimeIncrement: 769
2024-07-30 20:00:00 HourCounter Zaehler pauseTimeEdge: 10005
2024-07-30 20:00:00 HourCounter Zaehler pauseTimePerDay: 51688
2024-07-30 20:00:00 HourCounter Zaehler pauseTimeOverall: 68254
2024-07-30 20:00:00 HourCounter Zaehler value: 0
2024-07-30 20:00:00 HourCounter Zaehler 19
2024-07-30 20:00:00 HourCounter Zaehler tickUpdated: 77
2024-07-30 20:00:00 HourCounter Zaehler tickHour 

Das kommt bei Zaehler im Event Monitor raus

MadMax-FHEM

#31
Wie vermutet: kein state
EDIT: ich frage ich mich wie du dann schreiben kannst alles geht

Ich nutze ja weder HourCounter noch GasCalculator aber wenn ich die commandref lese (kannst du auch tun) steht dort, dass in der RegEx ein ständig steigender Zähler bei GasCalculator zu nehmen ist.

Da musst du halt sehen, was bei deinem Zähler der (für dich) passende Wert/Reading ist.

Eventmonitor hast du ja bereits, da dann die passende Zeile markieren und z.B. ein notify anlegen lassen oder beim Anlegen die RegEx kopieren und verwenden.
(wenn du tatsächlich ein notify anlegen hast lassen: kannst du nach dem Kopieren der RegEx wieder löschen)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

rih

@Sebastian: es ist wirklich schwierig, dir zu helfen. Ich bewundere Joachim für seine Geduld.

Lies dir doch bitte das Wiki zum ElectricityCalculator (ggf. nochmal) durch. Ist genau daselbe wie der GasCalculator:
https://wiki.fhem.de/wiki/ElectricityCalculator

Kannst du englisch? Du darfst z.B. bei Month1st nicht den aktuellen Zählerstand eintragen! Month1st ist der (in deinem Fall geschätzte) Zählerstand am 1.7. Der muss natürlich kleiner sein als der aktuelle!
Vermutlich ist der GasCalculator durch die falsch eingetragenen Werte so durcheinander, dass er nun nicht mehr zählt.

Ich schlage vor, du löscht den GasCalculator und legst ihn neu an. Die Definition scheint ja zu passen, wenn er schon mal gezählt hat. Und dann trägst du nur im Reading ...Meter1st deinen aktuellen Zählerstand ein. Alle anderen Readings lässt du wie sie sind und beobachtest das Ganze mal eine Weile, damit du siehst, wie sich die Readings verändern.
Die anderen 1st-Readings solltest du nur ändern, wenn du verstanden hast, wofür sie jeweils stehen! Du musst sie aber nicht unbedingt ändern, mit der Zeit werden die entsprechenden Readings die Tages-, Monats- und Jahresverbräuche automatisch beinhalten.

Sebastian84

#33
Ich hab jetzt nochmal alles gelöscht und neu gemacht. Er zäht alles wie er soll. Aber wenn ich in den Wert Meter1st des Abgelesenden Zählers eintrage, wird der Wert nicht nach dem nächsten Zählen addiert und bleibt beim Hand eingetragenden Zählerstand.

Währe ein userreading Zaehler_state_CounterMeter1st +z.b. [8173.231].
Damit hätte ich doch immer den aktuellen Zählerstand?
Ich weiß nur nicht wie ich das schreiben muss. Hab auch nachgelesen,werde daraus aber leider nicht schlau.

MadMax-FHEM

#34
Zitat von: Sebastian84 am 30 Juli 2024, 23:53:44Aber wenn ich in den Wert Meter1st des Abgelesenden Zählers eintrage
Wie hast du das gemacht?
Wäre gut zu wissen, also genau das was du getan hast (am besten wäre copy&paste des Befehls gewesen).
Zumindest ein neues list wäre schon mal was.

Nur zu schreiben: ich habe was gemacht und dann geht was nicht mehr hilft halt nicht zu helfen... :-|

Zitat von: Sebastian84 am 30 Juli 2024, 23:53:44Währe ein userreading Zaehler_state_CounterMeter1st +z.b. [8173.231].
Würde verm. gehen aber so wie ich das Modul verstehe, gehen dann die "Statistikwerte" bzw. Monats-/Jahren-Werte usw. nicht mehr. Bzw. müsstest du dir dafür selbst was überlegen und dann könntest du verm. gleich was basteln ohne das Modul zu nutzen...

Zitat von: Sebastian84 am 30 Juli 2024, 23:53:44Ich weiß nur nicht wie ich das schreiben muss. Hab auch nachgelesen,werde daraus aber leider nicht schlau.
Wo hast du nachgelesen?

Eigentlich ganz einfach:

attr DeviceName userReadings GewünschterReadingName:Trigger {Berechnung in Perl}

Evtl. so:

attr GasCalculator userReadings Zaehler_state_CounterMeter1st_calc:Zaehler_state_CounterMeter1st.* {return ReadingsNum($name, "Zaehler_state_CounterMeter1st", 0) + 8173.231}

8173.231 -> ist das ein Dezimalstellen-Punkt oder soll das 8173231 sein?
(halt entsprechend anpassen)

Aber da muss ich rih beipflichten: einfach an Readings "rumbasteln" ohne zu verstehen wie die Zusammenhänge sind, hmmm...

Oder halt gleich beim Zähler-Device korrigieren, geht im Prinzip genauso, musst du halt anpassen.
Evtl. ist das besser, da dann die weiteren Mechanismen von GasCalculator weiter funktionieren sollten/könnten.

Aber wie schon geschrieben: ich nutze das Modul nicht.

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

rih

#35
Zitat von: Sebastian84 am 30 Juli 2024, 23:53:44Ich hab jetzt nochmal alles gelöscht und neu gemacht. Er zäht alles wie er soll. Aber wenn ich in den Wert Meter1st des Abgelesenden Zählers eintrage, wird der Wert nicht nach dem nächsten Zählen addiert und bleibt beim Hand eingetragenden Zählerstand.

@Sebastian: entschuldige bitte, im Beitrag #27 habe ich Mist bzw. missverständlich geschrieben.

Das Reading "...Meter1st" ist dein Anfangszählerstand. Der ändert sich nicht. Der ist die Grundlage für die weitere Verbrauchs- und Zählerstandsermittlung. Du hast soweit alles richtig gemacht.

Dein aktueller Zählerstand sollte im Reading "...Meter" stehen, ohne 1st hinten dran. Schau dir doch die Readings mal genau an! Und zeig bitte nochmal die aktuelle Readingsliste.

Du brauchst wirklich keine Userreadings etc. Der GasCalculator berechnet dir das alles alleine.

Sebastian84

          Zaehler:countsOverall.*
   FUUID      66aa418e-f33f-cdd4-35af-f1fad83eada07667
   NAME       Gasverbrauch
   NOTIFYDEV  Zaehler
   NR         45588
   NTFY_ORDER 10-Gasverbrauch
   REGEXP     Zaehler:countsOverall.*
   STATE      Zaehlerstand: 8175.246<br/><br/>Verbrauch_Heute:4.000 Kwh<br/> Kosten_Heute:0.393 €<br/><br/>Verbrauch_Monat:4.000 Wkh <br/>Kosten_Monat: 0.393 €<br/><br/>Verbrauch_Jahr:9.900 Wkh<br/>Kosten_Jahr:0.973 €
   TYPE       GasCalculator
   eventCount 69
   READINGS:
     2024-08-01 09:00:00   Zaehler_countsOveral_Meter_calc 8173.231
     2024-07-31 15:57:30   Zaehler_countsOverall_CounterDay1st 0.000
     2024-07-31 15:57:30   Zaehler_countsOverall_CounterDayLast 0.000
     2024-08-01 09:20:47   Zaehler_countsOverall_CounterMeter1st 8175.246
     2024-07-31 15:57:30   Zaehler_countsOverall_CounterMeterLast 0.000
     2024-07-31 15:57:30   Zaehler_countsOverall_CounterMonth1st 0.000
     2024-07-31 15:57:30   Zaehler_countsOverall_CounterMonthLast 0.000
     2024-07-31 15:57:30   Zaehler_countsOverall_CounterYear1st 0.000
     2024-07-31 15:57:30   Zaehler_countsOverall_CounterYearLast 0.000
     2024-08-01 09:00:00   Zaehler_countsOverall_EnergyCostDay 0.393
     2024-08-01 00:00:00   Zaehler_countsOverall_EnergyCostDayLast 0.580
     2024-08-01 09:00:00   Zaehler_countsOverall_EnergyCostMeter 0.973
     2024-08-01 09:00:00   Zaehler_countsOverall_EnergyCostMonth 0.393
     2024-08-01 00:00:00   Zaehler_countsOverall_EnergyCostMonthLast 0.580
     2024-08-01 09:00:00   Zaehler_countsOverall_EnergyCostYear 0.973
     2024-08-01 09:00:00   Zaehler_countsOverall_EnergyDay 4.000
     2024-08-01 00:00:00   Zaehler_countsOverall_EnergyDayLast 5.900
     2024-08-01 09:00:00   Zaehler_countsOverall_EnergyMeter 9.900
     2024-08-01 09:00:00   Zaehler_countsOverall_EnergyMonth 4.000
     2024-08-01 00:00:00   Zaehler_countsOverall_EnergyMonthLast 5.900
     2024-08-01 09:00:00   Zaehler_countsOverall_EnergyYear 9.900
     2024-08-01 09:00:00   Zaehler_countsOverall_FinanceReserve 479.027
     2024-08-01 09:00:00   Zaehler_countsOverall_Meter 1.000
     2024-08-01 09:00:00   Zaehler_countsOverall_MonthMeterReading 4
     2024-08-01 09:00:00   Zaehler_countsOverall_PowerCurrent 0.000
     2024-08-01 09:00:00   Zaehler_countsOverall_PowerDayAver 22.741
     2024-08-01 05:06:29   Zaehler_countsOverall_PowerDayMax 133.333
     2024-08-01 00:00:00   Zaehler_countsOverall_PowerDayMin 0
     2024-08-01 00:00:00   Zaehler_countsOverall_Vol1stDay 0.6
     2024-07-31 15:57:31   Zaehler_countsOverall_Vol1stMeter 0.01
     2024-08-01 00:00:00   Zaehler_countsOverall_Vol1stMonth 0.600
     2024-07-31 15:57:31   Zaehler_countsOverall_Vol1stYear 0.01
     2024-08-01 00:00:00   Zaehler_countsOverall_VolLastDay 0.600
     2024-07-31 15:57:31   Zaehler_countsOverall_VolLastMeter 0.000
     2024-08-01 00:00:00   Zaehler_countsOverall_VolLastMonth 0.600
     2024-07-31 15:57:31   Zaehler_countsOverall_VolLastYear 0.000
     2024-07-31 15:57:30   Zaehler_countsOverall_WFRDayMax 0
     2024-07-31 15:57:30   Zaehler_countsOverall_WFRDayMin 0
   system:
     DecimalPlace %.3f
     SiPrefixPowerFactor 1
Attributes:
   BasicPricePerAnnum 0
   Currency   &#8364;
   DecimalPlace 3
   GasCounterOffset 0
   GasCubicPerCounts 0.1
   GasNominalHeatingValue 10
   GasPricePerKWh 0.0983
   GaszValue  1
   MonthOfAnnualReading 5
   MonthlyPayment 120
   ReadingDestination CalculatorDevice
   SiPrefixPower W
   Volume     m&#179;
   group      Gaszaehler
   icon       gasmeter2
   room       Gaszaehler
   stateFormat Zaehlerstand: Zaehler_countsOverall_CounterMeter1st<br/><br/>Verbrauch_Heute:Zaehler_countsOverall_EnergyDay Kwh<br/> Kosten_Heute:Zaehler_countsOverall_EnergyCostDay €<br/><br/>Verbrauch_Monat:Zaehler_countsOverall_EnergyMonth Wkh <br/>Kosten_Monat: Zaehler_countsOverall_EnergyCostMonth €<br/><br/>Verbrauch_Jahr:Zaehler_countsOverall_EnergyYear Wkh<br/>Kosten_Jahr:Zaehler_countsOverall_EnergyCostYear €
   userReadings Zaehler_countsOveral_Meter_calc:Zaehler_countsOverall_Meter.* {return ReadingsNum($name, "Zaehler_  countsOverall_Meter", 0) + 8175.246}
 

Ich habe den Zaehler_countersOverall genommen weil das der vortlaufende Impuls Zähler ist.

MadMax-FHEM

#37
Zitat von: Sebastian84 am 01 August 2024, 09:27:09Ich habe den Zaehler_countersOverall genommen weil das der vortlaufende Impuls Zähler ist.
Schön.
Und was soll uns das jetzt sagen?

Funktioniert? -> gelöst? -> dann entsprechend den Thread markieren

Immer noch Probleme? -> welche?

Zitat von: Sebastian84 am 01 August 2024, 09:27:09userReadings Zaehler_countsOveral_Meter_calc:Zaehler_countsOverall_Meter.* {return ReadingsNum($name, "Zaehler_  countsOverall_Meter", 0) + 8175.246}
Warum (trotzdem) mit userReadings, obwohl ich denke (und auch geschrieben habe), dass das nicht der zielführende Weg scheint und rih das ja bestätigt hat?
Zitat von: rih am 31 Juli 2024, 21:14:23Du brauchst wirklich keine Userreadings etc. Der GasCalculator berechnet dir das alles alleine.

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

Ich hab  alles so gemacht. Aber der der abglesende Zählerstand wird nicht weiter gezählt.

rih

#39
Dem Zeitstempel nach hast du heute um 09:20:47 das Reading "Zaehler_countsOverall_CounterMeter1st" schon wieder verändert! Warum machst du das? Der Zähler kann nicht funktionieren, wenn du ständig den Grundwert veränderst!

Deinen Zählerstand müsste das Reading "Zaehler_countsOveral_Meter_calc" wiederspiegeln. Der Wert ist aber kleiner als der ...1st-Wert. Klar, wenn du ständig Readings veränderst.

Ich bin da jetzt raus, sorry.

PS: Der Zählerstand in deinem stateFormat kann sich natürlich nicht ändern. Dort hast du ja das Reading ...1st eigetragen:
stateFormat Zaehlerstand: Zaehler_countsOverall_CounterMeter1st<br/ ...

Sebastian84

#40
Wenn ich in den Zahler Zaehler_countsOveral_Meter mein Zehlerstand eingebe wird er beim nächsten Impuls wieder auf die gesamt Zählerzahl z.b. 1.200 gesetzt.

Und der Zaehler_countsOveral_Meter wird ja zum rechnen genommen.


Sebastian84

  Zaehler_countsOveral_Meter_calc:Zaehler_countsOverall_Meter.* {return ReadingsNum($name, "Zaehler_ countsOverall_Meter", 0) + 8175.246}
Zählt nicht weiter von 8175.246

MadMax-FHEM

Zitat von: Sebastian84 am 01 August 2024, 14:41:52Zählt nicht weiter von 8175.246
(Kommen Events bzgl. Zaehler_countsOverall_Meter?)

Bzw. eher ist das die Ursache: Zaehler_ countsOverall_Meter <- da ist ein Leerzeichen drin! Das kann so nicht gehen. Die ReadingsNum-Abfrage liefert hier (verm.) immer den "Ersatzwert" und der ist 0...

Und immer noch: warum hörst du nicht auf uns!?

Wenn du (wie so oft auch in anderen Threads) einfach "machst was du denkst", wie soll man da bitteschön helfen?

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

#43
Ja es kommen immer Events Zaehler_countsOverall_Meter [ das sind die aus mein Zähler. Wenn der Reedkontakt schließt.
Beispiel Zähler zählt 1 wird in Events bzgl. Zaehler_countsOverall_Meter:0.100 addiert.
Das stimmt ja alles.
Nur mein Zählerstand in m3 wird nicht weiter gezählt.

Ich hab es ja probiert, aber wenn ich mein Zählerstand in ...Meter einge wie ich das machen soll wird er von den Zähler wieder überschrieben.

Es wird sonst ja auch alles gezäht.
Nur leider nicht mein Zehlerstand fordlaufend.

Sebastian84

#44
Das mit den userreading hat super geklappt.
  Zaehler_countsOverall_EnergyDay
12.000W
Das man im userreading das nur 12 Kwh rauskommt anstadt 12.000W

Würde das so gehen?

Zaehler_countsOverall_EnergyDay.* {my $val = sprintf("%.2f",(ReadingsNum($name, "Zaehler_countsOverall_EnergyDay", 0) / 1000 )); return "$val Kwh";}

MadMax-FHEM

#45
Dass Events kommen habe ich ja auch eingeklammert und geschrieben, dass es am Leerzeichen liegt...

Was soll das sein, was du zuletzt gepostet hast?

Ein userReadings zu einem bestehenden Reading des Devices?
Ohne Trigger: nicht gut
Ob das generell geht: keine Ahnung

Wenn userReadings: ReadingName.* -> was soll das sein?
Denke nicht, dass das ist was du willst.

Ich weiß auch nicht, ob ReadingsNum innerhalb von split so geht (abgesehen davon, dass unnötig Klammern sind und die Variable so wie du sie verwendest ist auch unnötig bzw. hätte ich eine Variable genommen, um ReadingsNum zwischenzuspeichern).

Warum willst du unbedingt Einheiten im Readingwert haben?
Weiterverarbeiten geht doch ohne Einheit viel einfacher. Anzeige kann man doch mit stateFormat anpassen inkl. deiner Umrechnung...

Code-Tags wären auch angenehmer zu lesen...

Und generell: was spricht gegen ausprobieren?

Du machst doch eh was/wie du denkst ohne zu lesen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Prof. Dr. Peter Henning

Zitat von: Sebastian84 am 01 August 2024, 18:01:03Das man im userreading das nur 12 Kwh rauskommt anstadt 12.000W
Es heißt außerdem kWh, nicht Kwh.

LG

pah


Sebastian84

Ich bekomme die Leistungswerte zb.7.200 würde gerne 7.2 stehen haben.

Ich hab schon mal über stateFormat das eingeben.

  {sprintf("%.2f kWh", (ReadingsVal($name,"Zaehler_countsOverall_EnergyDay",0)/1))}
Das geht auch nur dann geht mein StateFormat für die andern nicht mehr

Zaehlerstand:Zaehler_countsOveral_Meter_calc m³<br/><br/>Verbrauch_Heute:Zaehler_countsOverall_EnergyDay kWh<br/>Kosten_Heute:Zaehler_countsOverall_EnergyCostDay €<br/><br/>Verbrauch_Gestern:Zaehler_countsOverall_EnergyDayLast kWh<br/>Kosten_Gestern:Zaehler_countsOverall_EnergyCostDayLast €<br/><br/>Verbrauch_Monat:Zaehler_countsOverall_EnergyMonth kWh <br/>Kosten_Monat: Zaehler_countsOverall_EnergyCostMonth €<br/><br/>Verbrauch_letzter_Monat:Zaehler_countsOverall_EnergyMonthLast kWh<br/>Kosten_letzter_Monat:Zaehler_countsOverall_EnergyCostMonthLast €<br/><br/>Verbrauch_Jahr:Zaehler_countsOverall_EnergyYear kWh<br/>Kosten_Jahr:Zaehler_countsOverall_EnergyCostYear €

Prof. Dr. Peter Henning

Es ist doch wohl sonnenklar, dass stateFormat nur das ausgibt, was in den geschweiften Klammern steht. Wenn man eine komplexere Ausgabe haben will (siehe Beispiel), muss in den geschweiften Klammern eben ein String mit allen nötigen Elementen (also auch den HTML-Elementen) zusammengebaut werden.

LG

pah

Prof. Dr. Peter Henning

#49
ZitatEin userReadings zu einem bestehenden Reading des Devices?
Ohne Trigger: nicht gut
Ob das generell geht: keine Ahnung

Klar geht das, und macht auch Sinn. Ich verwende relativ häufig
<userreadingname>:none {}und befülle das dann aus Perl heraus. Wobei ich hoffe, dass ich die Frage richtig verstanden habe.

LG

pah

Sebastian84

userReadings

Zaehler_countsOveral_Meter_calc:Zaehler_countsOverall_Meter.* {return ReadingsNum($name, "Zaehler_countsOverall_Meter", 0) + 8174.000} 


Wie kann ich da jetzt anfügen?
Einfch {....} und dann weiter {...}und so weiter?

Sebastian84

  FUUID      66aa418e-f33f-cdd4-35af-f1fad83eada07667
  NAME      Gasverbrauch
  NOTIFYDEV  Zaehler
  NR        508
  NTFY_ORDER 10-Gasverbrauch
  REGEXP    Zaehler:countsOverall.*
  STATE      Zaehlerstand:8179.6 m³<br/><br/>Verbrauch_Heute:10.800 kWh<br/>Kosten_Heute:1.062 €<br/><br/>Verbrauch_Gestern:15.000 kWh<br/>Kosten_Gestern:1.474 €<br/><br/>Verbrauch_Monat:60.000 kWh <br/>Kosten_Monat: 5.898 €<br/><br/>Verbrauch_letzter_Monat:5.900 kWh<br/>Kosten_letzter_Monat:0.580 €<br/><br/>Verbrauch_Jahr:67.080 kWh<br/>Kosten_Jahr:6.594 €
  TYPE      GasCalculator
  eventCount 15
  READINGS:
    2024-08-04 18:00:00  Zaehler_countsOveral_Meter_calc 8179.6
    2024-07-31 15:57:30  Zaehler_countsOverall_CounterDay1st 0.000
    2024-07-31 15:57:30  Zaehler_countsOverall_CounterDayLast 0.000
    2024-08-01 13:04:08  Zaehler_countsOverall_CounterMeter1st 0.000
    2024-07-31 15:57:30  Zaehler_countsOverall_CounterMeterLast 0.000
    2024-07-31 15:57:30  Zaehler_countsOverall_CounterMonth1st 0.000
    2024-07-31 15:57:30  Zaehler_countsOverall_CounterMonthLast 0.000
    2024-07-31 15:57:30  Zaehler_countsOverall_CounterYear1st 0.000
    2024-07-31 15:57:30  Zaehler_countsOverall_CounterYearLast 0.000
    2024-08-04 18:00:00  Zaehler_countsOverall_EnergyCostDay 1.062
    2024-08-04 00:00:00  Zaehler_countsOverall_EnergyCostDayLast 1.474
    2024-08-04 18:00:00  Zaehler_countsOverall_EnergyCostMeter 6.594
    2024-08-04 18:00:00  Zaehler_countsOverall_EnergyCostMonth 5.898
    2024-08-01 00:00:00  Zaehler_countsOverall_EnergyCostMonthLast 0.580
    2024-08-04 18:00:00  Zaehler_countsOverall_EnergyCostYear 6.594
    2024-08-04 18:00:00  Zaehler_countsOverall_EnergyDay 10.800
    2024-08-04 00:00:00  Zaehler_countsOverall_EnergyDayLast 15.000
    2024-08-04 18:00:00  Zaehler_countsOverall_EnergyMeter 67.080
    2024-08-04 18:00:00  Zaehler_countsOverall_EnergyMonth 60.000
    2024-08-01 00:00:00  Zaehler_countsOverall_EnergyMonthLast 5.900
    2024-08-04 18:00:00  Zaehler_countsOverall_EnergyYear 67.080
    2024-08-04 18:00:00  Zaehler_countsOverall_FinanceReserve 473.406
    2024-08-04 18:00:00  Zaehler_countsOverall_Meter 5.600
    2024-08-04 18:00:00  Zaehler_countsOverall_MonthMeterReading 4
    2024-08-04 18:00:00  Zaehler_countsOverall_PowerCurrent 0.000
    2024-08-04 18:00:00  Zaehler_countsOverall_PowerDayAver 13.995
    2024-08-04 07:49:07  Zaehler_countsOverall_PowerDayMax 138.462
    2024-08-04 00:00:00  Zaehler_countsOverall_PowerDayMin 0.000
    2024-08-04 00:00:00  Zaehler_countsOverall_Vol1stDay 4.7
    2024-07-31 15:57:31  Zaehler_countsOverall_Vol1stMeter 0.01
    2024-08-01 00:00:00  Zaehler_countsOverall_Vol1stMonth 0.600
    2024-07-31 15:57:31  Zaehler_countsOverall_Vol1stYear 0.01
    2024-08-04 00:00:00  Zaehler_countsOverall_VolLastDay 4.700
    2024-07-31 15:57:31  Zaehler_countsOverall_VolLastMeter 0.000
    2024-08-01 00:00:00  Zaehler_countsOverall_VolLastMonth 0.600
    2024-07-31 15:57:31  Zaehler_countsOverall_VolLastYear 0.000
    2024-07-31 15:57:30  Zaehler_countsOverall_WFRDayMax 0
    2024-07-31 15:57:30  Zaehler_countsOverall_WFRDayMin 0
  system:
    DecimalPlace %.3f
    SiPrefixPowerFactor 1000
Attributes:
  BasicPricePerAnnum 0
  Currency  &#8364;
  DecimalPlace 3
  GasCounterOffset 0
  GasCubicPerCounts 0.1
  GasNominalHeatingValue 12
  GasPricePerKWh 0.0983
  GaszValue  1
  MonthOfAnnualReading 5
  MonthlyPayment 120
  ReadingDestination CalculatorDevice
  SiPrefixPower kW
  Volume    m³
  group      Gaszaehler
  icon      gasmeter2
  room      Gaszaehler
[left]  stateFormat Zaehlerstand:Zaehler_countsOveral_Meter_calc m³<br/><br/>Verbrauch_Heute:Zaehler_countsOverall_EnergyDay kWh<br/>Kosten_Heute:Zaehler_countsOverall_EnergyCostDay €<br/><br/>Verbrauch_Gestern:Zaehler_countsOverall_EnergyDayLast kWh<br/>Kosten_Gestern:Zaehler_countsOverall_EnergyCostDayLast €<br/><br/>Verbrauch_Monat:Zaehler_countsOverall_EnergyMonth kWh <br/>Kosten_Monat: Zaehler_countsOverall_EnergyCostMonth €<br/><br/>Verbrauch_letzter_Monat:Zaehler_countsOverall_EnergyMonthLast kWh<br/>Kosten_letzter_Monat:Zaehler_countsOverall_EnergyCostMonthLast €<br/><br/>Verbrauch_Jahr:Zaehler_countsOverall_EnergyYear kWh<br/>Kosten_Jahr:Zaehler_countsOverall_EnergyCostYear €
[/left]  userReadings Zaehler_countsOveral_Meter_calc:Zaehler_countsOverall_Meter.* {return ReadingsNum($name, "Zaehler_countsOverall_Meter", 0) + 8174.000}
 

Ich hab versucht mehrere userreadings versucht zu erstellen. Aber sobalt ich ein zweiten userreading mache funktioniert nix mehr.
Ich möchte eine Formatierung für
Zaehler_countsOverall_EnergyDay
Zaehler_countsOverall_EnergyCostDay
 Zaehler_countsOverall_EnergyDayLast
aehler_countsOverall_EnergyCostDayLast
Zaehler_countsOverall_EnergyMonth
Zaehler_countsOverall_EnergyCostMonth
Zaehler_countsOverall_EnergyMonthLast
Zaehler_countsOverall_EnergyCostMonthLast
Zaehler_countsOverall_EnergyYear
Zaehler_countsOverall_EnergyCostYear
Bei Leistung eine Nachkomerstelle und bei den kosten 2 Nachkommerstellen

rabehd

Zitat von: Sebastian84 am 04 August 2024, 19:12:14Ich hab versucht mehrere userreadings versucht zu erstellen. Aber sobalt ich ein zweiten userreading mache funktioniert nix mehr.

1. commandref lesen, wenn unverständlich, dann
2. Frage mit Darstellung de eigenen Versuches posten
Auch funktionierende Lösungen kann man hinterfragen.

Prof. Dr. Peter Henning

ZitatIch hab versucht mehrere userreadings versucht zu erstellen. Aber sobalt ich ein zweiten userreading mache funktioniert nix mehr

Bitte was steht zu lesen, wenn man in der CommandRef nach dem Begriff "userReadings" sucht?

pah

Sebastian84

Verbrauch_Heute:Zaehler_countsOverall_EnergyDay.*:{sprintf("%.2f kWh", (ReadingsVal($name,"Zaehler_countsOverall_EnergyDay",0)/1))}
Kosten_Heute:Zaehler_countsOverall_EnergyCostDay.*{sprintf("%.2f €", (ReadingsVal($name,"Zaehler_countsOverall_EnergyCostDay",0)/1))}


Würde das so gehen?

Prof. Dr. Peter Henning

#55
 ::) Ich versuchs noch einmal...

Bitte was steht zu lesen, wenn man in der CommandRef nach dem Begriff "userReadings" sucht?

Und an welchen Stellen weicht der letzte Post von dieser wirklich guten Anleitung ab?

pah

Sebastian84

#56
Zaehler_countsOveral_Meter_calc:Zaehler_countsOverall_Meter.* {return ReadingsNum($name, "Zaehler_countsOverall_Meter", 0) + 8174.000},
Zaehler_countsOveral_CostDay_calc1:Zaehler_countsOverall_CostDay.* {return ReadingsNum($name, "Zaehler_countsOveral_EnergyCostDay", 0) / 100} ,
Zaehler_countsOveral_EnergyDayLast_calc2:Zaehler_countsOverall_EnergyDayLast.* {return ReadingsNum($name, "Zaehler_countsOverall_DayLast", 0)  /100},
Zaehler_countsOveral_CostDayLast_calc3:Zaehler_countsOverall_CostDayLast.* {return ReadingsNum($name, "Zaehler_countsOverall_CostDayLast", 0) /100}   

So???

Sebastian84

Ich bekomme zwar kein Fehler in der userreadings. Aber trotzdem werden keine zusätzlichen readings erstellt.

Zaehler_countsOveral_Meter_calc:Zaehler_countsOverall_Meter 
Nur der geht.

MadMax-FHEM

#58
Zitat von: Sebastian84 am 04 August 2024, 22:02:48 Zaehler_countsOveral_Meter_calc:Zaehler_countsOverall_Meter.* {return ReadingsNum($name, "Zaehler_countsOverall_Meter", 0) + 8174.000},
Zaehler_countsOveral_CostDay_calc1:Zaehler_countsOverall_CostDay.* {return ReadingsNum($name, "Zaehler_countsOveral_EnergyCostDay", 0) / 100} ,
Zaehler_countsOveral_EnergyDayLast_calc2:Zaehler_countsOverall_EnergyDayLast.* {return ReadingsNum($name, "Zaehler_countsOverall_DayLast", 0)  /100},
Zaehler_countsOveral_CostDayLast_calc3:Zaehler_countsOverall_CostDayLast.* {return ReadingsNum($name, "Zaehler_countsOverall_CostDayLast", 0) /100}   

So???

Naja nein.
Weil es z.B. "Zaehler_countsOverall_CostDay" und "Zaehler_countsOverall_CostDayLast" gar nicht als Reading gibt (zumindest nicht in deinem letzten list) und damit auch kein Event dazu, ergo auch keine "Berechnung" des userReadings, zumindest nicht bzgl. "Zaehler_countsOveral_CostDay_calc1" und "Zaehler_countsOveral_CostDayLast_calc3". Neben dem, dass mindestens diese Trigger nicht passen, wird dann das hier "ReadingsNum($name, "Zaehler_countsOverall_CostDayLast", 0)" auch immer 0 liefern, da es ja "Zaehler_countsOverall_CostDayLast" nicht gibt...

Kommen denn Events zu "Zaehler_countsOverall_Meter" bzw. "Zaehler_countsOverall_EnergyDayLast"?
Wenn keine Events, dann auch keine userReadings.
Zaehler_countsOverall_EnergyDayLast -> klingt so als würde das nicht so oft gesetzt (laut Zeitstempel eben nur um Mitternacht)...
Hier "Zaehler_countsOveral_EnergyDayLast_calc2" würde zwar getriggert aber auch das "ReadingsNum($name, "Zaehler_countsOverall_DayLast", 0)  /100}" liefert immer 0, weil es "Zaehler_countsOverall_DayLast" nicht gibt.

Schreibst du die Readingnamen aus dem Kopf und machst dabei Schreibfehler? Bei copy/paste kann das doch gar nicht passieren.
Die Namen usw. müssen schon richtig sein und Sinn machen, wie soll das sonst funktionieren!?

Das ist ja, wie wenn du im Telefonbuch nachschaust und einfach ein paar Zahlen änderst, dann kommst du doch auch nicht bei dem an, den du anrufen wolltest. U.U. hebt sogar jemand ab, aber sicher nicht der, den du erreichen wolltest, es kann aber auch niemand abheben, bzw. die Ansage kommen: Nummer nicht vergeben...

Ob noch mehr Fehler drin sind habe ich nicht geschaut, reicht auch so...

Trotzdem noch mal: warum das ganze userReadings-Zeug? Wenn es nur um die Anzeige geht: das kann man OHNE userReadings direkt auch in stateFormat machen.

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

   Zaehlerstand:Zaehler_countsOveral_Meter_calc m³<br/><br/>Verbrauch_Heute:Zaehler_countsOverall_EnergyDay kWh<br/>Kosten_Heute:Zaehler_countsOverall_EnergyCostDay €<br/><br/>Verbrauch_Gestern:Zaehler_countsOverall_EnergyDayLast kWh<br/>Kosten_Gestern:Zaehler_countsOverall_EnergyCostDayLast €<br/><br/>Verbrauch_Monat:Zaehler_countsOverall_EnergyMonth kWh <br/>Kosten_Monat: Zaehler_countsOverall_EnergyCostMonth €<br/><br/>Verbrauch_letzter_Monat:Zaehler_countsOverall_EnergyMonthLast kWh<br/>Kosten_letzter_Monat:Zaehler_countsOverall_EnergyCostMonthLast €<br/><br/>Verbrauch_Jahr:Zaehler_countsOverall_EnergyYear kWh<br/>Kosten_Jahr:Zaehler_countsOverall_EnergyCostYear € Das wollte ich auch über State Format. Ich weißnur nicht wie ich das da rein schreiben muss. Das bei KWh eine Stelle hintern Komma Angezeigt wird und bei € zwei Stellen

MadMax-FHEM

Zitat von: Sebastian84 am 06 August 2024, 11:09:39Das wollte ich auch über State Format. Ich weißnur nicht wie ich das da rein schreiben muss. Das bei KWh eine Stelle hintern Komma Angezeigt wird und bei € zwei Stellen
stateFormat kann auch Perl-Aufrufe. D.h. da dann z.B. sprintf usw. am Ende muss halt wie pah bereits geschrieben hat halt ein "String" zurück kommen (aus Perl), der dann eben alles enthält inkl. notwendiger html-Tags wie <br> usw.

Also so wie du es im userReadings machen würdest, nur zusätzlich mit den html-Angaben.
Oder eben (trotzdem) als userReadings, dann halt richtig (-> korrekte Namen usw.) und im stateFormat auf diese Readings zugreifen.

Ist Geschmackssache...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

Kannst du mir zu mein State Format ein Beispiel geben

MadMax-FHEM

#62
Zitat von: Sebastian84 am 06 August 2024, 12:56:04Kannst du mir zu mein State Format ein Beispiel geben
Schwierig, weil ich deine ganzen falsch geschriebenen Readings und auch (wie ich denke) falschen Berechnungen nicht nachvollziehen kann (will)...

Aber hier:

{my $value1 = ReadingsNum($name, "Zaehler_countsOverall_EnergyDay", 0); my $value2 = ReadingsNum($name, "Zaehler_countsOverall_EnergyDayLast", 0); return sprintf("<span>EnergyDay: %.2f kWh</br>EnergyDayLast: %.2f kWh</span>", $value1 / 100, $value2 / 100)}

Eingabe in der Detailansicht durch Klick auf das Attribut stateFormat.
Bei Eingabe direkt in Fhem-Web musst du halt bzgl. Strichpunkte doppeln etc.

Wie geschrieben, habe ich jetzt aus deinen wilden gelieferten Infos was gebaut.
Bin nicht sicher ob es sinnvoll ist, sollte aber funktionieren...

Die Readings vorher besser löschen und auch die userReadings zu den hier verwendeten Readings löschen, ansonsten wird halt "doppelt gerechnet"...
...1x stateFormat und 1x userReadings...
Und auch hier: warten bis es die Readings wieder gibt, solltest du löschen. Bei einigen kann das dauern...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Prof. Dr. Peter Henning

Ich habe auch keine Lust, die ungenauen und in sich widersprüchlichen Angaben des Fragestellers zu debuggen.
Darum hier nur ein Beispiel:

In meinem Device PowerFlow hat das Attribut stateFormat einen ganz einfachen Inhalt:
{PF_StateFormat()}
In einer 99_EnergyUtils.pm-Datei gibt es den Code dazu:
###############################################################################
#
#  State Format PowerFlow
#
###############################################################################

sub PF_StateFormat(){
  my $ra=ReadingsVal("PowerFlow","relativeAutonomy_p","");
  my $sc=ReadingsVal("PowerFlow","selfConsumption_p","");
  my $rae=ReadingsVal("PowerFlow","relativeAutonomy_e","");
  my $sce=ReadingsVal("PowerFlow","selfConsumption_e","");
  my $ppv1=ReadingsVal("PowerFlow","power_PV1",0);
  my $epv1=ReadingsVal("PowerFlow","energy_PV1",0);
  my $ppv2=ReadingsVal("PowerFlow","power_PV2",0);
  my $epv2=ReadingsVal("PowerFlow","energy_PV2",0);
  my $pbat=ReadingsVal("PowerFlow","power_battery",0);
  my $ebat=ReadingsVal("PowerFlow","energy_battery",0);
  my $soc=ReadingsVal("PowerFlow","battery_SOC",0);
  my $peco=ReadingsVal("PowerFlow","power_eco",0);
  my $eeco=ReadingsVal("PowerFlow","energy_eco",0);
  my $teco=ReadingsVal("PowerFlow","test_eco",0);
  my $phouse=ReadingsVal("PowerFlow","power_house",0);
  my $ehouse=ReadingsVal("PowerFlow","energy_house",0);
  my $pwallbox=ReadingsVal("PowerFlow","power_wallbox",0);
  my $ewallbox=ReadingsVal("PowerFlow","energy_wallbox",0);
  my $pgrid=ReadingsVal("PowerFlow","power_grid",0);
  my $egrid=ReadingsVal("PowerFlow","energy_grid",0);
  my $eupl=ReadingsVal("PowerFlow","energy_upload",0);
  my $tgrid=ReadingsVal("PowerFlow","test_total",0);
  my $str="<p align=\"left\"><table border=\"1\"><tr><td></td><td><b>Power [kW]</b></td><td><b>Energy [kWh]</b></td><td></td></tr>".
    "<tr><td>PV1</td><td>%.3f</td><td>%.3f</td><td></td></tr>".
    "<tr><td>PV2</td><td>%.3f</td><td>%.3f</td><td></td></tr>".
    "<tr><td>Battery</td><td>%.3f</td><td>%.3f</td><td>SOC %d %%</td></tr>".
    "<tr><td>Eco</td><td>%.3f</td><td>%.3f</td><td>test %.2f</td></tr>".
    "<tr><td>House</td><td>%.3f</td><td>%.3f</td><td></td></tr>".
    "<tr><td>Wallbox</td><td>%.3f</td><td>%.3f</td><td></td></tr>".
    "<tr><td rowspan=\"2\">Grid</td><td rowspan=\"2\">%.3f</td><td>%.3f</td><td rowspan=\"2\">test %.2f</td></tr><tr><td>%.3f</td></tr>".
    "<tr><td>Autonomy</td><td>%d %%</td><td>%d %%</td><td></td></tr>".
    "<tr><td>Self Consumption</td><td>%d %%</td><td>%d %%</td><td></td></tr>".
    ".</table></p>";
   return sprintf($str,-$ppv1,-$epv1,-$ppv2,-$epv2,$pbat,$ebat,$soc,$peco,$eeco,$teco,$phouse,$ehouse,$pwallbox,$ewallbox,$pgrid,$egrid,$tgrid,-$eupl,$ra,$rae,$sc,$sce);

Um diesen Code zu verstehen, muss man zunächst einmal wissen, wie eine HTML-Tabelle aufgebaut ist. Zweitens, was die Perl-Funktion sprintf() macht.

Das Ergebnis ist im Bild zu sehen.

pah