Hallo in die Runde,
ich möchte gerne die Readings welche aus einem statistics Modul resultieren ändern. Ich habe unter https://forum.fhem.de/index.php/topic,34497.msg279246.html#msg279246 (https://forum.fhem.de/index.php/topic,34497.msg279246.html#msg279246)
folgende Hinweis gefunden.
FHEM shutdown
Die fhem.save editieren und in die .Readings Deine Startwerte eintragen.
FHEM neu starten
Leider klappt das bei mir nicht. Nach fhem shutdown habe ich die Werte in der fhem.save entsprechend geändert und gespeichert. Nach Start von fhem sind aber wieder die alten Werte in den Readings.
Hat jemand eine Idde wie ich die Werte ändern kann?
Danke
Fritz
Hallo Fritz,
der Weg ist schon richtig. Du scheinst etwas falsch gemacht zu haben. Zeig mal die Daten von statistics und den dazugehörigen readings.
Grüße Markus
Hallo Markus,
hier das list von meinem Arducounter in dem die statistcis readings sind
Internals:
DEF /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AH02KF7X-if00-port0@38400
DeviceName /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AH02KF7X-if00-port0@38400
FD 4
FUUID 5cf6acc7-f33f-7a30-7ab1-e16fc841f61e2155
LASTOPEN 1562959399.69866
NAME S0CounterWp
NOTIFYDEV global
NR 169
NTFY_ORDER 50-S0CounterWp
PARTIAL
STATE opened
TYPE ArduCounter
VersionModule 6.14 - 24.2.2019
buffer
devioLoglevel 3
nextOpenDelay 60
READINGS:
2019-06-24 21:00:11 S0DurchflWp_l 0
2019-07-12 21:59:55 S0EnergieWp_kWh 8691.25
2019-07-12 21:59:55 S0WaermemWp_MW 0
2019-07-12 21:59:55 mvavWpDurchfluss 0.000
2019-07-12 21:59:55 statS0EnergieWp_kWh Hour: 0.00 Day: 0.00 Month: 8691.25 Year: 8691.25 (since: 2019-06-25 )
2019-07-12 21:59:55 statS0EnergieWp_kWhDay 0.00
2019-07-12 06:27:41 statS0EnergieWp_kWhDayLast 0
2019-07-12 21:59:55 statS0EnergieWp_kWhLast Hour: 0.00 Day: 8691.25 Month: 0 Year: - (since: 2019-06-25 )
2019-07-12 21:59:55 statS0EnergieWp_kWhMonth 8691.25
2019-06-30 23:59:55 statS0EnergieWp_kWhMonthLast 0
2019-07-12 21:59:55 statS0EnergieWp_kWhYear 8691.25
2019-07-12 21:59:55 statS0WaermemWp_MW Hour: 0 Day: 0 Month: 0 Year: 0 (since: 2019-06-25 )
2019-07-12 21:59:55 statS0WaermemWp_MWDay 0
2019-07-11 23:59:55 statS0WaermemWp_MWDayLast 0
2019-07-12 21:59:55 statS0WaermemWp_MWLast Hour: 0 Day: 0 Month: 0 Year: - (since: 2019-06-25 )
2019-07-12 21:59:55 statS0WaermemWp_MWMonth 0
2019-06-30 23:59:55 statS0WaermemWp_MWMonthLast 0
2019-07-12 21:59:55 statS0WaermemWp_MWYear 0
2019-07-12 21:23:19 state opened
helper:
_98_statistics staStatistics
Attributes:
factor 1
flashCommand avrdude -p atmega328P -c arduino -P [PORT] -b 57600 -U flash:w:[HEXFILE] 2>[LOGFILE]
pinD3 rising pullup 30
pinD4 rising pullup 100
pinD5 rising pullup 100
readingFactor3 500
readingFactor4 1
readingFactor5 10000000
readingNameCount3 S0LeistungWp_Imp
readingNameCount4 S0WaermemWp_Imp
readingNameCount5 S0DurchflWp_Imp
readingNamePower3 S0LeistungWp_W
readingNamePower4 S0WaermemWp_cbm
readingNamePower5 S0DurchflWp_l
userReadings S0EnergieWp_kWh monotonic { sprintf("%.4f", ReadingsVal("S0CounterWp","S0LeistungWp_Imp",0))/2000;},S0WaermemWp_MW monotonic { sprintf("%.4f", ReadingsVal("S0CounterWp","S0WaermemWp_Imp",0))/1000;},mvavWpDurchfluss {movingAverage("S0CounterWp","S0DurchflWp_l",120)}
userattr pinD3 pinD4 pinD5 readingFactor3 readingFactor4 readingFactor5 readingNameCount3 readingNameCount4 readingNameCount5 readingNamePower3 readingNamePower4 readingNamePower5
und hier noch das list vom statistics modul
Internals:
DEF mdbsSmartMeter|mdbsWechselrichter|S0CounterWp
DEV_REGEXP mdbsSmartMeter|mdbsWechselrichter|S0CounterWp
FUUID 5cf6acc5-f33f-7a30-ebc7-6a0105ca06c5b69d
NAME staStatistics
NOTIFYDEV global,mdbsSmartMeter|mdbsWechselrichter|S0CounterWp
NR 152
NTFY_ORDER 10-staStatistics
PREFIX stat
STATE Updated stats for: mdbsSmartMeter
TYPE statistics
READINGS:
2019-07-12 21:23:19 monitoredDevicesArduCounter S0CounterWp
2019-07-12 21:23:20 monitoredDevicesFronius_Modbus mdbsWechselrichter
2019-07-12 21:23:20 monitoredDevicesFronius_Modbus_Meter mdbsSmartMeter
2019-07-12 21:59:55 nextPeriodChangeCalc 2019-07-12 22:59:55
2019-07-12 22:09:28 state Updated stats for: mdbsSmartMeter
fhem:
modulVersion $Date: 2018-03-18 19:51:57 +0100 (Sun, 18 Mar 2018) $
nextPeriodChangeTime 1562965195
Attributes:
deltaReadings Energy_total_imp__kWh,Energy_total_exp__kWh,Energy_Total__kWh,Direktverbrauch__kWh,S0EnergieWp_kWh,S0WaermemWp_MW,countsOverall
disable 0
ignoreDefaultAssignments 1
room KG_Heizungsraum
singularReadings mdbsSmartMeter:Energy_total_imp__kWh:Delta:Hour|mdbsSmartMeter:Energy_total_exp__kWh:Delta:Hour|mdbsWechselrichter:Energy_Total__kWh:Delta:Hour|mdbsSmartMeter:Direktverbrauch__kWh:Delta:Hour|S0CounterWp:S0EnergieWp_kWh:Delta:(Day|Month|Year)|S0CounterWp:S0WaermemWp_MW:Delta:(Day|Month|Year)|hcnWpAbtauung:countsOverall:Delta:(Day|Month|Year)
Habe gerade nochmal in der fhem.save nachgeschaut. dort stehen noch die Werte, wie ich sie geändert habe
setstate S0CounterWp opened
setstate S0CounterWp 2019-06-24 21:00:11 S0DurchflWp_l 0
setstate S0CounterWp 2019-07-12 21:06:29 S0EnergieWp_kWh 8691.25
setstate S0CounterWp 2019-07-12 21:06:29 S0WaermemWp_MW 0
setstate S0CounterWp 2019-07-12 21:06:29 mvavWpDurchfluss 0.000
setstate S0CounterWp 2019-07-12 21:06:29 statS0EnergieWp_kWh Hour: 0.00 Day: 0.00 Month: 0.00 Year: 2689.25 (since: 2019-06-25 )
setstate S0CounterWp 2019-07-12 21:06:29 statS0EnergieWp_kWhDay 0.00
setstate S0CounterWp 2019-07-12 06:27:41 statS0EnergieWp_kWhDayLast 0
setstate S0CounterWp 2019-07-12 20:59:55 statS0EnergieWp_kWhLast Hour: 0.00 Day: 0.00 Month: 0 Year: - (since: 2019-06-25 )
setstate S0CounterWp 2019-07-12 21:06:29 statS0EnergieWp_kWhMonth 0.00
setstate S0CounterWp 2019-06-30 23:59:55 statS0EnergieWp_kWhMonthLast 0
setstate S0CounterWp 2019-07-12 21:06:29 statS0EnergieWp_kWhYear 2689.25
setstate S0CounterWp 2019-07-12 21:06:29 statS0WaermemWp_MW Hour: 0 Day: 0 Month: 0 Year: 0 (since: 2019-06-25 )
setstate S0CounterWp 2019-07-12 21:06:29 statS0WaermemWp_MWDay 0
setstate S0CounterWp 2019-07-11 23:59:55 statS0WaermemWp_MWDayLast 0
setstate S0CounterWp 2019-07-12 20:59:55 statS0WaermemWp_MWLast Hour: 0 Day: 0 Month: 0 Year: - (since: 2019-06-25 )
setstate S0CounterWp 2019-07-12 21:06:29 statS0WaermemWp_MWMonth 0
setstate S0CounterWp 2019-06-30 23:59:55 statS0WaermemWp_MWMonthLast 0
setstate S0CounterWp 2019-07-12 21:06:29 statS0WaermemWp_MWYear 0
setstate S0CounterWp 2019-07-12 21:06:28 state opened
Was mir aufgefallen ist, im logfile steht folgendes
2019.07.12 21:23:19 3: S0CounterWp: Notify called with events: INITIALIZED, open device and set timer to send hello to device
2019.07.12 21:23:19 3: Opening S0CounterWp device /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AH02KF7X-if00-port0
2019.07.12 21:23:19 3: Setting S0CounterWp serial parameters to 38400,8,N,1
2019.07.12 21:23:19 3: S0CounterWp device opened
.
.
.
2019.07.12 21:23:37 3: S0CounterWp: device didn't reply to h(ello). Is the right sketch flashed? Is speed set to 38400?
Keine Ahnung was das bedeutet!
Fritz
Ich seh da jetzt keinen Fehler. Der aktuelle Zählerstand wurde für den gestrigen Tag, lfd. Monat u. Jahr übernommen. Bei den timestamps fällt noch auf, dass der bei statS0EnergieWp_kWhDayLast eigentlich falsch ist. Spätestens jetzt(00:09) sollte er wieder korrekt sein. ;D
Probier es noch einmal. Ich hab das kürzlich auch mal gemacht und es klappte erst mit dem x-ten Anlauf. Ich weiß aber nicht woran es konkret lag.Wenn sich das Verhalten(Der aktuelle Zählerstand wurde für den gestrigen Tag, lfd. Monat u. Jahr übernommen) nicht ändert, würd ich es mit negativen Werten probieren, so dass die Addition die gewünschten Werte liefert, also dort wo 0 stehen soll, aber nun 8691.25 steht -8691.25 im statefile eintragen.
Gute Nacht
Hallo in die Runde,
nach meinem Urlaub habe ich mich mit neuer Kraft an das Thema gewagt. Und siehe da es funktioniert, ich kann die readings im fhem.save file ändern und bei Neustart werden die Änderungen auch übernommen.
Das Problem war/ist , das mein fhem wenn ich über die fhem Befehlszeile shutdown
eingebe nach dem runterfahren gleich wieder startet. Ich habe das die ganze Zeit nicht bemerkt und somit immer die .save Datei editiert/gespeichert, obwohl fhem lief ???
Nachdem ich das bemerkt habe, habe ich fhem über die pi shell angehaltensudo systemctl stop fhem
Ab da hat dann die oben beschriebene Vorgehensweise funktioniert.
Vielen Dank an Alle!
Grüße Fritz