Ron · @ron
13 followers · 78 posts · Server social.amichan.de

Geschafft: Die ist in mit mehr als nur einer eingebunden.
Da bei uns die Ecoflow den versorgt, war das Ziel, dass beim Sagen von "Fernseher an" (über das System)

1. bei der Ecoflow der AC-Ausgang eingeschaltet wird
2. Der Fernseher angeht.

Während letzteres in Verbindung mit einer trivial ist und schon seit Jahren funktioniert, war die Einbindung der Ecoflow alles andere als simpel. Insbesondere der Hersteller ist hier ein wenig mit Schuld, da er keine genormte Schnittstelle anbietet bzw. die vorhandene gerne einmal ändert und alles irgendwie improvisiert wirkt.

OK, während man zum Auslesen von Ladeleistung, Verbrauch und Ladezustand in FHEM nur ein -Device braucht, ist das gesteuerte Schalten wesentlich heftiger.

1.
defmod EcoFlowAPI HTTPMOD api.ecoflow.com/iot-service/op<Geräteseriennummer> -H 'Content-Type: application/json' -H 'appKey: <Applikation-Key>' -H 'secretKey: <Secret-Key>'

Applikation- und Secret-Key bekommt man beim Kundensupport von Ecoflow. Man muss nur seinen Benutzernamen von der App angeben und die Seriennummer der Ecoflow.
Der Rest sind ein paar Attribute zum hübsch machen:

attr EcoFlowAPI stateFormat <b>Status:</b> message | <b>Ladeleistung:</b> data_wattsInSum W | <b>Verbrauch:</b> data_wattsOutSum W | <b>Ladezustand:</b> data_soc %

Doch nun folgt das echt Schwierige (Danke an das FHEMForum!!!)

2.
Man benötigt ein Script, das für einen ein paar Dinge ermittelt (auf dem FHEM-Rechner ausführen):

wget -O ecoflow_get_mqtt_login.sh raw.githubusercontent.com/mmil

bash ecoflow_get_mqtt_login.sh

Das Script wirft einige wichtige Dinge aus:
Your MQTT client connection information is:
#
# Protocol: mqtts://
# Host: mqtt.ecoflow.com
# Port: 8883
# Username: app-vieleZeichen
# Password: ziemlich lang
#
# A few valid unique client IDs for your account different MQTT clients:
# ANDROID_6245EA8D-und noch viel mehr
# ANDROID_8A6ECEF3-und noch viel mehr
# ANDROID_D8F1490B-und noch viel mehr

Und etwas später noch eine Numerical User-ID

Alles, was das Script so ausgespuckt hat, sollte man schön für sich behalten und auf keinen Fall damit hausieren gehen. Denn es sind mit dem Account und dem Gerät verbundene persönliche Informationen.

3.
Nun wird ein MQTT2_Client definiert.

define ecoflow2mqtt MQTT2_CLIENT mqtt.ecoflow.com:8883

Das Wichtige sind nun einige Attribute:

attr ecoflow2mqtt autocreate complex

attr ecoflow2mqtt clientId ANDROID_6245EA8D-und noch viel mehr

attr ecoflow2mqtt subscriptions /app/device/property/<Seriennummer des Gerätes>

attr ecoflow2mqtt username app-vieleZeichen

Über den Set-Befehl in diesem Gerät wird das Passwort hinterlegt, welches das Script angezeigt hat.

4.
Wenn alles gut gelaufen ist, hat das System bereits ein neues MQTT2_DEVICE angelegt.

Wenn nicht:

define MQTT2_EcoFlow_RiverMAX MQTT2_DEVICE ANDROID_6245EA8D-und noch viel mehr

Der Rest sind Attribute und hübsch machen. Das liest man am besten hier nach: forum.fhem.de/index.php?topic= (auf der 3. Seite findet man die RAW-Definition, wo man sich die Attribute rausklauen kann.

5.
Der Rest ist beinahe Pillepalle. Ich habe einen Dummy-Schalter definiert, mit dem ich den 230V Ausgang an und ausschalten kann. Ein dazu passendes Notify nimmt die notwendig Logik auf. Beim Dummy war wichtig, ihn mit einem passenden AlexaName zu belegen, da das für die Routine bei Alexa benötigt wird.

Der Code im notify ist vergleichsweise simpel:

{if (ReadingsVal("EcoFlowDirekt","SeriennummerEcoFlow_params_inv.cfgAcEnabled",0)==0)
{fhem ("set EcoFlowDirekt 230V on");}
else{
fhem ("set EcoFlowDirekt 230V off");}}

6.
Im letzten Punkt definiere ich nur noch eine Routine in Alexa. Der einzige Trick ist, zwischen dem Einschalten der Ecoflow und des Fernsehers eine 10 sekündige Pause zu machen. Solange braucht mein Fernseher um sicher aus dem stromlosen Zustand in den Standby zu wechseln.
Eine zweite Routine übernimmt das Ausschalten: erst den Fernseher ausschalten und dann die Ecoflow.

Voila. Fertig. War doch leicht, oder?

Verdammt, es wird schon dunkel. Schade. Wochenende vorbei ☹

#ecoflow #fhem #statusanzeige #fernseher #alexa #echo #firetvbox #httpmod

Last updated 2 years ago