Ecoflow Powerstation Daten in Systemvariablen

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

Benutzeravatar
ccu-user-42
Beiträge: 6
Registriert: 29.08.2022, 14:09
System: CCU
Hat sich bedankt: 1 Mal

Re: Ecoflow Powerstation Daten in Systemvariablen

Beitrag von ccu-user-42 » 26.03.2024, 17:14

Hallo - EcoFlow hat eine neue API, die scheinbar alle Devices (Powerstation, PowerStream Micro-inverter, etc.) auch steuern kann!
https://developer-eu.ecoflow.com/us/doc ... eneralInfo
Da wäre für meine Automation fast der Traum....

Dummerweise hat sich die Signatur und Verschlüsselung (ok - fair - ist sicherer ..) geändert auf HMAC-SHA256(<AufRufDaten>, secretKey).
Ich habe aber leider keine Ahnung, wie man das der CCU beibringen kann....
Hat jemand da eine Idee?

Danke.

Benutzeravatar
lolli
Beiträge: 62
Registriert: 28.10.2014, 10:54
Danksagung erhalten: 7 Mal

Re: Ecoflow Powerstation Daten in Systemvariablen

Beitrag von lolli » 30.03.2024, 12:21

Hi "marvin" :wink: ,

die API habe ich - leider noch keine Muse um mich damit auseinander zu setzen :oops:
Ich finde es interessant was über die APP schon machbar ist..... eine vernünftige Anbindung an die HM wäre super.
Geilerer wäre es wenn die Geräte direkt in der CCU wie HM-Geräte eingebunden werden könnten ( das kann ich nicht - bin ja Anfänger).

Kommt Zeit, kommt Rat - eventuell auch Muse :mrgreen:

Gruß
Lolli

Pierre83
Beiträge: 2
Registriert: 13.05.2024, 17:12
System: CCU

Re: Ecoflow Powerstation Daten in Systemvariablen

Beitrag von Pierre83 » 13.05.2024, 17:16

Hallo Lolli,

was genau für Zugangsdaten muss man da vom Support erfragen?

Gruß Pierre
Zuletzt geändert von Roland M. am 13.05.2024, 17:37, insgesamt 1-mal geändert.
Grund: Doppelpost gelöscht

Benutzeravatar
lolli
Beiträge: 62
Registriert: 28.10.2014, 10:54
Danksagung erhalten: 7 Mal

Re: Ecoflow Powerstation Daten in Systemvariablen

Beitrag von lolli » 19.05.2024, 11:03

Hi Pierre,

eine Email mit der Seriennummer von deiner Powerstation an ecoflow.
Da nach dem Secretkey und dem Appkey fragen.

Gruß
lolli

Hat Jemand schon die neue API ausprobiert? Ich hatte bis jetzt noch keine Muse ;)

Pierre83
Beiträge: 2
Registriert: 13.05.2024, 17:12
System: CCU

Re: Ecoflow Powerstation Daten in Systemvariablen

Beitrag von Pierre83 » 04.06.2024, 09:03

Hallo Lolli,

vielen Dank.

Die Keys habe ich jetzt von Ecoflow erhalten, aber leider werden bei mir keine Daten in die Systemvariablen geschrieben.
Habe alles nach Anleitung erstellt.

Gruß Pierre

Optimist
Beiträge: 11
Registriert: 11.01.2016, 19:36

Re: Ecoflow Powerstation Daten in Systemvariablen

Beitrag von Optimist » 06.06.2024, 22:56

Hallo zusammen,

per Javascript konnte ich mittlerweile die Api von Ecoflow erfolgreich anbinden. Das ist aber eher für eine interne Infoseite, die ich Ad-Hoc mit dem Smartphone aufrufe.

Nun möchte ich per Skript die Grundlast setzen. Um die Api generell zu testen, frage ich hier einfach nur die Quota der Powerstream ab. Das ist mein bisheriger Code:

Code: Alles auswählen

string stdout;
string stderr;
string payload;

string snPowerStream = "HWxxx";
string accessKey = "yyy";
string secretKey ="zzz";
string nonce = "123456";
string timestamp = system.Date("%F %X").ToTime().ToInteger();
string payload = "sn=" # snPowerStream # "\&accessKey=" # accessKey # "\&nonce=" # nonce # "\timestamp=" # timestamp;
#Schreibe Daten in Textdatei, um diese an OpenSSL zu uebergeben
system.Exec("tclsh /usr/local/etc/config/addons/www/ecoflow/writefile.tcl " +payload ,&stdout, &stderr);
system.Exec('openssl dgst -sha256 -hmac '#secretKey#' /usr/local/etc/config/addons/www/ecoflow/sha256.txt -r',&stdout, &stderr);

string sign=stdout.Replace("HMAC-SHA2-256(/usr/local/etc/config/addons/www/ecoflow/sha256.txt)= ", "");

string headerAccessKey = "accessKey:"#accessKey;
string headerNonce = "nonce:"#nonce;
string headerTimestamp= "timestamp:"#timestamp;
string headerSign="sign:"#sign;

stdout="";
stderr="";
system.Exec("wget -d -q -O - 'https://api-e.ecoflow.com/iot-open/sign/device/quota/all?sn="#snPowerStream#"' --header "#headerAccessKey#" --header "#headerNonce#" --header "#headerTimestamp#" --header "#headerSign#"", &stdout, &stderr);

WriteLine(stdout);
WriteLine(stderr);
WriteLine("Ende");
Ich glaube, dass ich schon nah dran bin, aber ich bekomme die Response "incorrect sign". Hat jemand vielleicht eine Idee?

Alternativ würde ich das mit Python angehen. Spricht etwas dagegen auf dem Raspberrymatic Python zu installieren?

Viele Grüße
derOptimist

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“