helgeerbe / OpenDTU-OnBattery

Software for ESP32 to talk to Hoymiles Inverters and Victrons MPPT battery chargers (Ve.Direct)
GNU General Public License v2.0
290 stars 62 forks source link

Live-Daten: "Leistung / Netz" aktualisiert sich nicht #685

Closed Forstgrund closed 6 months ago

Forstgrund commented 6 months ago

What happened?

Die Version 2024.02.19.post1 aktualisiert die Live-Daten Anzeige von "Leistung / Netz" nicht. Flasht man zurück auf 2024.02.09 funktioniert es perfekt

To Reproduce Bug

Normal Install 2024.02.19.post1 without Battery....

Expected Behavior

Die aktualisierung sollte automatisch erfolgen wie es immer war

Install Method

Pre-Compiled binary from GitHub

What git-hash/version of OpenDTU?

2024.02.19.post1

Relevant log/trace output

No response

Anything else?

No response

spcqike commented 6 months ago

duplicate of https://github.com/helgeerbe/OpenDTU-OnBattery/issues/682 ?

Ralph161065 commented 6 months ago

Gleiches Problem bei zwei verschiedenen Installationen

der-peterh commented 6 months ago

WebApps verstehe ich zwar nicht, aber einen 'Dreher' könnte es in webapp/src/components/InverterTotalInfo.vue Zeile 118 geben: export default .... hier werden props huaweiData und powerMeterData überkreuzt mit type: Object as PropType und type: Object as PropType ... hier ist dann aber auch das Ende meines Verständnisses erreicht - yarn, js und vue sind sowas von nicht meine Welt :(

schlimmchen commented 6 months ago

Ich hab mir den Code im Frontend noch nicht angeschaut, aber es wäre wohl an der Zeit zu bemerken, dass der Fehler bei mir beispielsweise nicht auftritt (MQTT PowerMeter), und daher der Fehler in der Firmware zu suchen ist. Alle betroffenen melden Probleme mit dem HTTP PowerMeter. Da gab es auch Änderungen in den letzten Wochen, die durchaus dazu geführt haben können, dass aktualisierte Werte nicht mehr in die WebApp kommen oder überhaupt gar nicht abgeholt werden.

der-peterh commented 6 months ago

Mein ShellyEM3 läuft über MQTT und der Fehler tritt nur beim Auto Refresh auf: HM aktualisiert sich, PowerMeter nicht. Beim manuellen refresh (ziehen im GUI) wird hingegen aktualisiert. Über MQTT schreibt die Firmware ebenfalls aktuelle Werte. Ich vermute also entweder der (Websocket oder so was) wird falsch befüllt oder falsch ausgelesen...

danny1605 commented 6 months ago

Gleiche Problem hier auch.

Forstgrund commented 6 months ago

Meine Daten kommen vom Hichi am Zähler und in Tasmota kann ich sehen wie sich der Wert ständig ändert....nur mit der aktuellen Firmware bleibt der Wert stehen. Aktualisiere ich die Webseite zieht er sich den richtigen Wert vom Hichi. Ich hab jetzt wieder Firmwareversion 2024.02.09 laufen....da geht alles wie es sein soll. Ich habe noch keine Batterie angeschlossen

ingrimsch commented 6 months ago

Kann ich bestätigen:

Site Refresh holt alle Live Daten im Browser - hier funktioniert es Wert "Netz" vom OLED Display wird ebenfalls aktualisiert

Nur Autorefresh aktualisiert die "Leistung / Netz" Live Daten Kachel im Browser nicht

Version: 2024.02.19.post1, Settings: ohne Batterie nur das http/json Powermeter (Tasmota / Hichi) konfiguriert

cerise21 commented 6 months ago

Hier ebenso (mit 2024.02.19; selbstcompiliert wegen pinmapping für RS485-Anschluss eines SDM630-Powermeters): Keine automatische Aktualisierung von 'Leistung/Netz'. Zusätzlich ebenso keine Aktualisierung von 'MPPT-Gesamleistung' und (wahrscheinlich auch) von 'Ladezustand'. In der Detail-Ansicht unter 'SmartSolar xxx' erfolgt die Aktualisierung der 'Eingang'- und 'Ausgang'-Werte wie gewohnt…

schlimmchen commented 6 months ago

Ich sehe das Problem nun auch, wenn ich 2024.02.19.post1 installiere. Zuvor war ich auf einem Branch unterwegs, der die letzten Upstream-Änderungen noch nicht enthielt.

hier werden props huaweiData und powerMeterData überkreuzt mit type: Object as PropType und type: Object as PropType

Stimmt, das ist ein alter Fehler, der vermutlich deshalb keine Auswirkungen hat, weil die Objekte PowerMeter und Huawei gleich aufgebaut sind.

Der PowerMeter Wert im JSON des websockets wird aktualisiert, kommt also bis in die Web App, die im Browser läuft. Dann läuft irgendetwas schief.

Aha, hier: Im Upstream Projekt wurde die API insofern umgestellt, als dass die Daten der Inverter nur bröckchenhaft, oder genauer gesagt, nur pro Inverter übermittelt werden, um all zu große JSON Objekte in der Firmware zu vermeiden (wenn ich das alles richtig verstanden habe). In diesem Zusammenhang wird im Frontend nicht mehr die Nachricht aus dem Websocket stumpf als this.liveData interpretiert. Wir müssen die OnBattery-spezifischen Teilobjekte der Nachricht aus dem Websocket ausdrücklich übernehmen. Der Fehler betrifft also auch die Live-Header-Werte der Batterieschnittstelle, der Huawei-Schnittstelle, und der VE.Direct-Schnittstelle.

mastertape commented 6 months ago

Wollte es auch grade melden… Ich bedanke mich bereits jetzt für den fix

hhoebel commented 6 months ago

Ich habe den Fix in der aktuellen Version 2024.02.19.post1 getestet und "Leistung/Netz" und "MPPT Gesamtleistung" aktualisieren bei mir immer noch nicht.

schlimmchen commented 6 months ago

Also das hier diskutierte Problem ist mit der 2024.02.19.post1 erst in die Firmware reingekommen. Und meine Änderungen in #696 sind noch nicht veröffentlicht. Was hast du getestet, @hhoebel?

hhoebel commented 6 months ago

Da ich wegen dem Problem mit dem falschen Kanalcount des DPL bei meinem HMT2250 aktuell die von dir erwähnte Firmware in gepatchter Version betreibe, habe ich deinen Fix dort mit eingespielt, compiliert und dann gestestet. Entweder ist das aber nicht alles, was man ändern muss oder die Änderungen benötigen noch was anderes als nur einen Build in VSCode, um im BIN-File zu landen (bin noch neu im Kompilieren des Projekts).

schlimmchen commented 6 months ago

Du hast garantiert vergessen, die web app zu bauen. Gehe in einer Kommandozeile in den Unterorder "webapp" dieses Repos und führe "npm run build" aus (oder noch genauer: Installiere npm (nodejs), führe "npm install" aus, und dann "npm run build").

Und/Oder schau hier: https://www.opendtu.solar/firmware/compile_webapp/

Und dann die Firmware bauen (du wirst bemerken, dass drei Binäre Dateien nun verändert sind laut GIT).

hhoebel commented 6 months ago

Danke Dir! Sowas in der Art habe ich auch irgendwann vermutet. Kaum macht man es richtig, funktioniert es auch schon :-)

ingrimsch commented 6 months ago

Getestet mit dem Build von https://github.com/helgeerbe/OpenDTU-OnBattery/actions/runs/8037760180 --> funktioniert! :)

@schlimmchen Vielen Dank!

der-peterh commented 6 months ago

Getestet mit dem Build von https://github.com/helgeerbe/OpenDTU-OnBattery/actions/runs/8037760180 --> funktioniert! :)

@schlimmchen Vielen Dank!

Same here - kudos @schlimmchen

github-actions[bot] commented 5 months ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new discussion or issue for related concerns.