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

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

Vorheriges Thema - Nächstes Thema

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

#171
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

#172
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

KölnSolar

/usr/lib/aarch64-linux-gnu/perl5/5.40/URL/Encode/XS.pm
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

OK, ich habe jetzt ein URL-Verzeichnis mit Encode.pm angelegt. Jetzt lässt sich ein Device definieren.

Was muss ich bei Model für den STREAM AC Pro angeben?
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

dergolem

Hi,
für die STREAM AC Pro solltest du STREAM UP als Model angeben.
attr [name] userattr Model
attr [name] Model STREAM UP

Gruß Denis

Damian

Ich habe es erst mal über MQTT ans Laufen bekommen. Das Ausbleiben der Daten habe ich auch schon beobachtet, ggf. hilft ein Reconnect der Verbindung. Das muss ich aber erst mal beobachten. Eine kleine Visualisierung habe ich auf die Schnelle auch schon zusammengezimmert. 
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

KölnSolar

attr [name] userattr Model
attr [name] Model STREAM UP
das userattr dürfte es eigentlich nicht brauchen.

Zitatggf. hilft ein Reconnect der Verbindung
Nein, sondern
ZitatDie App löst (bei mir: Delta3 und PowerStream) beim Start unter MQTT-Topic
CodeAuswählen
/app/[userid]/[serno1]/thing/property/get
einen Request aus, der die Übermittlung aller Daten anfordert. Wenn man den zyklisch schickt, dann kommen dauerhaft Daten.
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

Ich habe hiernach https://www.juergenstechnikwelt.de/photovoltaik/offizielle-ecoflow-api-mittels-fhem-und-mqtt-nutzen das Mqtt eingerichtet.

Die Topics sehen ganz anders aus:

attr myMQTTClient subscriptions /open/open-e05CERTIFICATEACCOUNT/SERIENNUMMER/status /open/open-e05XXXXX/SERIENNUMMER/quota /open/open-e05CERTIFICATEACCOUNT/SERIENNUMMER/set
attr myMQTTClient username open-e05CERTIFICATEACCOUNT

Ein get hat bei mir keine Auswirkungen gehabt.

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

MasterRay

Zitat von: Damian am 25 März 2026, 07:39:31Die Topics sehen ganz anders aus:

Hallo,
die mit 'open' beginnenden Topics sind die der offiziellen Schnittstelle, die es ja nur für wenige Produkte gibt. Die mit 'app' beginnenden die, mit denen die App kommuniziert. Die App fragt beim Öffnen mit einem /app/[userid]/[serno1]/thing/property/get (zzgl. eines Payloads) die Auslieferung aller Daten an. Ich hatte mal angenommen, dass damit auch die offizielle Schnittstelle "in Schwung" kommt.

Ich werde das für den PowerStream mal versuchen nachzustellen.

Grüße und schönen (= ertragreichen) Tag