FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: stgeran am 13 März 2022, 20:21:59

Titel: Gaszählerstand korrigieren
Beitrag von: stgeran am 13 März 2022, 20:21:59
Wie kann ich meinen Gaszählerstand korrigieren. Durch einen Stromausfall in der Strasse hat sich der Wert verändert. Von Zählerstand als Beispiel 27600 auf 25783. Damit stimmt die Auswertung nicht mehr. Hier ein list Gas
Internals:
   BasicFeePerMonth 0
   CODE       9
   CUL868_MSGCNT 1135
   CUL868_RAWMSG E03093D100004001000
   CUL868_RSSI -84.5
   CUL868_TIME 2022-03-13 20:14:37
   CostPerUnit 0
   DEF        9 0.005 0.005
   FUUID      5c44de89-f33f-33d2-9d2f-8d229c9ece573d2a
   IODev      CUL868
   LASTInputDev CUL868
   MSGCNT     1135
   NAME       Gas
   NR         32
   STATE      CNT: 61 CUM: 25551.570  5MIN: 0.020  TOP: 0.938
   TYPE       CUL_EM
   corr1      0.005
   corr2      0.005
   READINGS:
     2022-03-13 20:14:37   RAW             CNT: 61 CUM: 16  5MIN: 4  TOP: 16
     2022-03-13 19:59:35   basis           15434898
     2022-03-13 00:01:55   cum_day         CUM_DAY: 8.675 CUM: 25544.430 COST: 0.00
     2022-03-09 19:17:38   cum_month       CUM_MONTH: 186.715 CUM: 25514.075 COST: 0.00
     2022-03-13 20:14:37   current         0.02
     2022-03-13 20:14:37   current_cnt     4
     2022-03-13 20:14:37   peak            0.9375
     2022-03-13 20:14:37   peak_cnt        16
     2022-03-13 20:14:37   seqno           61
     2022-03-13 20:14:37   state           CNT: 61 CUM: 25551.570  5MIN: 0.020  TOP: 0.938
     2022-03-13 20:14:37   total           25551.57
     2022-03-13 20:14:37   total_cnt       16
     2022-03-13 20:14:37   tsecs           1647198877
Attributes:
   CounterOffset -51623,75
   IODev      CUL868
   room       Gas,CUL_EM

Es gibt im Webview einen Punkt "attr Gas state format". Bei der Beschreibung komme ich aber ins schleudern. Ist wahrscheinlich nicht der richtige Ansatz.
PS: In welchem thread ist das Thema ab Besten aufgehoben?
Titel: Antw:Gaszählerstand korrigieren
Beitrag von: Thomas0401 am 13 März 2022, 20:39:42
Ich würde es mit einem userReading ändern


attr Gas userReading Verbrauch_korregiert {ReadingsNum($name, "total", 0) + 12345}
Titel: Antw:Gaszählerstand korrigieren
Beitrag von: KölnSolar am 13 März 2022, 21:01:39
dazu gibt es das Attribut counteroffset. Steht auch in der help.  ::)

Nimm den GasCalculator, dann hast Du das Problem nicht mehr und Statistikwerte.

Grüße Markus
Titel: Antw:Gaszählerstand korrigieren
Beitrag von: stgeran am 13 März 2022, 21:16:56
Mit dem Couteroffset habe ich Probleme mit meiner def. Der steht auf -51623,75 aber von was?? Der tatsächliche Zählerstand ist jetzt die 27600. Waren das mal Werte aus der Urzeit der Aufzeichnung? Ich weis es nicht mehr. Ich muss mich ja an dem aktuellen Wert in der Tabelle orientieren und da z.B. +1817 eintragen um auf die 27600 zu kommen. Das klappt aber nur mit der def von "9 1 1" und nicht mit "9 0.005 0.005".
Titel: Antw:Gaszählerstand korrigieren
Beitrag von: KölnSolar am 13 März 2022, 22:11:00
Hmm, dann noch ein Faktor 200 ?  :-\
ZitatNimm den GasCalculator, dann hast Du das Problem nicht mehr
Titel: Antw:Gaszählerstand korrigieren
Beitrag von: stgeran am 13 März 2022, 22:29:59
Da muss ich mich erst einlesen. Auf Anhieb ist mir noch nicht klar, woher der calculator seine Werte bezieht.
Titel: Antw:Gaszählerstand korrigieren
Beitrag von: KölnSolar am 14 März 2022, 07:15:37
aus dem EM-device.  ;)

Allerdings habe ich gerade in meiner def gesehen, dass es leider doch nicht direkt Dein Problem löst. Denn die Verknüpfung ist der regexp auf total
defmod StatGasZaehler GasCalculator GasZaehler:total:.*  :'( Ggfs. könntest Du das über das bereits vorgeschlagene userreadings lösen.

