Reading enthält immer mal wieder alten Wert

Begonnen von birdy, 20 Mai 2025, 18:40:25

Vorheriges Thema - Nächstes Thema

birdy

Hallo zusammen
Nicht unbedingt eine Anfängerfrage, aber ich wusste nicht welches der korrekte Bereich für meine Frage ist.  Frage kann also gerne verschoben werden.

Ich speichere immer am Ende des Tages den Wert (Total_Energy) eines Shellys mit setreading in einem eigenen Reading ab. Bevor ich das mache lese ich aber den Wert des Vortages aus und bilde die Differenz und schreibe die in eine Logdatei. Diese Logdatei ist dann Grundlage einer Grafik welche mir die Dif. Werte der vergangenen Tage und Woche anzeigt. Das Ganze funktioniert eigentlich ganz gut.
Aber gelegentlich zeigt die Grafik einen unerklärlichen Ausreisser. 

Das Problem, das Lesen des Vortages Wert, ReadingsVal(...), bringt gelegentlich einen falschen Wert.  Wieso dies in unregelmässigen Abständen immer wieder auftritt, ist mir ein Rätsel.
Inzwischen lese ich den Wert immer nach dem Schreiben nochmals aus.  Zu diesem Zeitpunkt ist der Wert noch ok. Wird er aber 24 Std. später noch einmal ausgelesen, erhalte ich gelegentlich einen falschen Wert.  Das interessante ist, der falsche Wert ist ein alter Wert der 5 Tage früher in dieses Reading geschrieben wurde.

Hat jemand eine Idee wo das Problem liegen könnte, oder zumindest wie man es eingrenzen kann.
FHEM  @Debian bullseye @Proxmox VE 8.4.1
GMKtec mit AMD Ryzen 7 5700U
CUL 433(a-culfw), CUL 868(SlowRF), Max-Cube CUN geflash, HM-CFG-USB-2 (HMALND)

Prof. Dr. Peter Henning


Otto123

Zitat von: birdy am 20 Mai 2025, 18:40:25Zu diesem Zeitpunkt ist der Wert noch ok. Wird er aber 24 Std. später noch einmal ausgelesen, erhalte ich gelegentlich einen falschen Wert.  Das interessante ist, der falsche Wert ist ein alter Wert der 5 Tage früher in dieses Reading geschrieben wurde.

Hat jemand eine Idee wo das Problem liegen könnte, oder zumindest wie man es eingrenzen kann.
Klingt danach als ob das System crashed, FHEM neu gestartet wird und ein altes statefile eingelesen wird?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

birdy

Hallo Otto
Ja genau, so muss es sein. Vielen Dank für den Hinweis.
Ich habe mir jetzt über einen AT einen periodischen Save definiert.

Gruss birdy 

FHEM  @Debian bullseye @Proxmox VE 8.4.1
GMKtec mit AMD Ryzen 7 5700U
CUL 433(a-culfw), CUL 868(SlowRF), Max-Cube CUN geflash, HM-CFG-USB-2 (HMALND)

betateilchen

Tipp: DbLog verwenden und den Wert für die Berechnung aus dem Log lesen statt aus den readings. Im Log wird der Wert beim Setzen mit setreading automatisch zeitnah abgespeichert.

Zitat von: birdy am 21 Mai 2025, 20:26:59Ich habe mir jetzt über einen AT einen periodischen Save definiert.

Unschöner Workaround.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Otto123

naja vor allem würde ich schauen warum FHEM offenbar regelmäßig crashed?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

betateilchen

An dieser Variante der Problemlösung scheint aber offenbar kein allzu großes Interesse seitens des Anwenders zu bestehen  8)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

birdy

Zitat von: betateilchen am 21 Mai 2025, 20:41:41Tipp: DbLog verwenden und den Wert für die Berechnung aus dem Log lesen statt aus den readings. Im Log wird der Wert beim Setzen mit setreading automatisch zeitnah abgespeichert.
.......
Danke für den Tipp. Weil ich den Aufwand für die Umstellung scheue, habe ich die Verwendung von DbLog bisher immer vor mir hergeschoben.
Evtl. sollte ich das doch einmal anpacken. 
Welche DB verwendest Du, was ist deine Empfehlung?


Zitat von: betateilchen am 22 Mai 2025, 08:54:52An dieser Variante der Problemlösung scheint aber offenbar kein allzu großes Interesse seitens des Anwenders zu bestehen  8)
Eine Annahme ... ;)
Liegt wohl eher an der Komplexität (fehlendem Know How). Wie findet man das Problem,  und falls gefunden wie kann man es beheben..... Aufwand und Ertrag ... 
FHEM  @Debian bullseye @Proxmox VE 8.4.1
GMKtec mit AMD Ryzen 7 5700U
CUL 433(a-culfw), CUL 868(SlowRF), Max-Cube CUN geflash, HM-CFG-USB-2 (HMALND)

Otto123

Zitat von: birdy am 22 Mai 2025, 12:04:07Wie findet man das Problem, 
  • Im System mit journalctl -u fhem.service schauen wann und wie oft das passiert
  • Im FHEM Log den Punkt suchen wo der Absturz war, manchmal geben die letzten Einträge schon eine Idee.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

birdy

Ich vermute, dass das Problem bei Proxmox liegt. Weil ich Proxmox aber schon mehrfach neu installiert habe, habe ich die HW in Verdacht.
FHEM  @Debian bullseye @Proxmox VE 8.4.1
GMKtec mit AMD Ryzen 7 5700U
CUL 433(a-culfw), CUL 868(SlowRF), Max-Cube CUN geflash, HM-CFG-USB-2 (HMALND)