HM-ES-PMSw1-DR Hutschienen Aktor mit Messung: energy & energyCalc resetten?

Begonnen von Morgennebel, 09 August 2018, 21:12:22

Vorheriges Thema - Nächstes Thema

Morgennebel

Moin Moin,

ich habe an meinem Warmwasser-Boiler ein HM-ES-PMSw1-DR Leistungsmesser/Aktor eingebaut. Dieser führt im Kanal _Pwr die readings energy und energyCalc.

Um besser verschiedene Konfigurationen vergleichen zu können, würde ich gerne jeden Tag um Mitternach bei 0.0 anfangen.

Ich habe versucht, die beiden readings mit setreading ... auf 0 zu setzen und sie zu löschen, leider bleiben die gespeicherten Werte immer erhalten.

Hat jemand eine schicke Idee, wie ich diese Werte nullen kann?

Danke, -MN
Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA

frank

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Pfriemler

oder einfacher: jeden Mitternacht den aktuellen Wert in ein separates reading wegschreiben und mit einem Userreading die Differenz aus aktuellem und Mitternachtswert den Tagesverbrauch errechnen lassen. Nutze ich so bei meinem Regenmesser.
Das originale Reading wird vom Messgerät geliefert und kann daher nicht per setreading genullt werden.
Und mitternächtlich stromlos machen um im Messgerät den Wert zu nullen ist nicht wirklich schick.
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

Morgennebel

Danke für die Antworten,


das statistics-Modul liefert zwar die gewünschten Daten, aber ich kann diese nicht in ein SVG verpacken und die Auswirkungen meiner DOIF-Konstrukte visualisieren...

Vielleicht ein Dummy, der ein Userreading (Anfangswert zu Mitternacht) hat und dann die Differenzen alle 180 sec in ein Logfile schreibt? Dann gehen auch SVGs...

(*grübel*)

Ciao, -MN
Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA

frank

Zitatdas statistics-Modul liefert zwar die gewünschten Daten, aber ich kann diese nicht in ein SVG verpacken und die Auswirkungen meiner DOIF-Konstrukte visualisieren...
ebenfalls grübel...

wenn es daten gibt, sollten diese auch im svg darstellbar sein. wo ist das problem?
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Pfriemler

Was machst Du bisher? Du loggst das reading energy bzw. energyCalc (letzteres ist ja nur die neustartbereinigte Variante mit einem Gesamtzählerstand, oder?) Wenn Du jetzt ein Userreading energyToday nennst und dieses loggst, bekommst Du bei jedem neuen Zählerstand ganz genauso einen aktualisierten Wert ins Log und damit ins SVG.
Ich habe gerade keinen VPN-Zugriff auf mein System, daher muss ich ein Beispiel später nachreichen.
edit: hier ist es. EZahler ist mein Ferraris-Interface (HM-ES-TX-WM), im Kanal IEC_01 gibt es energy und energyCount.

a) ein DOIF, welches kurz vor Mitternacht ein paar Werte berechnet und in Readings sichert:
define di_EnergyCount DOIF ([23:59:40])
  (setreading EZaehler_IEC_01 counter_lastnight [EZaehler_IEC_01:counter_thisnight])      ##sichert letzten Mitternachtsstand
  (setreading EZaehler_IEC_01 consumption_yesterday [EZaehler_IEC_01:consumption_today])  ## sichert Tageszähler
  (setreading EZaehler_IEC_01 counter_thisnight [EZaehler_IEC_01:energyCalc])             ## speichert aktuellen Summenzähler
  ({Log 1, "Stromverbrauch gestern ".ReadingsVal("EZaehler_IEC_01","consumption_yesterday","ERR")." kWh"}) ## ins Log.
  ## die Berechnung des aktuellen Summenzählers erfolgt über ein userreading!
attr di_EnergyCount state Stromverbrauch gestern: [EZaehler_IEC_01:consumption_yesterday] kWh


b) ein DOIF, welches stündlich ein paar Werte berechnet:
define di_SaveEZaehler DOIF ([:59])
  (setreading EZaehler_IEC_01 enHr {(sprintf("%.2f", [EZaehler_IEC_01:kWh]-[EZaehler_IEC_01:lastHourCount]))." -> ".[EZaehler_IEC_01:kWh]},    setreading EZaehler_IEC_01 lastHourCount [EZaehler_IEC_01:kWh])
attr di_SaveEZaehler comment berechnet stündlich Energieverbrauch in kWh (zwei Nachkommastellen) im Reading enHr und setzt Referenz lastHourCount  neu. lastHourCount wird damit stündlich in einem Logfile gespeichert zur Auswertung.
attr di_SaveEZaehler do always


c) Userreadings im besagten Messkanal:
attr EZaehler_IEC_01 userReadings kWh {sprintf("%.2f",ReadingsVal($name,"energyCalc","???")/1000)},consumption_today {sprintf( "%5.2f", (ReadingsVal($name,"energyCalc",0)-ReadingsVal($name,"counter_thisnight",0))/1000)}


d) ich nutze dazu noch ein stateFormat für den Messkanal:
attr EZaehler_IEC_01 stateFormat aktuell [$name:power] W, Verbrauch (kWh) gestern [$name:consumption_yesterday], heute [$name:consumption_today], letzte Stunde [$name:enHr] gesamt
Summa ergibt das allda
kWh: Hilfsreading in menschenfreundlicher kWh-Notation aus energyCalc
counter_thisnight: Zählerstand um Mitternacht
counter_lastnight: Zählerstand von Mitternacht des Vortages
consumption_yesterday: gestriger Verbrauch
consumption_today: heutiger Verbrauch
enHr: Verbrauch der letzten Stunde.

Für den TE reicht ja vielleicht eine Untermenge. Denn für den Aufwand hätte sich wohl schon statistics gelohnt ...
Namentlich comsumption_today liefert Dir nicht alle 180s, sondern bei jedem aktualisierten Zählerwert den aktuellen Tagesverbrauch, bereinigt ab Mitternacht.
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."