Neues Modul: WaterCalculator

Begonnen von Sailor, 06 Oktober 2016, 06:53:25

Vorheriges Thema - Nächstes Thema

Sailor

Hallo Markus

Zitat von: KölnSolar am 17 November 2020, 18:00:59
100l Verbrauch mit Testversionsetstate StatWasserZaehler 2020-11-15 17:29:59 WasserZaehler_TotallKw_ConsumptionCostDay 0.00
setstate StatWasserZaehler 2020-11-15 17:29:59 WasserZaehler_TotallKw_ConsumptionDay 0.000

100l Verbrauch Produktivversionsetstate StatWasserZaehler 2020-11-15 17:42:23 WasserZaehler_TotallKw_ConsumptionCostDay 0.25
setstate StatWasserZaehler 2020-11-15 17:42:23 WasserZaehler_TotallKw_ConsumptionDay 0.100
Anzeige eines Verbrauchs von 0 bezeichne ich als Unsinn.  ;)

Den Umstand habe ich nachvollziehen koennen.
Man am Anfang den WasserZaehler zweimal einlesen lassen, weil der Vorgängerwert erst zwischengespeichert werden muss.
In deinem Fall mit einem Dummy nach löschen aller Readings im Calculator zweimal den  WasserZaehler auf 0 setzen.
Ab dann zählt er richtig weiter...

Irgendwo muss der Calculator ja mal Anfangen.

PS: Ich teste noch meine Programmierung. Die nächste Test-Version kommt daher erst in 48h

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

KölnSolar

Hi Sailor,
so ganz habe ich Dich nicht verstanden.
Zitatzweimal den  WasserZaehler auf 0 setzen
Ich setze doch einen initialen Stand. Der ist ja nicht 0. Oder meinst Du die Veränderung ?

Zitatnach löschen aller Readings
Bloß nicht. Da stecken doch meine historischen Daten(month, year....) drin. Ich würd jetzt so vorgehen
- raw-definition-Daten kopieren
- Calculator-device löschen
- raw-definition-Daten um die .Readings u. die Tagesdaten-Readings bereinigen u. device neu anlegen
- wenn das OK ist, was muss ich dann tun ? 2-mal einen Zählerstand erfassen ? Mit Zeitverzug von mind. Tageswechsel ?

ZitatDie nächste Test-Version kommt daher erst in 48h
Kein Thema. Ich warte ab bis Du die nächste Version postest.

Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

KölnSolar

Hi Sailor,
das mit den 48h hat wohl nicht ganz geklappt. ???

