Bonjour,
Je vous propose ici un template mymodbus pour une batterie Marstek Venus E V3.
Le pluging mymodbus propose déja un template nommé « MARSTEK Venus », mais il a été conçu pour une marstek Venus version 2.
Malheureusement, certains registres de la marstek ont changé de la V2 à la V3 ; il est donc nécessaire d’apporter certaines modifications.
Je propose ce template ordonné de la même façon que le précédent : les commandes sont triées par ordre croissant de numéro de registre.
A chaque utilisateur de trier ensuite comme il le désire, et éventuellement à supprimer ou rajouter d’autres registres.
Marstek ne publie pas officiellement de doc sur l’utilisation de ces registres.
Pour construire mon équipement, j’ai utilisé le template existant, puis adapté en consultant différentes docs dispo sur le net :
https://duravolt.nl/wp-content/uploads/Duravolt-Plug-in-Battery-Modbus.pdf
https://docs.google.com/spreadsheets/d/e/2PACX-1vSyu0LKoSrQQzvrosMH-sOcSKT7pgHSXEwAcIJe0cy3NCrmwiLH6VDGjh0_2HOKhL0nZmnI3Mk5Fb_d/pubhtml
https://github.com/ViperRNMC/marstek_venus_modbus/blob/main/custom_components/marstek_modbus/registers_v3.py
https://github.com/fonske/MarstekVenus-LilygoRS485/blob/main/lilygo_mt1_v3.yaml
Les registres ont été trouvés par reverse engineering, il peut y avoir des choses fausses. Par exemple, le registre 37004 qui est noté dans le doc de ViperRNMC comme étant ac-current, avec un scale de 0.004, et qui donne en fait la même valeur que ac_power, registre 30006 ; c’est la puissance du courant alternatif, pas le courant.
Voici les informations gérées par ce template :
- plage 30001 - 30006. DC power - AC voltage - AC power
- plage 30100 - 30101. DC voltage - DC current
- plage 33000 - 33011 : tot charging energy - tot decharging energy - daily charging energy - daily discharging energy - monthly charging energy - monthly discharging Energy
- plage 35000 - 35002. temp. - temp. MOS1 - temp. MOS2
- plage 35010-35011. temp. max cell - temp min cell
- « 35100 ». Inverter State
- plage 37005 - 37008. batt SoC - max cell voltage - min cell voltage
- « 42000 ». mode control
- « 42010 ». mode forcé (off - charge - décharge)
- plage 42000 - 42021. puissance de charge forcée - puissance de décharge forcée
- « 43000 ». Mode d’utilisation (manuel - autoconsommation - AI)
- plage 44002 = 44003. max charge power - max discharge power
Il n’est pas facile d’optimiser les requêtes en regroupant les registres par plage : les informations sont éparpillées, sans grande logique.
J’avais essayé de faire une plage plage 35000 - 35011 et une autre 42000 - 42021 pour limiter les requetes, mais la marstek refuse.
Ca fait donc un nombre important de petites requetes.
A noter que les registres à partir de 42000 sont en mode lecture/écriture.
J’ai l’intention de créer un autre équipement modbus pour les informations semi-statiques ou spéciales de la marstek ; il sera en mode ‹ sur évenement ›. Chez moi, exécuté une fois par jour.
Il y aura, entre autres, les infos de version, et la tension des cellules de la batterie.
Si ca intéresse certains d’entre vous, je proposerai un autre template dédié.
Félicitations à @Michel_F pour ce plugin ; il est vraiment très bien concu.
Je l’utilise par ailleurs pour interroger mes micro onduleurs DS3 APSystems, avec bonheur.
Et merci @ptitdyno pour le template de la V2, ca m’a été très utile.
Voici le template :
MARSTEK_Venus.json.log (64,1 Ko)
. Il faudra ensuite supprimer l’extension .log après chargement.









