Hallo,
ich nutze in FHEM mehrere Statistics-Device, aber eines macht mir aktuell Probleme ohne das ich herausfinden kann, woran es liegt.
So sieht das List des Stat-Device aus:
Internals:
CFGFN
DEF Solarspeicher_HA
DEV_REGEXP Solarspeicher_HA
FUUID 685dcb04-f33f-a358-a644-b230a7c0452f0d00
NAME Stat_Solarspeicher_HA_1
NOTIFYDEV global,Solarspeicher_HA
NR 411
NTFY_ORDER 10-Stat_Solarspeicher_HA_1
PREFIX stat
STATE Updated stats for: Solarspeicher_HA
TYPE statistics
eventCount 2414
READINGS:
2025-06-27 00:34:58 monitoredDevicesMQTT2_DEVICE Solarspeicher_HA
2025-06-28 08:59:56 nextPeriodChangeCalc 2025-06-28 09:59:55
2025-06-28 09:04:05 state Updated stats for: Solarspeicher_HA
fhem:
modulVersion $Date: 2024-05-18 09:37:34 +0200 (Sat, 18 May 2024) $
nextPeriodChangeTime 1751097595
Attributes:
DbLogExclude .*
deltaReadings energy
singularReadings Solarspeicher_HA:energy:Delta:(Year|Month|Day)
und so das Device für die Readings:
Internals:
CID fhem
DEF fhem
FUUID 67f80320-f33f-a358-f71a-003ac458efaa9dd8
IODev ha_MQTT2
LASTInputDev ha_MQTT2
MSGCNT 17507
NAME Solarspeicher_HA
NR 402
STATE Akkustand: 7 % <br> Leistung aktuell: 332 W <br> Einspeisung heute: 0.52 kWh<br>
TYPE MQTT2_DEVICE
eventCount 17608
ha_MQTT2_MSGCNT 17507
ha_MQTT2_TIME 2025-06-28 09:04:35
Helper:
DBLOG:
power:
logdb:
TIME 1751094275.77704
VALUE 332
OLDREADINGS:
READINGS:
2025-06-28 09:02:31 akku 7
2025-06-28 09:04:35 energy 0.519
2025-06-28 09:04:35 power 332
2025-06-28 09:04:35 statEnergy Hour: 0.031 Day: 0.514 Month: 0.514 Year: 0.514 (since: 2025-06-28_00:01:01 )
2025-06-28 09:04:35 statEnergyDay 0.514
2025-06-27 23:59:57 statEnergyDayLast 2.857
2025-06-28 08:59:56 statEnergyLast Hour: 0.056 Day: 2.857 Month: - Year: -
2025-06-28 09:04:35 statEnergyMonth 0.514
2025-06-28 09:04:35 statEnergyYear 0.514
2025-06-28 09:04:35 statPowerDay Min: 0 Avg: 56 Max: 695 (since: 2025-06-28_00:01:01 )
2025-06-27 23:59:57 statPowerDayLast Min: 0 Avg: 121 Max: 1236 (since: 2025-06-27_00:34:58 )
2025-06-28 09:04:35 statPowerMonth Min: 0 Avg: 56 Max: 695 (since: 2025-06-28_00:01:01 )
2025-06-28 09:04:35 statPowerYear Min: 0 Avg: 56 Max: 695 (since: 2025-06-28_00:01:01 )
helper:
_98_statistics Stat_Solarspeicher_HA_1
Attributes:
DbLogExclude .*
DbLogInclude power
alias 3_ Solarspeicher_HA
group 2_Solar
icon weather_sun@yellow
readingList fhem:hass/sensor/solartest_energy_power/state:.* power
fhem:hass/sensor/solartest_energy_today/state:.* energy
fhem:hass/sensor/jk_bms_capacity_remaining/state:.* akku
room Solar
stateFormat {sprintf
("Akkustand: %.f %% <br> Leistung aktuell: %.f W <br> Einspeisung heute: %.2f kWh<br>",
ReadingsVal("Solarspeicher_HA","akku",0),
ReadingsVal("Solarspeicher_HA","power",0),
ReadingsVal("Solarspeicher_HA","energy",0),
)}
Der Wert "statEnergyDay" wird ja aus dem Reading "energy" gebildet, soweit so gut. Allerdings habe ich beim Tageswechsel das Problem, wenn das Reading "energy" genullt wird, wird das Reading "statEnergyDay" mit dem Wert des dann vorhergenden Tages negativ. Also um 23:59:59 zeigt das Reading z.Bsp: 2.21 und um 00:00:01 dann -2.21.
Das Reading "energy" ist ja um 00:00:01 dann 0 und sobald der Wert ansteigt, steigt auch der negative Wert. Also bei quasi gleichem Verbrauch würde dann über den Tag der Wert bis zu Mitternacht wieder 0 sein.
Ich habe bei keinem anderen stat-Device ein solches Problem und finde den Fehler nicht.
Danke für eure Hilfe.
Grüße
PS: Ich habe mir nun mit "resetStatistics" geholfen, deswegen stimmen die Werte bei statEnergyMonth und statEnergyYear auch nicht.
Oh, vermutlich habe ich den "Fehler" gefunden.
Das Statistics-Modul kommt nicht mit "genullten/Tages-Werten klar sondern nur mit Werten die kontinuierlich aufaddiert werden.
Zumindest habe ich keine andere Erklärung dafür.
Evtl. gibt es dafür aber auch eine Lösung?
Ich habe bisher nur das Reading "energy" (Tageswert) an FHEM geschickt.
Wenn ich mich nicht irre wird es mit dem Reading "energy_total" (wird nicht (automatisch) zurückgesetzt) korrekt funktionieren.
Wenn es dafür aber eine einfache Lösung kennt, wäre es super, wenn mir die jemand verraten würde.
Danke euch.
Grüße
Womoeglich kan hier ein userReadings der Sorte monotonic Abhilfe schaffen:
https://fhem.de/commandref_modular.html#userReadings
Danke, aber ich glaube das ist mir tatsächlich auf die Schnelle zu kompliziert.
Mit dem aufaddierenden "energy_total" funktioniert es für mich ausreichend.
Musste zwar ein klein wenig wegen des neuen Readings anpassen, aber nun funktioniert alles, wie es soll.
Grüße