Aller au contenu principal

Intégration domotique Marstek, gratuite et open source

Intégration Marstek pour Gladys Assistant

Batteries Marstek Venus via leur Open API locale : charge, puissances, énergie et mode.

Cette intégration amène vos batteries domestiques Marstek (Venus E, Venus C, Venus D, Venus A) dans Gladys : niveau de charge, puissances, énergie et mode de fonctionnement, lus en direct sur votre réseau local grâce à l'Open API officielle de Marstek (JSON en UDP). Rien ne passe par Internet ni par le cloud Marstek. Non officielle, sans lien avec Marstek.

Version de développement (0.1). Développée à partir de la documentation Open API de Marstek (Rev 3.1) et des relevés publiés par la communauté, pas encore testée avec une vraie batterie. Vos retours sont les bienvenus sur le dépôt GitHub.

Ce que vous obtenez​

Chaque batterie devient un appareil Gladys de l'onglet Découverte, nommé d'après son modèle (« Marstek Venus E 3.0 »). Une valeur n'apparaît que si votre batterie la donne.

Dans GladysD'où ça vient
Niveau de charge% de la batterie
Puissance de charge / de déchargetoujours positives ; déduites du bilan des puissances quand le firmware se tait
Énergie chargée / déchargée (AC)compteurs cumulés de la batterie côté prise, en kWh
Puissance de sortie réseauce que la batterie fournit à la maison par sa prise
Puissance et énergie hors réseaula prise de secours (EPS) de la batterie
Puissance et énergie solairesVenus A et D (entrées PV), en kWh pour les vues énergie
Puissance réseau (CT)le compteur CT de la batterie : positive en soutirage, négative en injection
Phases A, B, C (CT)seulement en triphasé
Énergie soutirée / injectée (CT)firmware 150 et plus récent
Température de la batterietoutes les 5 minutes, sur les firmwares sûrs (voir plus bas)
Mode de fonctionnementAutoconsommation (Auto), Optimisation IA, Manuel, Passif, Secours (UPS)
Puissance et durée du mode passifla consigne du mode passif : négative pour charger, positive pour décharger

Les valeurs utilisent les catégories énergie de Gladys (stockage batterie, sortie maison, réseau, production) : elles apparaissent dans les vues énergie comme celles de n'importe quelle autre marque.

Ce que vous pouvez piloter :

  • le mode : Autoconsommation, IA, Passif, et Secours (UPS) à partir du firmware 150. Le mode Manuel applique le programme horaire réglé dans l'application Marstek : il se choisit dans l'application ;
  • le mode passif : réglez d'abord la puissance (par exemple -1500 pour charger à 1 500 W, 800 pour fournir 800 W) et la durée en minutes, puis choisissez le mode Passif. En mode passif, une nouvelle puissance s'applique tout de suite. Exemple de scène : « charger à 2 000 W pendant les heures creuses ».

Prérequis​

  • Une batterie Marstek Venus E 3.0, Venus A ou Venus D (ou Venus C, Venus E 2.0 : voir les limites), reliée à votre réseau (Wi-Fi ou Ethernet).
  • L'Open API activée dans l'application Marstek pour chaque batterie, avec son port UDP (30000 par défaut).
  • Une adresse IP fixe pour chaque batterie dans votre box (bail DHCP réservé), comme le conseille Marstek.
  • Un firmware à jour : 150 ou plus récent pour les Venus E 3.0, A et D.

Installation​

  1. Dans l'application Marstek, activez l'Open API de chaque batterie.
  2. Dans Gladys, ouvrez l'onglet Découverte de l'intégration : Gladys diffuse une demande sur le réseau et liste les batteries qui répondent.
  3. Une batterie n'apparaît pas ? Saisissez son adresse IP dans la configuration (plusieurs adresses séparées par des virgules, avec :port si l'Open API n'utilise pas 30000), puis ouvrez à nouveau Découverte.
  4. Ajoutez les batteries voulues.

Le bouton Tester la connexion liste les batteries qui répondent, avec leur firmware et la force du Wi-Fi.

Options​

OptionDéfautRôle
Adresses IPvideles batteries que la découverte ne trouve pas
Intervalle de lecture30 sentre 10 et 300 s ; 30 s comme l'application Marstek

Fonctionnement​

Les batteries ne savent répondre qu'à une requête à la fois : l'intégration envoie une seule requête à la fois, attend 2 secondes après chaque réponse, puis lit à chaque passage l'état (ES.GetStatus), le compteur CT (EM.GetStatus) et le mode (ES.GetMode) ; les entrées PV toutes les minutes, la température toutes les 5 minutes et le firmware toutes les 10 minutes. Une batterie est suivie par son adresse MAC Bluetooth : la découverte la retrouve si son adresse IP change.

