Habe einen HM Stromzähler laufen. Das Statistics Modul schreibt auch die Werte für Monat, Tag und Stunde als singleReadings ins Device.
Was mir Probleme bereitet sind die Max Werte. Ich hätte gern die maximalen kWh von Monat und Tag als jeweils einzelnes Reading.
Es geht mit dem Attribut minAvgMaxReadings alles in einem Reading und dann mit split oder vielleicht substr rausziehen.
Aber müsste es nicht auch als singularReadings funktionieren? (Laut commandref)
singularReadings <GerätRegExp:GeräteWertRegExp:Statistiktyp:Zeitraum>
Statistik-Typ: Min|Avg|Max|Delta|DurationState|Tendency
Zeitraum: Hour|Day|Month|Year|1h|2h|3h|6h
Regulärer Ausdruck statistischer Werte, die zusätzlich auch als einzelne Werte gespeichert werden sollen. Erleichtert die Erzeugung von Plots und anderer Auswertungen (notify).
Für "duration"-Gerätewerte muss der Name des jeweiligen Statuswertes als Statistiktyp eingesetzt werden.
Beispiel:
Wettersensor:rain:Delta:(Hour|Day)|FritzDect:power:Delta:Day
Wettersensor:rain:Delta:(Hour|Day)|FritzDect:power:Delta:Day
Mein Basiswert ist ein userreading, welches bereits in kwh umgerechnet ist. (Zaehlerstand_Solar_kWh)
Habe es erst so probiert: (singularReadings)
HM_Strommesser:Zaehlerstand_Solar_kWh:Max:Hour
dann so:
HM_Strommesser:Statistics_Zaehlerstand_Solar_kWhHour:Max:Hour
Beides hat leider nicht funktioniert.
Die Beispiele sind leider immer mit Delta, aber ich dachte Max geht entsprechend.
Hier noch mal das List.
Internals:
DEF HM_Strommesser Statistics_
DEV_REGEXP HM_Strommesser
FUUID 6085455f-f33f-0821-5a74-67a813e20fa82b39
NAME StatisticDevice
NOTIFYDEV global,HM_Strommesser
NR 368
NTFY_ORDER 10-StatisticDevice
PREFIX Statistics_
STATE Updated stats for: HM_Strommesser
TYPE statistics
OLDREADINGS:
READINGS:
2021-04-27 16:14:16 monitoredDevicesHMCCUDEV HM_Strommesser
2021-05-03 11:59:55 nextPeriodChangeCalc 2021-05-03 12:59:55
2021-05-03 12:41:41 state Updated stats for: HM_Strommesser
fhem:
modulVersion $Date: 2019-12-24 00:07:57 +0100 (Tue, 24 Dec 2019) $
nextPeriodChangeTime 1620039595
Attributes:
alias StatisticDevice
deltaReadings Zaehlerstand_Solar_kWh
ignoreDefaultAssignments 1
room Strom
singularReadings HM_Strommesser:Zaehlerstand_Solar_kWh:Delta:Hour|HM_Strommesser:Zaehlerstand_Solar_kWh:Delta:Day|HM_Strommesser:Statistics_Zaehlerstand_Solar_kWhDay:Max:Day|HM_Strommesser:Statistics_Zaehlerstand_Solar_kWhHour:Max:Hour
Kann jemand helfen?
Update
Oh sorry, hatte das Problem nicht richtig erfasst. So was ähnliches ist mir auch schon NICHT gelungen.
--------
Wenn ich mich aus meiner Leserei recht entsinne muss das Reading überhaupt erstmal im Modul "bekannt" gemacht werden.
Aus meiner Sicht daher per Attribut minAvgMaxReadings <Gerätewerte> = Zaehlerstand_Solar_kWh
Dann braucht es keine singular Readings mehr, denn hour, day, month, year werden als einzelne Readings erzeugt.
Probier mal aus.
Siehe Wiki und dort Zeile
attr myStatDevice deltaReadings total_energy analog für minAvgMaxReadings
ZitatsingularReadings
Bei Verwendung von singularReadings ist darauf zu achten, dass für das entsprechende Device die entsprechende Statistik entweder durch die standardmäßig vorgegebenen Gerätewerte oder durch durationReadings,deltaReadings,minAvgMaxReadings oder tendencyReadings definiert ist. Anderenfalls werden die singularReadings weder angelegt, noch mit Daten gefüllt. Um vom Reading Stromzaehler:total_energy singularReadings anzulegen, muss folgendes definiert werden. Dabei ist darauf zu achten, dass bei singularReadings an keiner Stelle ein Leerzeichen steht:
attr myStatDevice deltaReadings total_energy
attr myStatDevice singularReadings Stromzaehler:total_energy:Delta:Hour|Stromzaehler:total_energy:Delta:Day|Stromzaehler:total_energy:Delta:Month|Stromzaehler:total_energy:Delta:Year
Hallo
Habe es bei mir mal konkret getestet. Scheint zu klappen.
Ergebnis in den Reading, heute morgen neu entstanden:
statPowerHour Min: 5.30 Avg: 12.14 Max: 18.40 2021-05-04 10:34:00
statPowerHourLast Min: 3.18 Avg: 6.45 Max: 21.70 2021-05-04 09:59:55
statPowerDayMax 21.70 2021-05-04 10:34:00 <==NEU
statPowerDay Min: 0.00 Avg: 1.53 Max: 21.70 2021-05-04 10:34:00
statPowerDayLast Min: 0.00 Avg: 34.57 Max: 226.85 2021-05-03 23:59:55
statPowerMonth Min: 0.00 Avg: 22.82 Max: 284.24 2021-05-04 10:34:00
statPowerMonthLast Min: 0.00 Avg: 35.93 Max: 256.91 2021-05-01 23:49:55
statPowerYear Min: 0.00 Avg: 31.00 Max: 284.24 2021-05-04 10:34:00
- Folgendes Attribut habe ich dazu angelegt: "singularReadings <Device>:power:Max:Day".
- Das reading power selbst ist wie oben ersichtlich ein "normales" MinAvgMax-Reading und liefert die üblichen Daten für Min, Avg, Max der Intervalle Hour, Day, Month, Year.
- Das Reading "statPowerDayMax" ist wie gewünscht zusätzlich entstanden.
Erst mal danke für die Mühe!
Ist deine Power eine Leistung in W?
Der Powerwert klappt bei mir auch (1.POWER), aber der stetig steigende Energiezähler (Zaehlerstand_Solar_kWh) ist mein Problem. (Sprich die kWh)
Würdest du mal dein List von statistics posten?
Bitteschön (ja Leistung in Watt)
Internals:
DEF shelly_plug_s
DEV_REGEXP shelly_plug_s
NAME myStatDevice
NOTIFYDEV global,shelly_plug_s
NR 473
NTFY_ORDER 10-myStatDevice
PREFIX stat
STATE Updated stats for: shelly_plug_s
TYPE statistics
READINGS:
2021-05-03 12:54:24 monitoredDevicesShelly shelly_plug_s
2021-05-04 11:59:55 nextPeriodChangeCalc 2021-05-04 12:59:55
2021-05-04 12:41:15 state Updated stats for: shelly_plug_s
fhem:
modulVersion $Date: 2019-12-24 00:07:57 +0100 (Tue, 24 Dec 2019) $
nextPeriodChangeTime 1620125995
Attributes:
ignoreDefaultAssignments 1
deltaReadings energyCum
minAvgMaxReadings power
singularReadings shelly_plug_s:power:Max:Day
room Unsorted
verbose 4
Ich habe per Attribut "ignoreDefaultAssignments 1" die Standardzuordnungen abgestellt und dann für "power" und das UserReading "energyCum" neue Statistik-Readings definiert.
- deltaReadings energyCum
- minAvgMaxReadings power
Übrigens erzeugt das neue Max-Reading auch jedesmal Events wenn sich "power" aktualisiert.
Durch die Eventerzeugung bin ich noch nicht wirklich durchgestiegen. Es fühlt sich etwas inkonsistent an.....
Siehe meine Frage https://forum.fhem.de/index.php/topic,120836.0.html (https://forum.fhem.de/index.php/topic,120836.0.html) - hoffe zum Thema Events kann tupol was sagen.
Der stetig steigende Wert ist doch hier (5 Sekunden vor Mitternacht) ablesbar. Mein Beispiel:
statEnergyCumLast Hour: 55.2 Day: 832.1 Month: 1100.0 Year: - (since: ) 2021-05-04 12:59:55
Hallo noch ne Anmerkung
ZitatIch hätte gern die maximalen kWh von Monat und Tag als jeweils einzelnes Reading.
Vielleicht macht du einen Denkfehler.
Die Energy-Readings sind aus meiner Sicht als delta-Readings angelegt (es sei denn du definierst ein Min/Max daraus). Und delta-Readings kennen kein Min/Max sondern nur die Differenz (Delta) der Zeitperiode "Hour, Day, Month, Year". Man hat daher Readings für die aktuelle und vorhergehende (Last) Periode.
Liefert dir daher nicht deine Definition "HM_Strommesser:Zaehlerstand_Solar_kWh:Delta:Day" den maximalen Tageswert kurz vor Mitternacht. Falls das Reading keine Events auslöst hast Du natürlich das Problem es zu Loggen.
Ich bastel auch gerade mit einer PV-Balkonanlage rum und suche noch nach einer Mölichkeit etwas Statistik in Graphen zu bekommen.
Halte per UserReading die Power und Tagesenergiewerte über Userreadings fest.
Bin erst danach auf die Module "statistics" und "ElectricityCalculator" gestoßen - aber auch noch nicht rund damit.
Schau dir den "ElectricityCalculator" mal an vielleicht hilft es dir. Der hat aber aufgrund eines anderen Ansatzes einen Haufen an Readings die du vermutlich auch nicht brauchst.
Ich habe heute mal einiges angepasst und muss jetzt erst mal abwarten.
ElectricityCalculator schau ich mir mal an.
Hi
Ich warte auch noch, da ich ja auch noch suche (z.B. Monatssumme genau einmal im Log).....
Hatte heute Mittag für mein energyCum-Reading unter anderem ein
==> singularReadings shelly_plug_s:energyCum:Delta:Dayangelegt um die Tagessumme zu erhalten. Das Reading wird ja zusätzlich zum kompletten Delta-Reading geschrieben.
Das Ergebnis ist denke ich genau was du (ich auch) suchst. Events werden für das Logging erzeugt.
- 2021-05-04_23:58:00 shelly_plug_s statEnergyCumDay: 0.0 <== stündliches Event
- 2021-05-04_23:58:00 shelly_plug_s statEnergyCumDayLast: 484.9 <== genau ein Event kurz vor Mitternacht
- 2021-05-04_23:58:00 shelly_plug_s statEnergyCum: Hour: 0.0 Day: 0.0 Month: 1802.3 Year: 2902.3
- 2021-05-04_23:58:00 shelly_plug_s statEnergyCumLast: Hour: 0.0 Day: 484.9 Month: 1100.0 Year: -
- 2021-05-05_00:58:00 shelly_plug_s statEnergyCum: Hour: 0.0 Day: 0.0 Month: 1802.3 Year: 2902.3
- 2021-05-05_00:58:00 shelly_plug_s statEnergyCumLast: Hour: 0.0 Day: 484.9 Month: 1100.0 Year: -
- 2021-05-05_00:58:00 shelly_plug_s statEnergyCumDay: 0.0
- 2021-05-05_00:58:00 shelly_plug_s statEnergyCumMonth: 1802.3
Genau den Wert möchtest Du doch haben. Den Summenwert des Tages von 0 Uhr bis 23:58 Uhr (maximaler Wert).
Alles was man nicht haben will kann man ja aus dem FileLog herausfiltern bzw. nur das zulassen was rein soll.
Zitat von: Jupedi am 03 Mai 2021, 12:49:08
....Ich hätte gern die maximalen kWh von Monat und Tag als jeweils einzelnes Reading.
Hast Du es für dich gelöst? Wie?