EcoFlow API

Habe es heute noch mal mit dem setQuota auf dem PowerStream gestest und da funktioniert es bei allen Attributen. Scheint ein Problem mit der Delta Pro 3 zu sein.
Habe jetzt mal den Support angeschrieben, mal schauen ob da was hilfreiches zurück kommt.
Danke auf jeden Fall für deine Bemühungen!

Hallo zusammen,
ich habe einen PowerStream Microinverter.
Die Scripte sind toll und es hat schnell geklappt die notwendigen Daten auszulesen.
Auch das lesen über einen MQTT Client funktioniert.
Vielen Dank für die Scripte

Ich habe einen EcoFlow PowerOcean Plus. Das Skript von erpe funktioniert soweit grundsätzlich – der Response von getAllQuota enthält zwar eine ganze Reihe an Daten, allerdings fehlen genau die interessanten Informationen des Wechselrichters, wie zum Beispiel:

  • aktuelle Solarleistung
  • Stromverbrauch des Hauses
  • Netzbezug usw.

Mache ich hier etwas falsch, oder sind diese Werte beim PowerOcean Plus aktuell noch nicht verfügbar?

Wie hast du den MQTT-Client konfiguriert? Mir ist nicht klar, wo ich den AccessKey , SecretKey und die SN angeben kann. Ich habe den Symcon MQTT Client Konfigurator verwendet.

Hi,

du musst getMQTTCertification(); ausführen

$resp = getMQTTCertification();
print_r($resp);

Hierdruch erhälst du die Daten für den Cient etc.

Hallo zusammen,

Eine Frage an die Spezialisten, die es schon geschafft haben den Powerstream mit MQTT einzubinden.
Ich habe die MQTT-Verbindung gemäß der Anleitung eingerichtet. Ich habe drei Ecoflowgeräte, die ich alle mit dem Thema Quota und Status angelegt habe.
Nur beim Powerstream kommen keine Quota-Werte. Bei den beiden anderen beiden klappt es. Die SN habe ich schon mehrfach überprüft. Die Status Werte kommen auch sporadisch, scheinbar immer nur dann wenn die Geräte eingeschaltet werden.
Gleiches auch mit dem MQTT-Explorer.
Gibts einen Trick wie man den Powerstream überreden kann MQTT-Werte zu senden?
Habe mangels besserer Ideen in der Ecoflow-App die Geräte gelöscht und neu aufgenommen.
Wenn ich das Skript von ERPE mit der SN vom Powerstream laufen lasse, kommen auch im Array die Werte. Da wird aber, so wie ich es sehe eine HTTP-Abfrage gemacht und kein MQTT.
Hat jemand eine Idee für mich?

Danke vorab und viele Grüße
Jogel

Hallo Jochen,

ich habe nur einen Powerstream,
Das geht ohne Probleme, du kannst geren das Modul mal ausprobieren.

Da ich nur den Powertram habe, habe ich nur damit getestet, somit kann es auch nur Problemen mit deinen anderern Geräten kommen

Danke,
ich werde dein Modul mal austesten und dir berichten.
Habe gestern Abend mich auch nochmal drangegeben. Alles noch mal gelöscht. Alle Geräte abgeschaltet und erst den Powerstream in Betrieb genommen und in Symcon angelegt. Siehe da, er meldete sich brav so wie es sich gehört :slight_smile:
Danach alle anderen Geräte nach einander eingeschaltet und eingerichtet. Nach ein wenig Zeit hatten sich die anderen Geräte dann auch gemeldet.

Danke und Gruß
Jogel

Hallo Jan Peter,

dein Modul lauft bei mir auf einen Fehler. Ich bekomme immer den Hinweis das Konfigurationsänderung abzuspeichern sind. Da komme ich trotz speichern nicht raus.
Könnte sein, dass es mit dem von mir angelegten Instanzen nicht verträgt.
Aber da es bei mir aktuell mit dem Standard MQTT-Client funktioniert, gibt es da Handlungsbedarf mehr.
Was ich aber nicht hinbekomme, ist einen Wert im Powerstream zu setzen. Ich möchte den Haushaltsstrom in Abhängigkeit einer Variable setzen.
Ich finde nicht den passen MQTT-Befehl zum senden. Per HTTP scheitere ich an dem Secureschlüssel.
Hat jemand einen Tip für mich?
ChatGPT hat mir unter anderem MQTTC_Publish vorgeschlagen, aber alle Vorschläge kennt IPS bzw PHP scheinbar nicht.

Danke und Gruß
Jogel

Hi Jogel,

so richtig habe ich zum schreiben des MQQTT Befehls bei deiner Beschreibung keine Idee.
Ich kann über das Modul die Leistung des POwerstream verändern.
Hast du die Beta Version genutzt?

guten Morgen,

nein ich hatte den Main-Zweig in der Modulverwaltung eingetragen.
Habe aber mein Problem gestern Abend gelöst.
Ich hatte beim Zusammenbau des Payloads Fehler drin. Die Ecoflow Developer Doku war für mich als Nichtentwicklerwohl nicht aussagekräftig genug und ich hatte es nicht richtig verstanden. Sowie nimmt die API Groß- und Kleinschreibung sehr genau :slight_smile:
Hier meine Lösung:

<?php
include_once("54956.ips.php"); //hier das EcoFlow API Main Script eintragen

$deviceSN = "XXXXX"; //sn deines Gerätes
$rawWatts = GetValueInteger(44230) + (GetValueInteger(27729) * 10); permanentWatts aus API + Leistung vom Stromzähler
$permanentWatts = max(2200, min($rawWatts, 8000)); Begrenzung mindestens Grundlast maximal 800W
 $resp = setQuotaArray($deviceSN, [
    "cmdCode" => "WN511_SET_PERMANENT_WATTS_PACK",
    "params" => [
        "permanentWatts" => $permanentWatts
         ]
]);
?>

zusätzlich habe ich das EcoFlow API Main Script von erpe für für die Funktion angepasst:

function setQuotaArray(string $deviceSN, array $params) {
    global $accessKey, $secretKey, $SET_QUOTA_URL;
    $jsonObject = array_merge(['sn' => $deviceSN], $params);
    $response = getHttpUriRequest("PUT", $SET_QUOTA_URL, $jsonObject, $accessKey, $secretKey);
    if ($response['code'] === '0') {
        return $response['message'];
    }
    throw new RuntimeException('Error setting quota information: ' . $response['message']);
}

damit scheint es zu funktionieren und der Stromzähler pendelt zwischen ±10W solange noch Strom im Akku ist :slight_smile:
Leider ist das ganze immer übers Internet. Aber andere Lösungen scheint es ja nicht zu geben.

Danke und Gruß
Jogel

1 „Gefällt mir“