NEWS
Neuer Adapter ecoflow-mqtt
-
-
@klausn sagte in Neuer Adapter ecoflow-mqtt:
Anbei das LOG.
Super. Danke.
Kannst du mal prüfen, ob die Häckchen drin sind?
Ich glaube, die fehlen.
Falls ja, bitte nochmal ein log posten. -
msgUpdate und msgSetGet waren angekreuzt, so wie Du gesagt hattest.
Ich hab jetzt mal noch msgUpdateValue und msgCmd angekreuzt.Voila:
-
@klausn sagte in Neuer Adapter ecoflow-mqtt:
msgUpdate und msgSetGet waren angekreuzt, so wie Du gesagt hattest.
Ich hab jetzt mal noch msgUpdateValue und msgCmd angekreuzt.Danke, irgendwas passt noch nicht.
Es müsste mindestens nach dem Start eine Zeile:ecoflow-mqtt.0 (4820) [PROTOBUF decode] R37xxxxxx [get_reply] raw (hex): 0a83030.....
auftauchen.
Laut log ist das Telegramm auch angekommen und funktioniert bis zur msg7. Dann gibt es noch Probleme die noch Ursachenforschung brauchen. Aber dazu brauch ich die vermissten Anteile im Log.
Kannst du hier nochmal überprüfen (debug, Häckchen gesetzt)?!
Danke.
-
-
@klausn sagte in Neuer Adapter ecoflow-mqtt:
Sorry, war mein Fehler, Asche auf mein Haupt.
Danke. Jetzt passt es und ich kann mich um die Unterschiede zur anderen Ocean kümmern.
-
Eine neue Version ist auf npm und git verfügbar.
Hauptsächlich Dinge für Powerocean, speziel der Heizstab ist nun dabei.
Und auch ein paar Kleinigkeiten im Zusammenspiel mit Homeassistant.@bentschik
Parallelenergie ist nun mit powerPv drin, die alten unknown9/10 Datenpunkte können gelsöcht werden.@KlausN
Die Daten sollten nun richtig verarbeitet werden. Das Problem der <20 habe ich noch nicht angegangen, da braucht es eine Umstrukturierung.
Aber die Batterien und Heizstab sollte nun richtig angezeigt werden.1.4.4 (npm)
- (foxthefox) new datapoints for PowerOcean (HeatingRod, ParallelEnergy)
- (foxthefox) improvements tp powerocean plus
- (foxthefox) corrections for powerocean
- (foxthefox) testing JSON->buffer
-
die Version 1.4.5 ist neu auf git und npm verfügbar
@KlausN
Das Problem mit den <20 hoffe ich gelöst zu haben, da jetzt alle ankommenden Telegramme (auch die mehrfachen zu einem Objektbaum) nun verarbeitet werden.1.4.5 (npm)
- (foxthefox) change from object to array for messages (for telegrams with multiple messages of same type i.e. powerocean)
- (foxthefox) change of cmdId/CmdFunc structure
-
Kurze Rückmeldung zu 1.4.5:
HeatingRodEnergyStreamShow.rod1_temp zeigt keine Temperatur an,
statusReportBattery2 und 3 fehlen noch,
Werte mit 0 W, z.B. JTS1_ENERGY_STREAM_REPORT.mpptPwr (und andere) werden nicht angezeigt, es verbleibt im MQTT-Objekt der vorherige Wert > 0.Danke für Deine Mühe!
-
@klausn sagte in Neuer Adapter ecoflow-mqtt:
Kurze Rückmeldung zu 1.4.5:
HeatingRodEnergyStreamShow.rod1_temp zeigt keine Temperatur an,
statusReportBattery2 und 3 fehlen noch,
Werte mit 0 W, z.B. JTS1_ENERGY_STREAM_REPORT.mpptPwr (und andere) werden nicht angezeigt, es verbleibt im MQTT-Objekt der vorherige Wert > 0.Danke für Deine Mühe!
Danke für die Rückmeldung.
Hmm. Das die Batterien nicht mit Daten befüllt werden, wundert mich. Hattest du in der Zwischenzeit mal die EF-App offen? Die fordert an sich das gleiche Telegramm an, wie beim starten des Adapters. Dieses vom Start und auch Updates habe ich erfolgreich bei mir durchgetestet. Sehr merkwürdig, dass 2 Batterien keine Daten haben.
Evtl mal das log anschauen. Ob da was an Fehlern kommt und wie oft dort eine Telegramm reinkommt. Evtl. Kommen bestimmte Telegramme nur wen die App offen ist.
Im log sind auch die nach json gewandelten Daten zu sehen, dort mal drauf achten ob hier rod1_temp mit drin ist. Bzw mpptPwr. -
@foxthefox Auch an dieser Stelle nochmals vielen Dank für Deine Arbeit
Für mein eigenes Verständnis zum Update der Werte habe ich noch eine Frage. Soweit ich das verstanden habe, soll das 5-minütige getLatestQuotas sicherstellen, dass die Daten mindestens in diesem Intervall aktualisiert werden. Ich habe mir das Ganze mal mit dem ParallelEnergyStreamReport angeschaut. Alle Werte dort aktualisieren sich nicht mehr, solange die App nicht aktiv ist. Ich sehe im debug log, dass das getLatestQuotas läuft. Im log sehe ich auch folgendes, wobei ich mir nicht ganz sicher bin, ob das eine Antwort auf getLatestQuotas ist:
[PROTOBUF decode] HJXXXXX [get_reply] msg#10 => ParallelEnergyStreamReport { "paraEnergyStream": [ { "sysLoadPwr": 397.404296875, "sysGridPwr": -12.054679870605469, "bpPwr": -409.458984375, "bpSoc": 44 }, { "sysLoadPwr": 400.8734436035156, "sysGridPwr": 245.0974884033203, "bpPwr": -155.7759552001953, "bpSoc": 43, "devSn": "HJXXXXX" }, { "sysLoadPwr": -1.880767822265625, "sysGridPwr": -255.56381225585938, "bpPwr": -253.68304443359375, "bpSoc": 44, "devSn": "BKXXXX" } ] }
D.h. diese Werte kommen wohl an, aber die entsprechenden IOB-Objekte werden nicht aktualisiert. Das zweite Datenset entspricht vermutlich den Daten für ocean und das dritte für system1:
Die Daten hier wurden letztmalig gestern um 21:27 aktualisiert.
Weiterhin sieht es dann wohl so aus, als wenn getLatestQuotas nicht alle Datenpunkte des ParallelEnergyStreamReports bekommt. Ist zumindest dieser Punkt erwartetes Verhalten?
-
@bentschik
Danke für diese detaillierte Rückmeldung.
Zur Ursache habe ich noch keine Idee, aber die Erkenntnis des Problems ist schonmal wichtig.Also, es sollte eigentlich anders laufen.
GetLatestQuotas taucht als [get] im log auf, wird auch von der App in gleicher Weise benutzt.
Das [get_reply] ist die Antwort darauf und in dem Telegramm sind mehrere Messages msg.
Msg#10 ist in dem Fall das Update zu den Leistungen.
Das kommt als Array und das erste Objekt sollte das gesamt System sein und die anderen haben dann de prefix von mir. So wie du es beschreibst.
Grundsätzlich wird das Telegramm und damit die enthaltenen Messages und dann die Datenpunkte durchlaufen und bei Abweichungen zum derzeitigen IOB-Wert wird das Neue übernommen.Gemäß deiner Schilderung werden die Daten geholt und auch dekodiert, aber es wird nichts abgespeichert.
Du könntest mal noch bei msgUpdateValue noch ein Häckchen setzen. Evtl kommt da etwas zum Vorschein.Ich schau heute Abend mal im Code, vielleicht sehe ich da auch was.
-
@foxthefox Was ich noch sehe, ist folgendes:
[PROTOBUF decode] HJ37ZDH5ZGCF0067 [update] msg#0 => { "paraEnergyStreamDetail": [ { "loadPwr": 814.7593994140625, "gridPwr": -350.96319580078125, "mpptPwr": 1390.2650146484375, "bpPwr": 224.54238891601562, "timestamp": 1757936700, "bpSoc": 69, "devSn": "HJXXXXXX" }, { "loadPwr": 823.8870849609375, "gridPwr": 4.56684684753418, "mpptPwr": 1390.2650146484375, "bpPwr": 570.94482421875, "timestamp": 1757936700, "bpSoc": 66 }, [....] ], "paraSysSeq": 41630 }
In dem log Eintrag sind auch noch die Daten für 4 weitere timestamps, die ich weggelassen habe.
Ich vermute, dass Du Einträge, wie z.B. den hier meinst:
[Compare] update .JTS1_EMS_HEARTBEAT.pcsVgridThd 0 -> 0.04
Sowas bekomme ich für so ziemlich alles andere, aber nicht für den ParallelEnergyStreamReport. Erst, wenn ich die App anreisse kommt was (gekürzter log):
[Compare] update .ParallelEnergyStreamReport.powerPv2 202.36 -> 203.8 [Compare] update .ParallelEnergyStreamReport.powerPv1 223.48 -> 225.1 [Compare] update .ParallelEnergyStreamReport.bpPwr -259.36 -> -236.75 [Compare] update .ParallelEnergyStreamReport.mpptPwr 425.84 -> 428.9 [Compare] update .ParallelEnergyStreamReport.sysGridPwr -13.65 -> -5.79 [Compare] update .ParallelEnergyStreamReport.sysLoadPwr 671.54 -> 659.86
-
@bentschik
Super Recherche deinerseits.Genau, für jede Änderung sollte es ein Vergleich geben und bei einem Unterschied gibt es diese [Compare] Einträge im log. Wenn das bei allen anderen kommt, ist das schonmal gut und zeigt, dass Daten kommen und der Mechanismus seinen Dienst tut.
Nun zu den Energiewerten, es gibt immerhin schon einen Unterschied. Bei get_reply scheint es parallelEnergyStream zu geben und bei den Updates ist es parallelEnergyStreamDetail. Also ein klein wenig anders und wahrscheinlich habe ich dieses Telegramm noch nicht verarbeitet. Das nehme ich mal noch mit auf.
Das ist zumindest die Begründung warum keine Updates zu den Werten kommen.
Eine Erklärung warum alle 5min über get_reply nichts verarbeitet wird, ist es noch nicht. -
Ich habe mal eine 1.4.6 zum Testen in github hochgeladen.
ExpertMode -> custom -> https://github.com/foxthefox/ioBroker.ecoflow-mqtt/tree/1.4.6
damit sollte es bei [updates] nun auch die [Compare] Eintrage geben (ParallelEnergyStreamReport). -
@foxthefox Dein letztes Update hat einiges in Bewegung gebracht
Ich bekomme jetzt tatsächlich 5-minütliche Updates, und die Daten landen auch in den IOB-Objekten:Ich habe mir hier mal einen Wert geschnappt, damit ich das besser beobachten kann. Interessant sind diese Blöcke zu 6 Updates direkt hintereinander weg. Bei anderen Datenpunkten können es auch andere "Blockgrössen" sein. So wirklich verstehe ich das nicht. Sind das historische Daten aus den vorherigen 5 Minuten, oder wie ist das zu interpretieren?
Ich hatte in einem Anfall von Wahnsinn noch versucht, das irgendwie mit paraEnergyStreamDetail zu korrelieren, weil dort timestamps kommen, aber hab's nicht hinbekommen.Mit dem Update habe ich nun auch plötzlich Daten für die system1 Datenpunkte mpptPwr/powerPv1/PowerPv2 obwohl ich an anderer Stelle noch behauptet habe, dass Null absolut in Ordnung wäre, weil die Systemkomponente gar keinen Wechselrichter hat...da muss ich nun selbst mal schauen, was das wohl für Werte sein könnten
-
@bentschik
Danke für die Rückmeldung. Schonmal gut, wenn es jetzt mit den updates etwas ausliest.
Da die Daten einen Zeitstempel haben, werden Teile davon auch quasi historisch sein.
Das wird in einem Rutsch übernommen, also ggf. in dem Moment ändert sich der Datenpunkt mehrmals.Ich glaube da ist dann noch etwas nicht fertig meinerseits.
Du hattest oben erwähnt, daß es hier weitere 4 Sets (Objekte mit {} gibt), d.h. das kommt nicht sortiert rein, wie beim get_reply.
Da muß ich also korrelieren, was drin ist, um es richtig auf ocean und system1 zu sichern.Ich mach das mal gleich und melde mich wieder.
-
@foxthefox Hier hast Du doch nochmal ein volles Beispiel. Vielleicht ist es hilfreich:
[PROTOBUF decode] HJXXXXXX [update] msg#0 => ParallelEnergyStreamDetail { "paraEnergyStreamDetail": [ { "sysLoadPwr": 503.03240966796875, "sysGridPwr": 301.1585693359375, "bpPwr": -201.8738555908203, "timestamp": 1757961000, "bpSoc": 90, "devSn": "HJXXXXXX" }, { "sysLoadPwr": 506.3233947753906, "sysGridPwr": -3.4679183959960938, "bpPwr": -509.79132080078125, "timestamp": 1757961000, "bpSoc": 89 }, { "sysLoadPwr": 502.0224304199219, "sysGridPwr": 304.16064453125, "bpPwr": -197.86178588867188, "timestamp": 1757960940, "bpSoc": 91, "devSn": "HJXXXXXX" }, { "sysLoadPwr": 510.2342529296875, "sysGridPwr": -0.3312835693359375, "bpPwr": -510.5655517578125, "timestamp": 1757960940, "bpSoc": 90 }, { "sysLoadPwr": 547.7385864257812, "sysGridPwr": 352.0101623535156, "bpPwr": -195.72840881347656, "timestamp": 1757960880, "bpSoc": 91, "devSn": "HJXXXXXX" }, { "sysLoadPwr": 507.2791748046875, "sysGridPwr": 18.305538177490234, "bpPwr": -488.9736328125, "timestamp": 1757960880, "bpSoc": 90 }, { "sysLoadPwr": 510.12713623046875, "sysGridPwr": 310.16888427734375, "bpPwr": -199.95823669433594, "timestamp": 1757960820, "bpSoc": 91, "devSn": "HJXXXXXX" }, { "sysLoadPwr": 511.625732421875, "sysGridPwr": -1.3682823181152344, "bpPwr": -512.9940185546875, "timestamp": 1757960820, "bpSoc": 90 }, { "sysLoadPwr": 510.26312255859375, "sysGridPwr": 309.22314453125, "bpPwr": -201.0399932861328, "timestamp": 1757960760, "bpSoc": 91, "devSn": "HJXXXXXX" }, { "sysLoadPwr": 518.1139526367188, "sysGridPwr": 4.331111907958984, "bpPwr": -513.7828369140625, "timestamp": 1757960760, "bpSoc": 90 } ], "paraSysSeq": 42461 }
-
@bentschik
Danke.
Das hilft. Interessanterweise ist "BK...." gar nicht enthalten. Also nur Gesamtsystem und Ocean.Ich habe mal eine nächste Variante in git hochgeladen.
Bitte einmal ausprobieren. -
Ich habe nochmal über mppPwr "<20" nachgedacht. Mit Berücksichtigung der Erkenntnis, daß bei ParallelEnergyStreamReport die updates nicht darüber, sondern über ParallelEnergyStreamDetail kommen, müsste dies für JTS1_ENERGY_STREAM_RPORT auch so sein.
Habe also mal das EnergyStreamDetail implementiert.Ich habe mal die nächste 1.4.6 zum Testen in github hochgeladen.
ExpertMode -> custom -> https://github.com/foxthefox/ioBroker.ecoflow-mqtt/tree/1.4.6Bitte mal testen, ob jetzt die Power Werte besser kommen und speziell auch "<20" behoben ist.