Titel: Antw:Gaszählerstand korrigieren
Beitrag von: stgeran am 14 März 2022, 20:51:55
Noch mal zu userReading
attr Gas userReading Verbrauch_korregiert {ReadingsNum($name, "total", 0) + 12345}
Bedeutet das in meinem Fall
attr Gas userReading Verbrauch_korregiert {ReadingsNum($name, "25783", 0) + 1817}
Oder steh ich auf den Schlauch
Titel: Antw:Gaszählerstand korrigieren
Beitrag von: KölnSolar am 14 März 2022, 23:54:00
etwas angepasstattr Gas userReadings Verbrauch_korrigiert:total {ReadingsNum($name, "total",0) + 1817}
bedeutet: zusätzliches reading Verbrauch_korrigiert durch user erstellt und berechnet. Neuberechnung, wenn total aktualisiert wird. Inhalt des neuen readings = aktueller Wert des readings Gas:total + 1817(Sollte total nicht vorhanden sein[was aber schon durch :total ausgeschlossen wird] liefert ReadungsNum den Wert 0)
Verstanden ?
Titel: Antw:Gaszählerstand korrigieren
Beitrag von: stgeran am 15 März 2022, 20:47:31
Ich habs zwar begriffen, aber trotzdem ändert sich "total" nicht :-(
Titel: Antw:Gaszählerstand korrigieren
Beitrag von: MadMax-FHEM am 15 März 2022, 21:59:39
total ändert sich ja auch nicht!

Es gibt (wie ja schon mal geschrieben wurde) ein NEUES Reading Verbrauch_korrigiert wo dann der korrekte Wert drin stehen sollte...
EDIT: wenn dir Verbrauch_korrigiert nicht gefällt, nenn es anders... ;)


Gruß, Joachim
Titel: Antw:Gaszählerstand korrigieren
Beitrag von: stgeran am 16 März 2022, 11:26:27
Da brauche ich nochmal Hilfe: Wo finde ich dieses userreading um im Plot darauf zugreifen zu können?
Titel: Antw:Gaszählerstand korrigieren
Beitrag von: MadMax-FHEM am 16 März 2022, 11:45:16
Bestimmt nachzulesen in der commandref oder Wiki...

Also: wenn sich das Reading total in deinem Device ändert und (somit hoffentlich) einen Event erzeugt, wird das (darauf lauschende) userReadings "ausgewertet" und das NEUE Reading AM SELBEN Device "erzeugt" oder eben aktualisiert wo dann der KORRIGIERTE Wert drin stehen sollte/müsste.

Dieses Reading nimmst du einfach als "Trigger" für dein FileLog oder was auch immer fertig...

Gruß, Joachim
Titel: Antw:Gaszählerstand korrigieren
Beitrag von: Beta-User am 16 März 2022, 11:48:33
Der trigger war m.E. zu eingeschränkt:
attr Gas userReadings Verbrauch_korrigiert:total:.* {ReadingsNum($name, 'total',0) + 1817}

Prinzipiell würde ich aber überlegen, ob das nicht als "monotonic" angelegt werden kann und dann einfach der Initialwert gesetzt wird.
Titel: Antw:Gaszählerstand korrigieren
Beitrag von: stgeran am 16 März 2022, 13:51:37
Etwas stimmt nicht Wenn ich euch richtig interpretiere müsste ich im Eventmanager ein Ereignis sehen, dass irgend etwas mit userReading; Gas; Total; oder meiner Zahl(27xxx) zu tun hat. Ich seh aber nix.

Ah, sorry mit dem "neuen"
attr Gas userReadings Verbrauch_korrigiert:total:.* {ReadingsNum($name, 'total',0) + 1817}
sehe ich es bei den Readings im Device. Jetzt muss es NUR noch in das logfile, damit ich es im svg plot auch auswählen kann.
Titel: Antw:Gaszählerstand korrigieren
Beitrag von: MadMax-FHEM am 16 März 2022, 13:57:40
Zitat von: stgeran am 16 März 2022, 13:51:37
Etwas stimmt nicht Wenn ich euch richtig interpretiere müsste ich im Eventmanager ein Ereignis sehen, dass irgend etwas mit userReading; Gas; Total; oder meiner Zahl(27xxx) zu tun hat. Ich seh aber nix.

Dann poste doch mal ein aktuelles list und Auszüge aus dem Eventmonitor (nicht Eventmanager ;) )...

Gruß, Joachim
Titel: Antw:Gaszählerstand korrigieren
Beitrag von: Beta-User am 16 März 2022, 14:03:59
...das Problem dürfte https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/15_CUL_EM.pm#L195 (https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/15_CUL_EM.pm#L195) (etc.) sein: Da wird nicht readingsBulkUpdate() aufgerufen, sondern direkt in den Hash geschrieben...

Würde ggf. Sinn machen, einen neuen (ausnahmsweise!) Thread in SlowRF aufzumachen und Rudi zu bitten, sich das mal anzusehen.

An sich dürften die erforderlichen Modifikationen nicht allzu schwierig sein, ggf. selbst mal an einem patch versuchen? (Da wird aber auch irgendwas mit den Timings drumrum gemacht, so dass ich hier keinen Vorschlag machen mag...)

Nachtrag - Hier hatten wir mal ein ähnliches Problem: https://forum.fhem.de/index.php/topic,123210.0.html => https://svn.fhem.de/trac/changeset/25094/