Le badge de transport de chaque batterie indique local, avec un point orange quand une requête est restée sans réponse ou que le firmware est fragile, et injoignable après trois passages sans réponse.

Limites connues​

  • La découverte ne trouve pas toutes les batteries. Gladys diffuse la demande depuis un port quelconque ; plusieurs firmwares ne répondent qu'au port 30000 (Venus C, Venus E 2.0) et la Venus E mini ignore la diffusion : saisissez leur adresse IP.
  • Firmware antérieur à 150 (Venus E 3.0, A, D) : polling ménagé (une seule tentative par requête, pas de lecture de la température), car ces firmwares peuvent couper leur Open API ou perdre leurs réglages quand ils sont interrogés. Mettez la batterie à jour depuis l'application Marstek.
  • Venus C et Venus E 2.0 : leur compteur partage le canal Wi-Fi de l'Open API ; le polling peut faire perdre le compteur CT et arrêter l'autoconsommation. Elles sont lues une fois par minute au plus.
  • Venus E mini (firmware 301) : elle répond en diffusion, ce qui n'atteint pas le conteneur de l'intégration ; non prise en charge pour l'instant.
  • Le mode Manuel et ses créneaux horaires se règlent dans l'application.

Dépannage​

  • « Pas de réponse » : l'Open API est désactivée (certains firmwares la coupent d'eux-mêmes : réactivez-la dans l'application), le port n'est pas le bon, ou la batterie est sur un autre réseau que Gladys.
  • Valeurs absentes : certains firmwares ne remplissent pas tous les champs (énergie solaire à 0, énergie hors réseau toujours à 0) ; l'intégration n'affiche que ce que la batterie donne.
  • « the battery refused the mode » : le firmware n'accepte pas ce mode (Secours avant le firmware 150).

Confidentialité​

Tout reste sur votre réseau : l'intégration ne parle qu'à vos batteries, en UDP. L'Open API de Marstek n'a pas de mot de passe : n'importe quel appareil de votre réseau peut la lire et la piloter.

Avertissement​

Intégration non officielle, sans lien avec Marstek. Marstek et Venus sont des marques de leurs propriétaires. Changer le mode ou la puissance de charge agit sur une vraie installation électrique : faites-le en connaissance de cause.

Paramètres de configuration​

Voici les paramètres demandés par Marstek dans son écran de configuration dans Gladys.

ParamètreTypeObligatoireDescription
Vos batteries Marstek dans GladyssectionNonLit vos batteries domestiques Marstek (Venus E, C, D, A) sur votre réseau local via leur Open API : niveau de charge, puissances de charge et de décharge, solaire, puissances réseau et hors réseau, compteur CT, compteurs d'énergie pour les vues énergie de Gladys, température de la batterie, et le mode de fonctionnement, que Gladys peut changer. Dans l'application Marstek, activez l'Open API de chaque batterie (port UDP 30000), puis ouvrez Découverte, ou saisissez les adresses IP ci-dessous. Rien ne passe par Internet ni par le cloud Marstek. Non officiel, sans lien avec Marstek.
Adresses IP des batteries (facultatif)stringNonDécouverte trouve les batteries qui répondent à sa diffusion. Saisissez les autres ici, séparées par des virgules, avec :port quand l'Open API n'utilise pas 30000. Donnez-leur une adresse fixe dans votre box.
Intervalle de lecture (s)numberNonFréquence de lecture de chaque batterie. Les batteries répondent à une requête à la fois et certains firmwares coupent leur Open API quand ils sont trop sollicités : 30 s, comme l'application Marstek, sauf besoin.

Comment installer Marstek dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : Marstek apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
  2. Cliquez sur Installer. Gladys télécharge l'image Docker (ghcr.io/lm1lc3n7/gladys-marstek:0.1.1), la démarre dans un bac à sable isolé du cœur, et génère l'interface de l'intégration (appareils, découverte et configuration).
  3. Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
  4. Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/LM1LC3N7/gladys-marstek.

Marstek nécessite Gladys >=5.0.0. Le catalogue dans Gladys se rafraîchit toutes les heures : une nouvelle version est donc disponible au plus tard une heure après sa sortie.

Vous n'utilisez pas encore Gladys ? C'est gratuit et open source : suivez le guide d'installation pour démarrer.

À propos des intégrations externes​

Marstek est une intégration externe : une intégration communautaire empaquetée dans un conteneur Docker et publiée sur GitHub, que Gladys installe en un clic et exécute dans un bac à sable isolé de son cœur. Elle est publiée et maintenue par LM1LC3N7, et non par l'équipe cœur de Gladys.

Inscrivez-vous à la newsletter Gladys Assistant

Quelques emails par mois sur les nouveautés et l'actualité du projet. Envoyés par Pierre-Gilles Leymarie, le fondateur du projet. Désinscription possible à tout moment 🙂