Heute Nacht hat es dann mein FHEM zerrissen.
Zitat2020.11.30 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer                     : MidnightTimer initiated
2020.11.30 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - Timestamp update  : 1605457799
2020.11.30 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - Timestamp Delta   : 1233002
2020.11.30 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - DestinationDevice : HASH(0x5154750)
2020.11.30 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - ReadingPrefix     : WasserZaehler_TotallKw
2020.11.30 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - Last Update       : No Update in the last 24h!
Day '31' out of range 1..30 at ./FHEM/73_WaterCalculator.pm line 479.
Die morgendliche Kälte hat mir dann gezeigt, dass mein Restart-Mechanismus(also nichts bzgl. Water-Calculator, sondern mein FHEM-Restart nach Absturz) nicht funktionierte.  >:( Da mach ich mich dann mal auf die Suche......

Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Sailor

Hi Markus

Zitat von: KölnSolar am 30 November 2020, 17:14:49
Hi Sailor,
das mit den 48h hat wohl nicht ganz geklappt. ???

Ich bastel noch... Im Augenblick sind die Weihnachtsvorbereitungen im vollen Gang und gestern kam der rumänische Bautrupp für den Glasfaseranschluss, der mir fast die Gasleitung mit der Erdrakete zerschossen hat.

Also wenigstens der Vorarbeiter sollte Deutsch verstehen um meine Worte: "Vorsicht, da ist noch die Gas-, Strom- und Wasserleitung drunter"
Stattdessen nur ein freundliches Nicken und brachiale Gewalt mit Spaten und Spitzhacke...  >:(


Zitat von: KölnSolar am 30 November 2020, 17:14:49
Heute Nacht hat es dann mein FHEM zerrissen.Die morgendliche Kälte hat mir dann gezeigt, dass mein Restart-Mechanismus(also nichts bzgl. Water-Calculator, sondern mein FHEM-Restart nach Absturz) nicht funktionierte.  >:( Da mach ich mich dann mal auf die Suche......
Ich habe auch seit kurzem das Problem, dass fhem sich manchmal nicht neu startet.
Wenn Jemand eine gute Idee für einen Watchdog hat, dann immer her damit!

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

Sailor

#79
Hallo Markus

Ich weiß noch nicht ob das der Weisheit letzter Schuss ist, aber du kannst das ja mal ausprobieren.

Nach dem reload "73_WaterCalculator" oder "shutdown restart" bittte 2 unterschiedliche Werte durch den eigentlichen Counter in den Calculator schreiben lassen, sonst funzt es nicht!

Die wichtigen Log-Einträge kommen in dieser Test - Version alle mit prio 1. Daher kann das verbose auf 3 verbleiben.

Bin gespannt!

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

KölnSolar

Hi Sailor,

ist produktiv.

Ich hab das device gelöscht, Modul reloaded, device mit den raw-Definition-Daten wieder angelegt, 2*1 l "verbraucht"(readings sehen gut aus) u. jetzt lege ich noch "meine" Tagesautomatik still.

Mal sehen wie es dann morgen aussieht.

Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

KölnSolar

#81
der Test war leider nicht erfolgreich. Log kann ich nicht liefern. :'(

setstate StatWasserZaehler 2020-12-04 13:45:58 WasserZaehler_TotallKw_ConsumptionCostDay 0.01
setstate StatWasserZaehler 2020-12-05 00:00:01 WasserZaehler_TotallKw_ConsumptionCostDayLast 0
setstate StatWasserZaehler 2020-12-05 00:00:01 WasserZaehler_TotallKw_ConsumptionDay 0
setstate StatWasserZaehler 2020-12-05 00:00:01 WasserZaehler_TotallKw_ConsumptionDayLast 0

setstate StatWasserZaehler 2020-12-04 00:00:15 WasserZaehler_TotallWw_ConsumptionDay 0.000

ConsumptionCostDay: kein update(Vortageswert)
ConsumptionCostDayLast: timestamp sagt update, Inhalt aber falsch
ConsumptionDay: timestamp sagt update, Inhalt eigentlich richtig
ConsumptionDayLast: timestamp sagt update, Inhalt aber falsch
Ww_ConsumptionDay: mein 2. Zähler nur zum Vergleich: keine Entnahmen, kein update

Ich entnehme mal 1*10l u. dann gucken wir morgen wieder

Grüße Markus

Edit: Kw 10l u. Ww 11l entnommensetstate StatWasserZaehler 2020-12-05 11:19:52 WasserZaehler_TotallKw_ConsumptionCostDay 0.00
setstate StatWasserZaehler 2020-12-05 11:19:52 WasserZaehler_TotallKw_ConsumptionCostDayLast 0.01
setstate StatWasserZaehler 2020-12-05 11:19:52 WasserZaehler_TotallKw_ConsumptionDay 0.000
setstate StatWasserZaehler 2020-12-05 11:19:52 WasserZaehler_TotallKw_ConsumptionDayLast 0.002
setstate StatWasserZaehler 2020-12-05 11:20:02 WasserZaehler_TotallWw_ConsumptionCostDay 0.03
setstate StatWasserZaehler 2020-12-01 00:00:15 WasserZaehler_TotallWw_ConsumptionCostDayLast 0.29
setstate StatWasserZaehler 2020-12-05 11:20:02 WasserZaehler_TotallWw_ConsumptionDay 0.011

kein update bzw. consumption =0  >:(
Ein paar "alte" readings sind auch noch da
setstate StatWasserZaehler 2020-11-16 00:00:01 .WasserZaehler_TotallKw_WFRCurrent 0
setstate StatWasserZaehler 2020-11-16 00:00:01 .WasserZaehler_TotallKw_WFRDayAver 0
setstate StatWasserZaehler 2020-11-12 00:00:01 .WasserZaehler_TotallWw_ConsumptionDay 0
setstate StatWasserZaehler 2020-11-12 00:00:01 .WasserZaehler_TotallWw_WFRCurrent 0
setstate StatWasserZaehler 2020-11-12 00:00:01 .WasserZaehler_TotallWw_WFRDayAver 0
Haben die noch Einfluß ? Soll/kann ich sie löschen ?

Edit2: Log2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer__________________________________________________________
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer                     : MidnightTimer initiated
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - Timestamp update  : 1607163602
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - Timestamp Delta   : 45599
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - ReadingPrefix     : WasserZaehler_TotallWw
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - DeviceName        : StatWasserZaehler
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - _________________ Pre Readings _____________
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - Pre WFRDaySum     : 0.005
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - Pre WFRDayCount   : 5
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - Pre WFRDayCurrent : 0.005
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - Pre WFRDayAver    : 0.001
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - Pre WFRDayMax     : 0.005
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - Pre WFRDayMin     : 0
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - Pre ConsumDay     : 0.011
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - Pre ConsumDayLast : 0.116
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - Pre ConsumCstDayL : 0.29
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - Last Update       : There was an Update in the last 24h!
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - _________________ Post Readings _____________
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - Post WFRDaySum    : 0
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - Post WFRDayCount  : 0
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - Post WFRDayCurrent: 0
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - Post WFRDayAver   : 0
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - Post WFRDayMax    : 0
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - Post WFRDayMin    : 0
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - Post ConsumDay    : 0
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - Post ConsumDayLast: 0
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - Post ConsumCstDayL: 0
2020.12.06 00:00:01 1: StatWasserZaehler : WaterCalculator_MidnightTimer - nextMidnight      : 1607295601
Ist das nur für Ww ? Wo ist Kw ?
Die Fehler sind immer noch vorhanden. Von gestrigen 10l Kw u. 11l Ww keine Spur.  :'(setstate StatWasserZaehler 2020-12-05 11:19:52 WasserZaehler_TotallKw_ConsumptionCostDay 0.00
setstate StatWasserZaehler 2020-12-05 11:19:52 WasserZaehler_TotallKw_ConsumptionCostDayLast 0.01

setstate StatWasserZaehler 2020-12-05 11:19:52 WasserZaehler_TotallKw_ConsumptionDay 0.000
setstate StatWasserZaehler 2020-12-05 11:19:52 WasserZaehler_TotallKw_ConsumptionDayLast 0.002

setstate StatWasserZaehler 2020-12-05 11:20:02 WasserZaehler_TotallWw_ConsumptionCostDay 0.03
setstate StatWasserZaehler 2020-12-06 00:00:01 WasserZaehler_TotallWw_ConsumptionCostDayLast 0

setstate StatWasserZaehler 2020-12-06 00:00:01 WasserZaehler_TotallWw_ConsumptionDay 0
setstate StatWasserZaehler 2020-12-06 00:00:01 WasserZaehler_TotallWw_ConsumptionDayLast 0


Irgendwie macht es mir den Eindruck, dass Du "kompliziert"(über die .readings) versuchst das Problem zu lösen.
Meine Zwischenlösung ist irgendwie simpler: Zum Tageswechsel einen künstlichen Impuls des Zählerdevices erzeugen: lesen des aktuellen Zählerstands(FHEM) und ein set mit diesem Zählerstand = keine Entnahme aber trigger des Calculator-devices"set WasserZaehler TotallWw ".ReadingsVal("WasserZaehler","TotallWw",0)(bei mir statisch mit meinen devices;im Modul müsste das ganze in einer Loop über die aus dem Regexp der def ermittelten devices erfolgen)
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

WW

Ich habe eine Verständnisfrage zu den Readings ".*_WFR.*", speziell zu ".*WFRDayAver". Anbei als erstes das Listing:


Internals:
   .triggerUsed 1
   CFGFN     
   DEF        KgFlurWasserzaehler:zaehlerstand.*
   FUUID      5fcbee7d-f33f-8792-67c8-8c14d2c6c2dfb839
   NAME       myWaterCalculator
   NOTIFYDEV  KgFlurWasserzaehler
   NR         589924
   NTFY_ORDER 10-myWaterCalculator
   REGEXP     KgFlurWasserzaehler:zaehlerstand.*
   STATE      Heute: 0.1550 m³, Gestern: 0.1796 m³,<br>Zählerstand: 324.9862  m³   (2020-12-07 16:59:37)<br>
(Error: )
   TYPE       WaterCalculator
   .attraggr:
   .attreocr:
     .*_Consumption.*
     .*_Counter.*
     .*_WFR.*
   .attrminint:
   Helper:
     DBLOG:
       KgFlurWasserzaehler_zaehlerstand_ConsumptionCostDayLast:
         DBLogging:
           TIME       1607299067.01449
           VALUE      0.00
       KgFlurWasserzaehler_zaehlerstand_ConsumptionDay:
         DBLogging:
           TIME       1607353286.0301
           VALUE      0.1550
       KgFlurWasserzaehler_zaehlerstand_ConsumptionDayLast:
         DBLogging:
           TIME       1607299067.02016
           VALUE      0.1796
       KgFlurWasserzaehler_zaehlerstand_ConsumptionMeter:
         DBLogging:
           TIME       1607353286.0301
           VALUE      0.3418
       KgFlurWasserzaehler_zaehlerstand_ConsumptionMonth:
         DBLogging:
           TIME       1607353286.0301
           VALUE      0.3418
       KgFlurWasserzaehler_zaehlerstand_ConsumptionYear:
         DBLogging:
           TIME       1607353286.0301
           VALUE      0.3418
       KgFlurWasserzaehler_zaehlerstand_CounterCurrent:
         DBLogging:
           TIME       1607353286.0301
           VALUE      324.9862
       KgFlurWasserzaehler_zaehlerstand_CounterDay1st:
         DBLogging:
           TIME       1607299067.02624
           VALUE      324.8312
       KgFlurWasserzaehler_zaehlerstand_CounterDayLast:
         DBLogging:
           TIME       1607299067.03078
           VALUE      324.8312
       KgFlurWasserzaehler_zaehlerstand_WFRCurrent:
         DBLogging:
           TIME       1607353576.891
           VALUE      0.0000
       KgFlurWasserzaehler_zaehlerstand_WFRDayAver:
         DBLogging:
           TIME       1607356777.66565
           VALUE      0.3495
       KgFlurWasserzaehler_zaehlerstand_WFRDayMax:
         DBLogging:
           TIME       1607333694.63185
           VALUE      2.1031
       KgFlurWasserzaehler_zaehlerstand_WFRDayMin:
         DBLogging:
           TIME       1607299067.04365
           VALUE      0
   READINGS:
     2020-12-07 16:59:37   .KgFlurWasserzaehler_zaehlerstand_LastDV 0.0000
     2020-12-07 16:59:37   .KgFlurWasserzaehler_zaehlerstand_LastDt 291
     2020-12-07 16:59:37   .KgFlurWasserzaehler_zaehlerstand_PrevRead 324.9862
     2020-12-07 16:59:37   .KgFlurWasserzaehler_zaehlerstand_WFRDayCount 51
     2020-12-07 16:59:37   .KgFlurWasserzaehler_zaehlerstand_WFRDaySum 17.8270
     2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_ConsumptionCostDay 0.00
     2020-12-07 00:57:47   KgFlurWasserzaehler_zaehlerstand_ConsumptionCostDayLast 0.00
     2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_ConsumptionCostMeter 0.00
     2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_ConsumptionCostMonth 0.00
     2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_ConsumptionCostYear 0.00
     2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_ConsumptionDay 0.1550
     2020-12-07 00:57:47   KgFlurWasserzaehler_zaehlerstand_ConsumptionDayLast 0.1796
     2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_ConsumptionMeter 0.3418
     2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_ConsumptionMonth 0.3418
     2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_ConsumptionYear 0.3418
     2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_CounterCurrent 324.9862
     2020-12-07 00:57:47   KgFlurWasserzaehler_zaehlerstand_CounterDay1st 324.8312
     2020-12-07 00:57:47   KgFlurWasserzaehler_zaehlerstand_CounterDayLast 324.8312
     2020-12-05 22:14:26   KgFlurWasserzaehler_zaehlerstand_CounterMeter1st 324.6444
     2020-12-05 22:14:26   KgFlurWasserzaehler_zaehlerstand_CounterMeterLast 324.6381
     2020-12-05 22:14:26   KgFlurWasserzaehler_zaehlerstand_CounterMonth1st 324.6444
     2020-12-05 22:14:26   KgFlurWasserzaehler_zaehlerstand_CounterMonthLast 324.6381
     2020-12-05 22:14:26   KgFlurWasserzaehler_zaehlerstand_CounterYear1st 324.6444
     2020-12-05 22:14:26   KgFlurWasserzaehler_zaehlerstand_CounterYearLast 324.6381
     2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_FinanceReserve 0.0000
     2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_MonthMeterReading 8
     2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_WFRCurrent 0.0000
     2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_WFRDayAver 0.3495
     2020-12-07 10:34:54   KgFlurWasserzaehler_zaehlerstand_WFRDayMax 2.1031
     2020-12-07 00:57:47   KgFlurWasserzaehler_zaehlerstand_WFRDayMin 0
   helper:
     gets:
       2020-12-07 16:59:37   .KgFlurWasserzaehler_zaehlerstand_LastDV 0.0000
       2020-12-07 16:59:37   .KgFlurWasserzaehler_zaehlerstand_LastDt 291
       2020-12-07 16:59:37   .KgFlurWasserzaehler_zaehlerstand_PrevRead 324.9862
       2020-12-07 16:59:37   .KgFlurWasserzaehler_zaehlerstand_WFRDayCount 51
       2020-12-07 16:59:37   .KgFlurWasserzaehler_zaehlerstand_WFRDaySum 17.8270
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_ConsumptionCostDay 0.00
       2020-12-07 00:57:47   KgFlurWasserzaehler_zaehlerstand_ConsumptionCostDayLast 0.00
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_ConsumptionCostMeter 0.00
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_ConsumptionCostMonth 0.00
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_ConsumptionCostYear 0.00
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_ConsumptionDay 0.1550
       2020-12-07 00:57:47   KgFlurWasserzaehler_zaehlerstand_ConsumptionDayLast 0.1796
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_ConsumptionMeter 0.3418
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_ConsumptionMonth 0.3418
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_ConsumptionYear 0.3418
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_CounterCurrent 324.9862
       2020-12-07 00:57:47   KgFlurWasserzaehler_zaehlerstand_CounterDay1st 324.8312
       2020-12-07 00:57:47   KgFlurWasserzaehler_zaehlerstand_CounterDayLast 324.8312
       2020-12-05 22:14:26   KgFlurWasserzaehler_zaehlerstand_CounterMeter1st 324.6444
       2020-12-05 22:14:26   KgFlurWasserzaehler_zaehlerstand_CounterMeterLast 324.6381
       2020-12-05 22:14:26   KgFlurWasserzaehler_zaehlerstand_CounterMonth1st 324.6444
       2020-12-05 22:14:26   KgFlurWasserzaehler_zaehlerstand_CounterMonthLast 324.6381
       2020-12-05 22:14:26   KgFlurWasserzaehler_zaehlerstand_CounterYear1st 324.6444
       2020-12-05 22:14:26   KgFlurWasserzaehler_zaehlerstand_CounterYearLast 324.6381
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_FinanceReserve 0.0000
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_MonthMeterReading 8
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_WFRCurrent 0.0000
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_WFRDayAver 0.3495
       2020-12-07 10:34:54   KgFlurWasserzaehler_zaehlerstand_WFRDayMax 2.1031
       2020-12-07 00:57:47   KgFlurWasserzaehler_zaehlerstand_WFRDayMin 0
     sets:
       2020-12-07 16:59:37   .KgFlurWasserzaehler_zaehlerstand_LastDV 0.0000
       2020-12-07 16:59:37   .KgFlurWasserzaehler_zaehlerstand_LastDt 291
       2020-12-07 16:59:37   .KgFlurWasserzaehler_zaehlerstand_PrevRead 324.9862
       2020-12-07 16:59:37   .KgFlurWasserzaehler_zaehlerstand_WFRDayCount 51
       2020-12-07 16:59:37   .KgFlurWasserzaehler_zaehlerstand_WFRDaySum 17.8270
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_ConsumptionCostDay 0.00
       2020-12-07 00:57:47   KgFlurWasserzaehler_zaehlerstand_ConsumptionCostDayLast 0.00
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_ConsumptionCostMeter 0.00
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_ConsumptionCostMonth 0.00
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_ConsumptionCostYear 0.00
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_ConsumptionDay 0.1550
       2020-12-07 00:57:47   KgFlurWasserzaehler_zaehlerstand_ConsumptionDayLast 0.1796
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_ConsumptionMeter 0.3418
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_ConsumptionMonth 0.3418
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_ConsumptionYear 0.3418
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_CounterCurrent 324.9862
       2020-12-07 00:57:47   KgFlurWasserzaehler_zaehlerstand_CounterDay1st 324.8312
       2020-12-07 00:57:47   KgFlurWasserzaehler_zaehlerstand_CounterDayLast 324.8312
       2020-12-05 22:14:26   KgFlurWasserzaehler_zaehlerstand_CounterMeter1st 324.6444
       2020-12-05 22:14:26   KgFlurWasserzaehler_zaehlerstand_CounterMeterLast 324.6381
       2020-12-05 22:14:26   KgFlurWasserzaehler_zaehlerstand_CounterMonth1st 324.6444
       2020-12-05 22:14:26   KgFlurWasserzaehler_zaehlerstand_CounterMonthLast 324.6381
       2020-12-05 22:14:26   KgFlurWasserzaehler_zaehlerstand_CounterYear1st 324.6444
       2020-12-05 22:14:26   KgFlurWasserzaehler_zaehlerstand_CounterYearLast 324.6381
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_FinanceReserve 0.0000
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_MonthMeterReading 8
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_WFRCurrent 0.0000
       2020-12-07 16:59:37   KgFlurWasserzaehler_zaehlerstand_WFRDayAver 0.3495
       2020-12-07 10:34:54   KgFlurWasserzaehler_zaehlerstand_WFRDayMax 2.1031
       2020-12-07 00:57:47   KgFlurWasserzaehler_zaehlerstand_WFRDayMin 0
   system:
     DecimalPlace %.4f
     WFRUnitFactor 1
Attributes:
   BasicPricePerAnnum 0
   Currency   €
   DecimalPlace 4
   MonthOfAnnualReading 5
   MonthlyPayment 0
   ReadingDestination CalculatorDevice
   WFRUnit    l/min
   WaterCounterOffset 0
   WaterCubicPerCounts 1
   WaterPricePerCubic 0
   event-on-change-reading .*_Consumption.*,.*_Counter.*,.*_WFR.*
   icon       measure_water_meter
   room       Wasser,System->MQTT2_DEVICE
   stateFormat Heute: [$name:KgFlurWasserzaehler_zaehlerstand_ConsumptionDay] m³, Gestern: [$name:KgFlurWasserzaehler_zaehlerstand_ConsumptionDayLast] m³,<br>Zählerstand: [$name:KgFlurWasserzaehler_zaehlerstand_CounterCurrent]  m³   ([$name:KgFlurWasserzaehler_zaehlerstand_CounterCurrent:t])<br>
(Error: [KgFlurWasserzaehler:error])


Meinem Verständnis nach habe ich jetzt (17:00 Uhr) einen Tagesverbrauch von 155 Litern (KgFlurWasserzaehler_zaehlerstand_ConsumptionDay). 17:00 Uhr entsprechen 17 * 60 Minuten = 1020 Minuten. 155 Liter / 1020 Minuten = 0.152 Liter/Minute. Vom Modul ausgerechnet werden  0.3495 Liter/Minute (KgFlurWasserzaehler_zaehlerstand_WFRDayAver).

Wo ist mein Denkfehler?
FHEM 6.0 im Docker-Container (OMV4 auf ASRock J3455-ITX), FHEM 6.0 auf Raspi, Fritzbox 7490, CUL433, CUL868, Jeelink868, SIGNALduino, LaCrosseGateway, SonoffZbBridge, Shelly, Sonoff, ESP8266, ESP32, ESP32-Cam, LaCrosse, Revolt, OneWire, Zigbee (Sonoff, Blitzwolf, IKEA, Lidl)

KölnSolar

ZitatWo ist mein Denkfehler?
Dass das kein Durchschnittswert in Deinem Sinne ist. Meiner Vermutung(!) nach wird die Durchflussrate über die Zeit zwischen 2 VERÄNDERUNGEN des Zählerstandes ermittelt. Und im average steht dann dessen Mittelwert.

Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Sailor

Hallo Markus
Zitat von: KölnSolar am 05 Dezember 2020, 11:19:27
Irgendwie macht es mir den Eindruck, dass Du "kompliziert"(über die .readings) versuchst das Problem zu lösen.
Meine Zwischenlösung ist irgendwie simpler: Zum Tageswechsel einen künstlichen Impuls des Zählerdevices erzeugen: lesen des aktuellen Zählerstands(FHEM) und ein set mit diesem Zählerstand = keine Entnahme aber trigger des Calculator-devices
"set WasserZaehler TotallWw ".ReadingsVal("WasserZaehler","TotallWw",0)
(bei mir statisch mit meinen devices;im Modul müsste das ganze in einer Loop über die aus dem Regexp der def ermittelten devices erfolgen)

Bei deiner Lösung werden aber nach 24h+1s immer noch die Werte in Log geschrieben, die aber schon weit über 24h alt aber schon längst auf 0 sein müssten.

Meine Idee ist:
Wenn Wert des letzten Zählerstandes jünger als 24h, dann schreibe um Mitternacht für die Tageswerte in die Readings (und somit ins Log) was du bereits in den Readings hast. (Für einen sauberen Plot)
Wenn Wert des letzten Zählerstandes älter    als 24h, dann schreibe um Mitternacht für die Tageswerte in die Readings (und somit ins Log) eine 0. Damit sind bei einem Tag ohne Zählerstandsänderungen die Tageswerte auch 0 und nicht die vom Tag davor)

Alle anderen Werte wie Zählerstand, Monats, Periodische oder Jahreswerte dürfen dabei nicht verändert werden.

Wo ich aber stutze ist, dass sich bei Werten jünger als 24h diese trotzdem auf 0 gesetzt werden. Das hätte nicht passieren dürfen...
Das muss ich nochmal eingehender untersuchen...

Gruß
    Sailor

******************************
Man wird immer besser...

Sailor

Moin

Zitat von: KölnSolar am 07 Dezember 2020, 17:38:08
Dass das kein Durchschnittswert in Deinem Sinne ist. Meiner Vermutung(!) nach wird die Durchflussrate über die Zeit zwischen 2 VERÄNDERUNGEN des Zählerstandes ermittelt. Und im average steht dann dessen Mittelwert.

Das ist korrekt.

Eigentlich ist der Calculator nur dafür entwickelt worden, mit einem kontinuierlich liefernden Counter zu arbeiten. Wenn ihr euren Counter dazu überreden könntet, alle 30s den Zählerstand rauszusenden, egal ober der sich geändert hat oder nicht, wäre das am besten...

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

KölnSolar

Hi Sailor,
ZitatBei deiner Lösung werden aber nach 24h+1s immer noch die Werte in Log geschrieben, die aber schon weit über 24h alt aber schon längst auf 0 sein müssten.
Hab ich ehrlich gesagt nicht verstanden.  :-[ Mangels zyklischem Zählerwert erzeuge ich ja nur einen "künstlichen", der auch dem letzten Zählerwert(von wann auch immer) entspricht. Und das event bewegt das Calculator-device den Tages-,Monats-,Jahreswechsel zu machen. Falsch ist bei den Werten danach nichts(so zumindest meine Beobachtung).

Ah jetzt, ich glaube ich hab verstanden, was Du meinst. Du beziehst Dich mehr auf einen wie auch immer gearteten Plot von Werten über Zeiträume kleiner einem Tag. Und dann liegt der 0-Punkt nicht exakt auf dem Tageswechsel, sondern Sek. od. Min. später. Das interessiert mich aber eher wenig. Sonst hätte ich ja auch einen automatischen, zyklischen und keinen manuellen Zähler.  ;D

Ich denke Anwender wie ich haben eh andere "Bedürfnisse". Da würd ich also nicht so viel Aufwand treiben und Dein gutes Modul verbiegen. Einfach z.B. nur ein Attribut, wo man die Uhrzeit für einen künstlichen Impuls/event hinterlegt. Attribut deshalb, weil der ein oder andere vielleicht aus performance-Gründen das zeitlich gerne selber steuern würde.

Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Sailor

#87
Hallo Markus

Nach dem Motto "Gutes muss lange reifen" habe ich jetzt mal eine Version zum testen.

Binde mal diese Version in dein System ein und setze mal den Counter 2 mal um einen beliebigen Wert weiter hoch.
Dann schau mal im Log und im Device wie die Werte nach 2 Tageswechseln aussehen ob das so passt.

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

KölnSolar

Hi Sailor,

ich hab die Version mal ins Testsystem kopiert, reloaded und das erste mal Daten erfasst. Dann schauen wir mal... ;)

Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

KölnSolar

Hm,
heute Nacht passierte gar nichts. Dann eben den 2. Impuls erzeugt. Ergebnis: Tageswechsel, DayLast OK, akt. Eingabe ist "verloren" gegangen(Day = 0).

Log: keine Ausgabe um Mitternacht. Nach der heutigen Eingabe
Zitat2021.01.21 10:08:42 1: StatWasserZaehler : WaterCalculator WaterCountReadingTimestampCurrentHour      : 10
2021.01.21 10:08:42 1: StatWasserZaehler : WaterCalculator WaterCountReadingTimestampPreviousHour     : 15
2021.01.21 10:08:42 1: StatWasserZaehler : WaterCalculator WaterCountReadingTimestampPreviousRelative : 1611154112
2021.01.21 10:08:42 1: StatWasserZaehler : WaterCalculator WaterCountReadingTimestampCurrentRelative  : 1611220122
2021.01.21 10:08:42 1: StatWasserZaehler : WaterCalculator WaterCountReadingTimestampCurrentRelative-1: 1611133720
2021.01.21 10:08:42 1: StatWasserZaehler : WaterCalculator WaterCountReadingTimestampRelativeDelta    : 66010
2021.01.21 10:08:42 1: StatWasserZaehler : WaterCalculator - First reading of day detected!
Scheint irgendwie nicht zu funktionieren.  :'(
Habe auch extra noch einmal überprüft, ob auch wirklich Deine neue Version aktiv ist.
Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt