Modul für Ecoflow-Komponenten (über HTTP-REST)

Begonnen von Neolux, 17 Februar 2025, 13:10:08

Vorheriges Thema - Nächstes Thema

KölnSolar

Zitatnun, die URL, mit der man am MQTT-Server abonniert lautet ja 'mqtt.ecoflow.com'. Das sieht mir nicht "lokal" aus.
Du hast ja sows von recht.  :-[
RPi5/3/2 Trixie-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-ecovacs(mqtt2)-zigbee2mqtt

MasterRay

Zitat von: KölnSolar am 18 März 2026, 18:31:37
Zitatnun, die URL, mit der man am MQTT-Server abonniert lautet ja 'mqtt.ecoflow.com'. Das sieht mir nicht "lokal" aus.

Es gibt aber "Forschungen" in die "lokale" Richtung: local-powerstream

Und andere haben sich auch schon dran versucht (googeln). Mal was für trübe Winterstunden, also nicht jetzt  ;D

phantom

für Anwender von STREAM ULTRA & STREAM ACPRO habe ich 2 kleine Korrekturen zur Ansteuerung der Relais der Ausgänge:

- beim STREAM UP muss die Zeile für das 2. Relais so lauten:
    "cfgRelay3Onoff" => { "cmdId" => 17, "cmdFunc" => 254, "dirDest" => 1, "dirSrc" => 1, "needAck" => "true", "dest" => 2, "params.cfgRelay3Onoff" => "a[2]"},

- beim STREAM AC gibts auch 2 Relais, daher sollte die gleichen Sets und SetCmdCodes drin sein:
        "STREAM AC" => {
                "Adjustments" => {},
                "Gets" => {
                        "SolarGeneratedPower" => "",
                        "EnergyIndependence" => "",
                        "EnvironmentalImpact" => "",
                        "TotalSolarEnergySavings" => "",
                        "ElectricityConsumption" => "",
                        "Grid" => "",
                        "BatteryChargingDischargingPower" => ""
                },
                "Sets" => {
                        "cfgRelay2Onoff" => ":true,false",
                        "cfgRelay3Onoff" => ":true,false",
                        "cfgBackupReverseSoc"=> ":slider,3,1,95",
                        "cfgEnergyStrategyOperateMode.operateSelfPoweredOpen" => ":true",
                        "cfgEnergyStrategyOperateMode.operateIntelligentScheduleModeOpen" => ":true",
                        "cfgFeedGridMode" => ":1,2"
                },
                "GetCmdCodes" => {
                        "SolarGeneratedPower" =>                { "params.beginTime" => "a[1] a[2]" , "params.endTime" => "a[3] a[4]", "params.code" => "BK621-App-HOME-SOLAR-ENERGY-FLOW-solor-line-NOTDISTINGUISH-MASTER_DATA" },
                        "EnergyIndependence"  =>                { "params.beginTime" => "a[1] a[2]" , "params.endTime" => "a[3] a[4]", "params.code" => "BK621-App-HOME-INDEPENDENCE-PERCENT-FLOW-indep-progress_bar-NOTDISTINGUISH-MASTER_DATA" },
                        "EnvironmentalImpact" =>                { "params.beginTime" => "a[1] a[2]" , "params.endTime" => "a[3] a[4]", "params.code" => "BK621-App-HOME-CO2-WEIGHT-FLOW-impact-progress_arc-NOTDISTINGUISH-MASTER_DATA" },
                        "TotalSolarEnergySavings" =>            { "params.beginTime" => "a[1] a[2]" , "params.endTime" => "a[3] a[4]", "params.code" => "BK621-App-HOME-SAVING-CURRENCY-FLOW-earnings-progress_arc-NOTDISTINGUISH-MASTER_DATA" },
                        "ElectricityConsumption" =>             { "params.beginTime" => "a[1] a[2]" , "params.endTime" => "a[3] a[4]", "params.code" => "BK621-App-HOME-LOAD-ENERGY-FLOW-consumption-prop_arc-NOTDISTINGUISH-MASTER_DATA" },
                        "Grid" =>                               { "params.beginTime" => "a[1] a[2]" , "params.endTime" => "a[3] a[4]", "params.code" => "BK621-App-HOME-GRID-ENERGY-FLOW-grid_prop_bar-NOTDISTINGUISH-MASTER_DATA"},
                        "BatteryChargingDischargingPower" =>    { "params.beginTime" => "a[1] a[2]" , "params.endTime" => "a[3] a[4]", "params.code" => "BK621-App-HOME-SOC-ENERGY-FLOW-battery-prop_bar-NOTDISTINGUISH-MASTER_DATA"},
                },
                "SetCmdCodes" => {
                        "cfgRelay2Onoff" => { "cmdId" => 17, "cmdFunc" => 254, "dirDest" => 1, "dirSrc" => 1, "needAck" => "true", "dest" => 2, "params.cfgRelay2Onoff" => "a[2]"},
                        "cfgRelay3Onoff" => { "cmdId" => 17, "cmdFunc" => 254, "dirDest" => 1, "dirSrc" => 1, "needAck" => "true", "dest" => 2, "params.cfgRelay3Onoff" => "a[2]"},
                        "cfgBackupReverseSoc" => { "cmdId" => 17, "cmdFunc" => 254, "dirDest" => 1, "dirSrc" => 1, "dest" => 2, "needAck" => "true", "params.cfgBackupReverseSoc" => "a[2]" },
                        "cfgEnergyStrategyOperateMode.operateSelfPoweredOpen" => { "cmdId" => 17, "cmdFunc" => 254, "dirDest" => 1, "dirSrc" => 1, "dest" => 2, "needAck" => "true", "params.cfgEnergyStrategyOperateMode.operateSelfPoweredOpen" => "a[2]"},
                        "cfgEnergyStrategyOperateMode.operateIntelligentScheduleModeOpen" => { "cmdId" => 17, "cmdFunc" => 254, "dirDest" => 1, "dirSrc" => 1, "dest" => 2, "needAck" => "true", "params.cfgEnergyStrategyOperateMode.operateIntelligentScheduleModeOpen" => "a[2]"},
                        "cfgFeedGridMode" => { "cmdId" => 17, "cmdFunc" => 254, "dirDest" => 1, "dirSrc" => 1, "dest" => 2, "needAck" => "true", "params.cfgFeedGridMode" => "a[2]"}
                }
 

KölnSolar

da fehlte noch die abschließende Geschweifte.  ;)

Ich habe es eingebaut. Bitte testen.
RPi5/3/2 Trixie-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-ecovacs(mqtt2)-zigbee2mqtt

KölnSolar

Guten Morgen,
scheinbar gibt es seit kurz nach 6:00 Probleme bei ecoflow. Die domain ist per ping erreichbar, es werden aber keine Daten übertragen.

Die mqtt-domain mqtt-e.ecoflow.com lässt sich nicht anpingen und die Äpp liefert jüngere und "live"-Daten.

Nur bei mir so oder allgemeines ecoflow-Problem ?

Grüße Markus
RPi5/3/2 Trixie-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-ecovacs(mqtt2)-zigbee2mqtt

Damian

Zitat von: KölnSolar am 20 März 2026, 08:54:09Guten Morgen,
scheinbar gibt es seit kurz nach 6:00 Probleme bei ecoflow. Die domain ist per ping erreichbar, es werden aber keine Daten übertragen.

Die mqtt-domain mqtt-e.ecoflow.com lässt sich nicht anpingen und die Äpp liefert jüngere und "live"-Daten.

Nur bei mir so oder allgemeines ecoflow-Problem ?

Grüße Markus

Ich habe keine Probleme mit der Kommunikation über die App.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

rubberduck67

Seit 7:20Uhr kommen Daten aus der API , aber ich überwache das nicht. In der App auch früher

Gruß Sven

KölnSolar

Danke Euch. Ecoflow war schuldlos. Es lag an meiner zähen Migration zu Pi5 mit Trixie und machte allgemeinere DNS-Probleme.
Hat ja alles auch immer sein Gutes: da muss ich noch im Modul aktiv werden, falls die Server tatsächlich mal offline sind.
RPi5/3/2 Trixie-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-ecovacs(mqtt2)-zigbee2mqtt

phantom

@KölnSolar #168  Danke, das klappt soweit

Die Ecoflow ACpro liefern per HTTP als laufende Daten nur "gridConnectionPower": 93.54 und den Status der beiden Schuko Steckdosen, wenn sie im System mit einem Ultra laufen.
Ich nutze das Modul im Wesetlichen nur zum Schalten der Steckdosen, da dies zuverlässiger klappt als per MQTT.

Mir ist noch aufgefallen, daß die Ecoflow Cloud keine laufenden Daten mehr liefert, wenn ich über 3-4 Tage lang die Ecoflow-App nicht genutzt habe. Es geht erst weiter, wenn ich mal kurz die App anwerfe; dann kommen wieder alle Daten von allen Geräten. Ich habe noch nicht herausbekommen, wie man die per FHEM "triggern" könnte ???


KölnSolar

ZitatMir ist noch aufgefallen, daß die Ecoflow Cloud keine laufenden Daten mehr liefert, wenn ich über 3-4 Tage lang die Ecoflow-App nicht genutzt habe. Es geht erst weiter, wenn ich mal kurz die App anwerfe; dann kommen wieder alle Daten von allen Geräten.
Sicher ? Ein solches Verhalten kenne ich nur von der MQTT-Variante. Über das Modul(API) bekomme ich immer Daten für eine Delta2 u. einen Powerstream. Die Delta2 spreche ich bis dato 2mal am Tag über MQTT-set an. Ob das einen Unterschied macht ?
Zukünftig soll das bei mir über das Modul laufen. Da teste ich aber noch, da es hier nicht "regelmäßig" funktioniert. Suche noch nach Ursachen.
RPi5/3/2 Trixie-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-ecovacs(mqtt2)-zigbee2mqtt

phantom

ja korrekt, das "triggern" per App gilt nur für MQTT. 
per HTTP-Modul klappt das Polling bei mir alle 180 sec. problemlos

noch nicht probiert habe ich ein disconnect/connect des MQTT-Client, wenn es mal wieder hakt
wenn das klappen sollten, macht evtl. ein Timer dafür Sinn

ich warte mal ab, wann MQTT wieder aussetzt ...

MasterRay

Die App löst (bei mir: Delta3 und PowerStream) beim Start unter MQTT-Topic /app/[userid]/[serno1]/thing/property/get einen Request aus, der die Übermittlung aller Daten anfordert. Wenn man den zyklisch schickt, dann kommen dauerhaft Daten.

Damian

Ich habe nun den API-Key erstellt.

Beim Laden des Ecoflow-Moduls bekomme ich die Meldung:

Can't locate URL/Encode.pm in @INC (you may need to install the URL::Encode module) ...
Was muss ich da noch installieren?

git clone http://github.com/chansen/p5-url-encode

reicht offenbar nicht aus.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

KölnSolar

#178
Ich weiß es nicht mehr. Auf die Schnelle gegoogelt ist es für Debian wohl das package liburl-encode-perl.

Edit: Danke Masterray. Hat mit einer Delta2 funktioniert.
RPi5/3/2 Trixie-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-ecovacs(mqtt2)-zigbee2mqtt

Damian

#179
Zitat von: KölnSolar am 23 März 2026, 14:59:24Ich weiß es nicht mehr. Auf die Schnelle gegoogelt ist es für Debian wohl das package liburl-encode-perl.

Ich habe nun alles mögliche nachinstalliert, geht immer noch nicht. Es handelt sich um debian 12 unter proxmox.

Könnt ihr mir sagen, in welchem Verzeichnis sich bei euch Encode.pm im System befindet?

So sieht die Fehlermeldung komplett aus:

Can't locate URL/Encode.pm in @INC (you may need to install the URL::Encode module) (@INC contains: ./FHEM/lib ./lib . ./FHEM /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.36.0 /usr/local/share/perl/5.36.0 /usr/lib/x86_64-linux-gnu/perl5/5.36 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.36 /usr/share/perl/5.36 /usr/local/lib/site_perl) at ./FHEM/98_Ecoflow.pm line 16.
BEGIN failed--compilation aborted at ./FHEM/98_Ecoflow.pm line 16.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF