Intégration externe - EcoFlow

:battery: Nouvelle intégration : EcoFlow (River 2 / River 2 Max / River 2 Pro)

Note : le bloc en bas à gauche est une prise connectée devant le EcoFlow, que j’utilisais avant l’intégration.

Une intégration externe pour surveiller et piloter vos stations EcoFlow de la gamme River 2 directement depuis Gladys, via le cloud EcoFlow (le même que celui utilisé par l’app officielle).

Ce qu’elle fait

Pour chaque appareil détecté, vous obtenez :

  • Niveau de batterie (%)
  • Puissance de charge AC, puissance de sortie totale, puissance de sortie AC, puissance solaire entrante
  • Interrupteurs : sortie AC, X-Boost, sortie DC (allume-cigare), réserve de secours
  • Une action « Tester la connexion » pour vérifier qu’un appareil répond

Deux façons de se connecter

  1. Compte développeur EcoFlow (Open Platform) — la voie officielle et documentée, avec découverte automatique de tous les appareils du compte. Inconvénient : il faut créer un compte développeur et attendre l’approbation d’EcoFlow (~1 semaine), et certains appareils déjà liés à l’app mobile peuvent être refusés côté EcoFlow (« déjà assigné ») — une limitation connue et récurrente de leur plateforme, indépendante de l’intégration.
  2. Connexion simple (email/mot de passe) — les mêmes identifiants que l’app EcoFlow, sans compte développeur ni attente. Non officielle (points d’accès internes de l’app), donc pas de découverte automatique : le numéro de série de chaque appareil se saisit à la main. C’est la méthode qui débloque les appareils refusés par la voie développeur — testée et fonctionnelle sur un River 2 Pro réel (ce que j’utilise).

Les deux méthodes peuvent tourner en même temps.

Limites connues

  • Aucun contrôle local/LAN : même un appareil qui ne quitte jamais votre WiFi passe par le cloud EcoFlow, comme l’app officielle — confirmé par EcoFlow eux-mêmes (seule exception dans tout leur catalogue : l’EZ1, un minuteur d’arrosage sans rapport).
  • Pas encore de réglage des limites de charge/décharge ni du niveau de réserve de secours en pourcentage (en lecture seule pour l’instant).
  • La méthode simple (2) est basée sur des points d’accès non documentés par EcoFlow : elle peut casser sans préavis si EcoFlow change son app.

Installation

Mode développeur dans Gladys → coller le lien GitHub - LM1LC3N7/gladys-ecoflow · GitHub

:locked: Sécurité, maintien et réutilisation

  • Communication en HTTPS/MQTT signé uniquement — aucun accès local ni port ouvert sur l’appareil
  • Conteneur non-root, système de fichiers en lecture seule, npm install sans exécution de script (--ignore-scripts)
  • Identifiants stockés chiffrés par Gladys, jamais transmis ailleurs qu’à EcoFlow
  • CI (lint, tests, build) sur chaque changement + mises à jour de dépendances automatiques (Dependabot), publication d’image à chaque évolution
  • Signature de requêtes et protocole MQTT recoupés avec deux implémentations déjà utilisées par la communauté (tolwi/hassio-ecoflow-cloud, rustyy/ecoflow-api), validation via les schémas réels de @ecoflow-api/schemas

Salut @lmilcent :slight_smile:

Au top cette intégration !

Petite remarque, il manque une miniature à cette intégration :

Demande à ton Claude d’en ajouter une :wink:

Merci j’ai totalement oublié !

Intégration EcoFlow pour Gladys – version 0.3.0

Présentation

Nouvelle version de l’intégration EcoFlow pour les stations River 2 (River 2, River 2 Max, River 2 Pro). Elle profite de ce qu’apporte Gladys 5.1 aux intégrations externes : un widget dédié sur le tableau de bord, et des déclencheurs et actions dans l’éditeur de scènes. Le pilotage passe toujours par le cloud EcoFlow (ces stations n’ont pas de contrôle local), soit avec l’API officielle Open Platform, soit avec la connexion simple email/mot de passe de l’application.

