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

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

Vorheriges Thema - Nächstes Thema

KölnSolar

Guten Morgen,
ich habe nun ein Austauschgerät Delta2 erhalten.

Wer etwas mehr zum Defekt wissen möchte kann hier nachlesen.

Weiß hier jemand, ob Firmwareversion 1.0.2.85 noch MQTT(Klartext, kein protobuf !) und die API(also das 98_Ecoflow) unterstützt ?

Grüße Markus
RPi3/2 buster/stretch-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)-zigbee2mqtt

KölnSolar

#91
So, die aktuellste Firmware für die Delta2 unterstützt immer noch MQTT u. die API in Klartext(vs. protobuf).

Nun versuche ich mich an set-Befehlen. Im Bsp. die Ladeleistung von 400W auf 350W. Ergebnis mit verbose=5
2025.10.16 12:34:24 5: Delta2_AC(Ecoflow 0.3.9.0): Ecoflow_Get(): Delta2_AC: $model = DELTA 2
2025.10.16 12:34:39 5: Delta2_AC(Ecoflow 0.3.9.0): Ecoflow_Set(): $key = version
2025.10.16 12:34:39 5: Delta2_AC(Ecoflow 0.3.9.0): Ecoflow_Set(): $key = moduleType
2025.10.16 12:34:39 5: Delta2_AC(Ecoflow 0.3.9.0): Ecoflow_Set(): $key = id
2025.10.16 12:34:39 5: Delta2_AC(Ecoflow 0.3.9.0): Ecoflow_Set(): $key = operateType
2025.10.16 12:34:39 5: Delta2_AC(Ecoflow 0.3.9.0): Ecoflow_Set(): $key = params.chgPauseFlag
2025.10.16 12:34:39 5: Delta2_AC(Ecoflow 0.3.9.0): Ecoflow_Set(): $str_value = data_mppt.chgPauseFlag
2025.10.16 12:34:39 5: Delta2_AC(Ecoflow 0.3.9.0): Ecoflow_Set(): $key = params.chgWatts
2025.10.16 12:34:39 5: Delta2_AC(Ecoflow 0.3.9.0): Ecoflow_Set(): $str_value = a[2]
2025.10.16 12:34:39 5: Delta2_AC(Ecoflow 0.3.9.0): Ecoflow_Request(): Method = PUT
2025.10.16 12:34:39 5: Delta2_AC(Ecoflow 0.3.9.0): Ecoflow_Request(): $nonce=469829 $timestamp=1760610879078
2025.10.16 12:34:39 5: Delta2_AC(Ecoflow 0.3.9.0): Ecoflow_Request(): $json = {"id": "123","moduleType": "5","operateType": "acChgCfg","sn": "R331FEMeine","version": "1.0", "params": {"chgPauseFlag": "0","chgWatts": "350"}}
2025.10.16 12:34:39 5: Delta2_AC(Ecoflow 0.3.9.0): Ecoflow_Request(): $url = /iot-open/sign/device/quota $query_str = id=123&moduleType=5&operateType=acChgCfg&params.chgPauseFlag=0&params.chgWatts=350&sn=R331FEMeine&version=1.0&accessKey=Meiner&nonce=469829&timestamp=1760610879078
2025.10.16 12:34:39 5: Delta2_AC(Ecoflow 0.3.9.0): Ecoflow_Request(): $sign = Meins
2025.10.16 12:34:39 5: Delta2_AC(Ecoflow 0.3.9.0): Ecoflow_Request(): $json = {"id": "123","moduleType": "5","operateType": "acChgCfg","sn": "R331FEMeine","version": "1.0", "params": {"chgPauseFlag": "0","chgWatts": "350"}}
2025.10.16 12:34:39 5: Delta2_AC(Ecoflow 0.3.9.0): Ecoflow_Response(): $url = https://api-e.ecoflow.com/iot-open/sign/device/quota
2025.10.16 12:34:39 5: Delta2_AC(Ecoflow 0.3.9.0): Ecoflow_Response(): $data = {"code":"0","message":"Success","eagleEyeTraceId":"ea1a2a350917606118792117423d0007","tid":""}

gemäß
Zitatsettings(chgPauseFlag: 0: AC charging in normal operation, 1: AC charging paused (not saved, restored by plugging))

           
{
    "id": 123456789,
    "version": "1.0",
    "sn": "R331ZEB4ZEAL0528",
    "moduleType": 5,
    "operateType": "acChgCfg",
    "params": {
        "chgWatts": 100,
        "chgPauseFlag": 0
    }
}

Obwohl ja mit "success" geantwortet, stelle ich fest, dass data_mppt.cfgChgWatts sich nicht verändert hat. Sieht jemand einen Fehler ?

Grüße
Markus

Edit: Versuche für gets scheitern mit 405=Method not allowed. dasselbe bekomme ich bei gets mit meinem Powerstream. Evtl. Probleme durch restriktiven Internetzugang konnte ich auch ausschließen. Die MQTT-Variante funktioniert problemlos.
RPi3/2 buster/stretch-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)-zigbee2mqtt

MasterRay

Da meine Delta3 nicht mehr "im Klartext" sondern via "Google Protocol Buffers" kommuniziert, muss(te) ich so einiges "reengineeren". Dabei habe ich festgestellt, dass durch die App meine WLAN-SSID sowie das Passwort ohne Verschlüsselung im Internet übertragen werden. Ecoflow dürfte keine Probleme haben, diese Daten zu lesen und zu speichern. Somit kann dann jeder sich vor's Haus stellen und in das private Netzwerk einloggen der die Adresse hat. Und die hat EF ja z.B. aus der Rechnung ...

Wer es nachvollziehen will muss (z.B. per mosquitto_sub) das MQTT-Topic "/app/<userid>/<serno>/thing/property/set_reply" (als hex) abonnieren und dann in der App die Schaltstelle "WLAN" anklicken. Die eingehenden Daten dann ausschneiden und z.B. online mit https://protobuf-decoder.netlify.app/ dekodieren. Da steht's dann einfach so drin.

Toll ...