NEWS
ecoflow-connector-Script zur dynamischen Leistungsanpassung
-
Huhu,
Ich würde gerne "nur" die Leistung die der Powerstream von den Panelen bekommt in den History-Adapter bekommen.
Kann ich das Script dafür nutzen ohne dass irgendwelche Änderungen an meinem Powerstream vorgenommen werden? Leider steige ich beim javascript noch nicht so durch um es aus dem Script herauslesen zu können. -
@xfirf said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Huhu,
Ich würde gerne "nur" die Leistung die der Powerstream von den Panelen bekommt in den History-Adapter bekommen.
Kann ich das Script dafür nutzen ohne dass irgendwelche Änderungen an meinem Powerstream vorgenommen werden? Leider steige ich beim javascript noch nicht so durch um es aus dem Script herauslesen zu können.Ich hatte gerade einen vergleichbaren Gedanken, ich würde mich gerne erst langsam rantasten und vorerst den Powerstream nicht beeinflussen wollen (Wetter ist hier eh so bescheiden, dass nichts für den Akku da ist
Bevor ich anfange zu suchen, gibt es (ggf. bereits) eine einfache Möglichkeit es sozusagen im Demo Modus laufen zu lassen.
Also alles soll ablaufen (Daten von Ecoflow mqtt broker holen, verarbeiten in ioBroker, ... aber nicht den Powerstream steuern), alles was als Einstellung/set zum ecoflow mqtt broker gehen würde, würde auf einen lokalen mqtt broker umgeleitet oder anderweitig in iobroker protokolliert (dann könnte ich gewisse "Trockenübungen" machen)? -
Ich habe das Script nun zum Laufen bekommen und habe auch viele Werte unter "0_userdata/0/ecoflow" reinbekommen. Aber wenn ich dann nach z.B. data.item.meta.PV1_Power suche finde ich nichts. Bezieht sich die Variable auf den Speicher? Den habe ich noch nicht.
-
@xfirf sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Ich habe das Script nun zum Laufen bekommen und habe auch viele Werte unter "0_userdata/0/ecoflow" reinbekommen. Aber wenn ich dann nach z.B. data.item.meta.PV1_Power suche finde ich nichts. Bezieht sich die Variable auf den Speicher? Den habe ich noch nicht.
Jetzt habe ich die Werte. Aber sie sind um Faktor 10 zu hoch?
-
@xfirf bitte nicht dieses, sondern das neue script (0.6.7) oder größer nehmen. ja oft ist es Faktor 10
-
@waly_de
Ah. Danke. Dachte das script im ersten Post wäre immer das neuste. Ich teste es mal. -
@giovanne Gute idee ist noch nicht drin, mach ich aber rein.
bis dahin suche nach
CheckforReconnect(function () { SetBasePower(firstPsSn); });
und kommentiere SetBasePower aus
CheckforReconnect(function () { //SetBasePower(firstPsSn); });
dann wird nichts geschrieben nur gelesen
-
@xfirf ja, nur ist durch die updates ziemliche Hektik und Veränderungen noch keine zeit gewesen die version aktuell zu machen ... bin dran, dauert aber noch ... zumal ich die neuen Daten noch nicht völlig verstehe
-
@waly_de
Ich habe weiterhin das Problem, dass die Werte im Bereich InverterHeartbeat teilweise nur sehr selten aktualisiert werden. Das ist insofern problematisch, dass die Werte für SOC der Batterie und InverterOutputtWatts teilweise veraltet sind.Wenn ich das Skript richtig verstehe, erfolgt eine Prüfung wie alt die Werte sind. Eine saubere Regelung funktioniert in meinem Fall damit trotzdem noch nicht. Aktuell greife ich wieder auf die Werte InverterHeartbeat2.X_Unknown_12 und SOC direkt aus der Delta zurück.
-
@dreffi Bei mir passt das mit 0_userdata.0.ecoflow.app_device_property_R351ZEB4HF3GXXXX.data.params.bms_bmsStatus.soc
Der Wert für den Ladestand wird relativ schnell geändert.
-
@mattenausohz
R351Z... müsste die angeschlossene Batterie sein. Die aktualisiert sich bei mir auch sehr zuverlässig. Der Powersteam beginnt mit HW51... -
@dreffi Genau. Das ist da am Ende dasselbe wenn es um den Ladestand geht.
-
@waly_de said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@giovanne Gute idee ist noch nicht drin, mach ich aber rein.
bis dahin suche nach
CheckforReconnect(function () { SetBasePower(firstPsSn); });
und kommentiere SetBasePower aus
CheckforReconnect(function () { //SetBasePower(firstPsSn); });
dann wird nichts geschrieben nur gelesen
Super Danke. Damit kann ich schon mal spielen und die Daten kommen rein. RealPower ändert sich entsprechend meines tatsächlichen Zählerwertes
Wenn du bei Gelegenheit die schreibenden Befehle auf einen alternativen mqtt broker umlenken könntest wäre das top
-
Sorry, nächste Frage.
Ist es normal dass ich hier mehrere Einträge 0-2 habe?
Welcher ist denn der "richtige"? -
@waly_de Das habe ich auch gemacht. Super Idee. Allerdings wird nach dem Neustarten des Scripts oder nach einer gewissen Zeit trotzdem der Leistungsbedarf auf 0Watt gesetzt. Gibts noch eine Stelle wo man das entsprechend abschalten muss?
-
@xfirf sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
0Watt
hmm das wundert mich zwar, aber du kannst noch nach
function setAC(asn, Value) {
suchen und daraus
function setAC(asn, Value) { return
machen
-
@xfirf sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Ist es normal dass ich hier mehrere Einträge 0-2 habe?
ja, ein großes Mysterium auch für mich... keine Ahnung was die da senden und warum mehrfach... wenn du etwas auswerten willst, versuch mal die werte unter 0... Wenn du Erkenntnisse dazu gewinnst, teile sie bitte mit uns
-
@giovanne sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Wenn du bei Gelegenheit die schreibenden Befehle auf einen alternativen mqtt broker umlenken könntest wäre das top
wozu? Das hat auch vermutlich wenig Sinn, weil der Inhalt einen buffer, also binäre Daten enthält
-
Ich komme hier alleine nicht weiter.
Ich starre jetzt seit vielen Stunden auf die neuen Daten (InverterHeartbeat2) und kann damit nichts anfangen. Die Werte dort machen für mich keinen Sinn. X_Unknown_45 scheint beispielsweise zunächst eindeutig invOutputWatts zu entsprechen. Dann weicht der Wert plötzlich um 100 Watt, manchmal 1000 Watt, ab. Ich habe es mit verschiedenen Datentypen versucht, habe den Wert sogar bitweise zerlegt, jedoch ohne Erkenntnisse.Jetzt bin ich kein Experte, was Protobuf angeht. Vielleicht liegt es an der Definition der Daten, aber sehr wahrscheinlich ist das nicht der Fall. Im Moment kommen zwar noch Daten im alten InverterHeartbeat, aber wie lange noch? Und warum wurde überhaupt dieses neue Format eingeführt? Es könnte auch sein, dass dies dazu dient, uns auszusperren. Das könnte ich nicht nachvollziehen, denn es kann für Ecoflow ja nicht schädlich sein, wenn es funktionierende Anbindungen gibt. Ihre API, wenn man das so nennen darf, kann im Moment ja auch noch nichts.
Wenn ihr irgendwie durch die Daten durchblickt, lasst es mich wissen.
Es wäre toll, eine Möglichkeit zu haben, gezielt Daten abzufragen. Vielleicht geht das ja schon, denn oft bekommt die App viel mehr Updates als ich über MQTT. Wenn das so ist, passiert das aber im Hintergrund. Ich weiß, dass einige Leute die Daten der App im Netz abgefangen und ausgewertet haben. Habt ihr dazu eine Idee?
Ehrlich gesagt, wenn das so weitergeht und wir bei jedem Update zittern müssen, ob unsere Anbindung noch funktioniert, dann hat es wenig Sinn, da weiter Arbeit reinzustecken. Die letzten Tage waren sehr anstrengend. Unterstützung wäre super.
-
Off topic: Ich hatte meinen Text oben an ChatGPT zur Rechtschreibkorrektur gesendet. Das hat die KI so bewegt, dass sie mir Ihre Meinung dazu mitgeteilt hat. Diese möchte ich Euch nicht vorenthalten:
ChatGPT:
Ich kann Ihre Frustration absolut nachvollziehen, besonders wenn die Daten nicht so sind, wie erwartet oder nicht klar ist, wie sie interpretiert werden sollen. Das "X_Unknown_45" Feld und seine wechselnden Werte sind in der Tat rätselhaft. Wie Sie bereits erwähnt haben, könnten sie vielleicht durch die Protobuf-Datendefinition beeinflusst sein.Was das neue Datenformat angeht, könnte es eine Reihe von Gründen dafür geben, einschließlich der Verbesserung der Datenstruktur, des Datenschutzes oder der Effizienz. Ohne genaue Kenntnisse über die Absichten des Unternehmens ist es jedoch schwierig, definitiv zu sagen, warum sie dieses neue Format eingeführt haben.
Die Idee, Daten abzufangen und auszuwerten, könnte funktionieren, sofern es legal und ethisch korrekt ist. Sie könnten eine Netzwerkprotokollanalyse durchführen, um den Datenverkehr zwischen der App und dem Server zu untersuchen. Tools wie Wireshark oder ähnliche könnten dabei hilfreich sein.
Was die Abfrage spezifischer Daten angeht, könnte dies möglich sein, wenn es eine zugängliche API gibt, oder wenn Sie in der Lage sind, die Anfragen zu reverse-engineeren, die die App an den Server sendet.
Letztendlich, ich verstehe Ihre Bedenken, ob es sich lohnt, weiter in dieses Projekt zu investieren, wenn es ständig Updates gibt, die Ihre Anbindung beeinträchtigen könnten. Manchmal kann es sich lohnen, einen Schritt zurückzutreten und das Gesamtbild zu betrachten. Möglicherweise gibt es einen effizienteren Ansatz oder eine alternative Lösung, die Sie noch nicht in Betracht gezogen haben.
Ich würde empfehlen, dass Sie sich an die Community wenden und sehen, ob es andere gibt, die ähnliche Probleme haben oder die möglicherweise bereits eine Lösung gefunden haben.
Ich hoffe, dass Ihnen das ein wenig weiterhilft. Es ist ein komplexes Problem, und ich wünsche Ihnen viel Glück bei der Lösung.