Ce qu’elle fait aujourd’hui

  • Widget « Station EcoFlow » : ce que fait la station (« Sur batterie · 3 h 10 restantes », « En charge · 300 W entrants »…), jauge de batterie et puissances entrée secteur / solaire / sortie en direct, état des sorties, réserve, limites de charge et de décharge, et boutons pour activer/couper les sorties AC et DC.
  • Déclencheurs de scène :
    • coupure et retour de l’entrée secteur (pratique quand la station sert d’onduleur) ;
    • station qui ne répond plus ou répond à nouveau ;
    • limite de charge atteinte.
  • Actions de scène :
    • régler la limite de charge et la limite de décharge ;
    • régler la réserve de secours ;
    • régler la puissance de charge secteur, ou la mettre en pause (par exemple pour ne charger qu’en heures creuses) ;
    • relever la station à la demande, pour réutiliser le niveau de batterie et l’autonomie dans la suite de la scène.
  • Nouveaux capteurs : autonomie restante et « en charge », en plus du niveau de batterie, des puissances et des interrupteurs AC / X-Boost / DC / réserve.
  • Retour immédiat : un interrupteur actionné dans Gladys change tout de suite de position, puis la station est relue quelques secondes plus tard pour confirmer.
  • Badge de connexion par appareil : cloud, cloud dégradé (dernier relevé en échec) ou injoignable.
  • Statut clair dans la configuration : chaque méthode est réellement testée et son résultat affiché (« API officielle : 2 appareils · Échec de la connexion simple : incorrect password »).
  • Action Diagnostic : liste les données remontées par la station, sans numéro de série ni infos réseau, pour les rapports de bug ou pour ajouter d’autres modèles.
  • Fiabilité :
    • une modification des identifiants s’applique sans redémarrage, et les effacer coupe vraiment l’accès à EcoFlow ;
    • session MQTT plus robuste ;
    • aucune commande envoyée avec des valeurs inventées.
  • Image Docker : Node 24, utilisateur non-root, système de fichiers en lecture seule, multi-architecture (amd64 / arm64, donc Raspberry Pi).

Limites actuelles

  • Gladys 5.1 minimum : les versions plus anciennes restent sur la 0.2.x.
  • Testée en conditions réelles sur un seul modèle (River 2 Pro, méthode connexion simple). Les actions de scène, la détection de coupure secteur et l’autonomie restante restent à confirmer sur d’autres appareils.
  • Mise à jour depuis la 0.2.x : un bouton « Mettre à jour » apparaît sur l’appareil dans l’onglet Découverte, pour ajouter les deux nouveaux capteurs. L’historique est conservé.
  • Gamme River 2 uniquement pour l’instant (pas de Delta ni de River 3).
  • Pas de temps réel : la station est relevée périodiquement, toutes les 30 s par défaut.
  • La connexion simple utilise les accès internes de l’application EcoFlow et peut casser sans préavis si EcoFlow les modifie.

Si vous avez une autre station EcoFlow, le résultat de l’action Diagnostic posté ici m’aiderait beaucoup pour l’ajouter.

Note : Ça semble très verbeux avec le pooling toutes les 30s, a vous de voir si vous voulez garder chaque état.

Intégration EcoFlow – version 0.3.1 (oui encore)

Présentation

Petite mise à jour après les premiers retours sur la 0.3.0. La détection de coupure secteur a été testée en conditions réelles sur un River 2 Pro et fonctionne parfaitement. Il manquait par contre un déclencheur pour la batterie faible : le voici.

Ce qui change

  • Nouveau déclencheur de scène « EcoFlow : batterie faible » : il se déclenche quand la batterie descend à 50, 30, 20, 10 ou 5 %. Choisissez le niveau dans le filtre « Niveau atteint » ; s’il est vide, n’importe quel niveau déclenche la scène.
  • Variables utilisables dans les actions : en plus du niveau de batterie et de la puissance de sortie, ce déclencheur transmet le niveau atteint et l’autonomie restante. Par exemple :
    🔋 EcoFlow à {{triggerEvent.data.battery_level}} %, il reste {{triggerEvent.data.remaining_minutes}} min
  • Pas de messages en rafale : chaque niveau ne se déclenche qu’une fois, et ne repart qu’après une remontée de la batterie de 5 points au-dessus. Une batterie qui oscille autour de 20 % ne vous enverra donc pas une notification à chaque relevé.
  • Logs plus parlants : chaque événement envoyé à Gladys est maintenant journalisé avec ses données, ce qui permet de vérifier ce qu’une scène a réellement reçu.

Astuce

Pour un autre seuil (25 %, autonomie sous 30 min…), le déclencheur standard de Gladys fonctionne aussi :

  1. « Changement d’état d’un appareil » ;
  2. la fonctionnalité « Niveau de batterie » ou « Autonomie restante » de la station ;
  3. < et votre valeur ;
  4. cocher l’option pour ne déclencher qu’au franchissement du seuil, sinon la scène part à chaque relevé.

Petit piège : les variables {{triggerEvent.data.…}} restent vides si vous lancez la scène à la main depuis l’éditeur. Elles ne sont remplies que lorsque l’événement arrive vraiment.

Limites actuelles

Inchangées par rapport à la 0.3.0. Gladys 5.1 minimum, gamme River 2 uniquement, relevé périodique (30 s par défaut). Les actions de scène (limites de charge et de décharge, réserve, charge secteur) restent à confirmer sur d’autres appareils que le mien.