NEWS
ecoflow-connector-Script zur dynamischen Leistungsanpassung
-
-
Hallo, ich komme eigentlich aus der Home Assistant Ecke und habe zur Steuerung des Powerstream meinen ersten Kontakt mit iobroker.
Ich habe dazu:
- auf einem Synology NAS einen Docker Container mit iobroker aufgesetzt
- eine Verlinkung zu Home Assistant hergestellt (Entitäten werden erfolgreich an iobroker übergeben)
- den Adapter Javascript installiert
- das Skript (v 0.5.2) von dieser Seite reinkopiert und mit meinen Daten gefüttert
- protobuff und mqtt-client nachinstalliert
Aktueller Stand:
Es wird anscheinend erfolgreich eine Verbindung zur Ecoflow Cloud aufgebaut. Ich sehe wie das Objekt 0_userdata/0/ecoflow/app_device_property_HW5.../RealPower ständig aktualisiert wird. Der Wert entspricht anscheinend meinem aktuellen Bezug aus Home Assistant zzgl. dem Wert 'Leistungsbedarf am AC Ausgang' des Powerstream. Wenn ich per App die Einspeiseleistung anpasse, wird das anscheinend berücksichtigt.Leider wird kein neuer Wert an die Cloud gesendet um die Einspeiseleistung zu setzen.
Wo kann ich ansetzen um dem Problem auf die Spur zu kommen? Soll ich dazu einen Log hier reinkopieren? Mit oder ohne Debug?Ich habe noch ein weiteres Objekt namens TotalPV, das sich ändert. Was repräsentiert dieser Wert?
Darüber hinaus wurden in .../ecoflow/ noch zwei Ordner app_166... angelegt. Ich vermute das sind mitgeschnittene eingegangene Befehle, die von clients an die Cloud gesendet wurden. Richtig?Ich würde mich über Hilfe freuen. Ich kenne mich mit iobroker nicht aus und komme gar nicht weiter.
Gruß, Dreffi
-
@dreffi Das klingt doch schon alles toll Willkommen im IO-Broker Universum! Ich muss mir irgendwann auch dringend mal den Home Assistant ansehen…
Ich kenne die Docker- Installation nicht… ist der History-Adapter schon drin? Der ist eigentlich obligatorisch und wird hier Gebraucht. -
@waly_de
sofern der nicht standardmäßig mit installiert wird, nein. Ich habe das jetzt nachinstalliert.Ganz großes Kino! Es funktioniert
Ich habe dennoch Fragen:
- Was bedeutet der vom Skript angelegte Wert "TotalPV"? Dieser wird immer größer.
- Wie oft sendet das Skript den aktuellen Wert, bei jeder Änderung des als Bezug hinterlegten Objektes?
- Kommt das Skript mit negativen Werten für den Sensor den Strombezug klar?
Sorry, wie gesagt: ich bin totaler noob in Sachen iobroker. Home Assistant kommt von Haus aus glaube ich deutlich umfangreicher daher.
-
@dreffi sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Ich habe dennoch Fragen:
Was bedeutet der vom Skript angelegte Wert "TotalPV"? Dieser wird immer größer.
Das ist einfach die Summe der Leistung aller PV-Module. Ich hab z.B. 2 Powerstream mit insgesamt 4 Modulen.
Wie oft sendet das Skript den aktuellen Wert, bei jeder Änderung des als Bezug hinterlegten Objektes?
Nein, alle 30 Sekunden wird geprüft und angepasst.
Wichtig dabei ist auch der Punkt :
MinValueMin: 3, //Der Zeitraum in Minuten, aus dem der letzte Gesamtverbrauchs-Minimalwert geholt werden sollKommt das Skript mit negativen Werten für den Sensor den Strombezug klar?
Klar!
-
Ok, der Wert TotalPV scheint bei mir dann nicht zustimmen. Dieser ist wird z.B. mit 1000 angezeigt, wobei die Leistung derzeit im Bereich von 370W liegt (nur ein Powerstream).
Egal, das ist erstmal für mich persönlich nicht wichtig.
Ich lasse das erstmal ein paar Stunden laufen, beobachte und werde dann sicher noch mal Fragen haben.Dickes Dankeschön bis hier für das Teilen des Skriptes!
-
@waly_de
WOW es funktioniert.
Super Leistung danke.Ich werde jetzt das überschussladen mal 1 - 2 Wochen testen und die Regelung noch anpassen. Das kann ich dir dann gern zukommen lassen.
-
@dreffi sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Ok, der Wert TotalPV scheint bei mir dann nicht zustimmen. Dieser ist wird z.B. mit 1000 angezeigt, wobei die Leistung derzeit im Bereich von 370W liegt (nur ein Powerstream).
Der Faktor ist 10.
1000 würde also 100W entsprechen. Bei 370W sollte also 3700 angezeigt werden.hmm... kannst du bitte mal sehen, was in dem Wert steht:
0_userdata.0.ecoflow.app_device_property_XXXXXXXXXXXXXXXXXXXXXX.data.item.meta.sumPVIst das der gleiche Wert den dir TotalPV ausgibt?
-
@waly_de
Dort steht das gleiche wie unter TotalPV. Das scheint jetzt auch soweit ungefähr zu passen mit dem Faktor 10. Vorhin schwankte die Solarleistung hier sehr stark durch Wolken. Da habe ich wohl unterschiedliche Werte in ioBroker und der App verglichen.
Alles gut.Ich bin immer noch begeistert wie gut das Skript läuft.
ungefähr seit 12 läuft das Skript. Es gab mittags ein paar Probleme mit meinem Bezugssensor (Tibber pulse), aber seitdem sieht das echt gut aus, obwohl das Script neben meinem Verbrauch auch die Einspeisung des normalen Balkonkraftwerks mit wegregeln muss. Hut ab!
-
@dreffi Super. Ist immer toll zu sehen, dass mein Zeug auch woanders funktioniert
Tibber pulse: Da hab ich auch drüber nachgedacht. Kannst Du den direkt abfragen und in Dein Home Assistant einbinden, oder geht das immer nur über die Cloud (API)?
Meinen Tasmota-Sensor würde ich nur ungern gegen eine trägere Cloudlösung tauschen. -
@waly_de
Den Pulse greife ich über die API ab. Dafür gibt es direkt eine Integration in Home Assistant.Die Zuverlässigkeit der API ist nicht perfekt. Da gibt es hier und da regelmäßig mal Aussetzer. Die Integration hängt sich auch gerne mal auf. Ich überwache den Sensor bereits in Home Assistant und starte die Integration neu sobald der Wert sich für fünf Minuten nicht ändert. Wenn die API spinnt hilft das aber auch nicht.
Es gibt auch eine Dokumentation auf GitHub um die Bridge des Pulse zu manipulieren und die Daten zumindest dort lokal abzufragen.Vorher hatte ich einen Weidmann Lesekopf am Zähler und direkt per USB mit dem Host von Home Assistant verbunden. Absolut zuverlässig. Leider muss ich den Pulse nutzen um den stündlichen Tarif von Tibber nutzen zu können.
Es gäbe Möglichkeiten die Signale des Zählers auf einen weiteren Sendekopf zu spiegeln, aber so kontrolliere ich auch gleich ob alles korrekt auf den Servern von Tibber angekommen ist.
-
@dreffi das hab ich befürchtet
Es gäbe Möglichkeiten die Signale des Zählers auf einen weiteren Sendekopf zu spiegeln
Hast Du da vielleicht nähere Infos für mich?
-
@waly_de
Klar: https://www.photovoltaikforum.com/thread/202377-tibber-doppelter-lesekopf-pulse/Mir ist heute Nachmittag mindestens 2x irgendwas hängen geblieben. Ich weiß noch nicht wo die Ursache lag, aber es wurden dann keine Werte am Powerstream mehr aktualisiert. Ich werde das beobachten. Nach Neustart des Scripts läuft es Moment sofort wieder.
-
@dreffi Perfekt, danke
Wie lange waren denn die Hänger? Und gab es dazu Log-Ausgaben?
Es ist so, dass der MQTT aufhört Daten zu senden, wenn Du parallel mit der App arbeitest, und diese dann schließt. Das Script überwacht aber, ob Daten kommen und verbindet sich selbst nach einer gewissen Zeit neu. (Am Tag nach einer Minute, ab einer Stunde nach Sonnenuntergang nach 15 Minuten) -
@waly_de
Ich kann das noch nicht genau sagen. Ab ca. 16:00 hat sich die Einspeiseleistung des Powerstream nicht mehr geändert und der Netzbezug ging damit teilweise ins Negative (Einspeisung). Gegen 17:30 habe ich das bemerkt und das Skript neu gestartet.
(Sorry, der erste Pfeil muss etwas weiter nach rechts auf kurz vor 16:00)Abends schien es dann andauernd auszusetzen. Es kann aber auch sein, dass da andere Probleme mit reingespielt haben. Es gab gestern reichlich Updates bei ecoflow. Vielleicht war der MQTT Server schlicht überlastet, weil alle an den Geräten rumgespielt haben.
Im PV-Forum gibt es reichlich Beschwerden zu Problemen mit der Cloud bzw. dem Powerstream seit den Updates gestern.Zur Klarstellung: das Skript läuft weiter und die Objekte in ioBroker werden auch aktualisiert. Es scheint irgendwann nur nicht mehr vom Powerstream übernommen zu werden.
Welches Objekt (state) in ioBroker entspricht dem Wert "Leistungsbedarf am AC-Ausgang"? Ich würde beobachten wollen ob dieses dann aktualisiert wird und zur tatsächlichen Einspeiseleistung passt.Das mit der App ist ein guter Tipp. Ich werde diese schließen, das Skript 1x neu starten und dann einige Stunden die Finger von der App lassen.
Update:
es hängt wieder. Aktuell sieht es so aus:
Das Skript läuft und der Wert RealPower wird auch fleißig aktualisiert. Die Daten des Powerstream scheinen aber weder aktualisiert zu werden, noch überhaupt zu stimmen.
Beispiele:
totalPV steht unverändert auf 5762,88. Das kann nicht sein. Der Wert müsste um die 1000 liegen.
PV1_Power steht auf 3 und PV2_Power steht auf 6000.
PlugPower steht auf 36. Ist das der Wert für die Smart Plugs? Ich habe keine.Ich vermute aktuell es liegt an der WLAN Verbindung des Powerstream.
Jepp, ich habe den Powerstream wieder auf den richtigen Repeater gezwungen und die Werte werden aktualisiert. Der Powerstream hat auch gleich wieder mit der Einspeisung begonnen. Das Problem liegt also vermutlich in meinem Netzwerk. -
@dreffi Ja das ist trügerisch. Ohne WLAN geht da natürlich nichts. In der APP muss man dann aufpassen, das nicht grade eine Bluetooth Verbindung angezeigt wird, sonst merkt man das nicht.
Zu dem State kann ich Dir nur dringend empfehlen die Letzte(Beta) version vom Script zu verwenden. Denn die States haben sich, nachdem die Originaldefinitionen von ecoflow eingebaut wurden alle geändert. Aktuell steht der Wert in:
0_userdata.0.ecoflow.app_device_property_XXXXXXXXXXXXXXXX.data.InverterHeartbeat.permanentWatts -
@waly_de
Sorry für die doofe Frage, aber wie tausche ich das Skript am besten aus?
Ich habe das alte gestoppt, ein neues angelegt und die Nutzereingaben mit den alten überschrieben. Beim Start des Skripts erhalte ich dann massig rote Fehlereinträge im Log.
Ich habe daher erstmal eine Sicherung geladen. -
@dreffi war schon richtig so....
In den Einstellungen des neuen Scripts gibt es neue Punkte die nicht fehlen dürfen... also nicht einfach die alten komplett rein kopieren.
...sonst brauch ich mal ein paar der Fehlermeldungen
-
@waly_de
Fehlermeldungen nach Start des Scripts in Version 0.6.2:
-
Ich habe hier noch eine kleine unschönheit entdeckt.
State value to set for "0_userdata.0.ecoflow.app_1668913565281660930_XXXXXXXXXXXXXXXX_thing_property_set.writeables.acChgCfg_D2" has to be type "string" but received type "number"Das scirpt funktioniert sonst soweit taelos für mich, danke.