Bonjour a tous,
Il y a quelques semaines j’ai voulu ajouter a mon installation photovoltaique un moyen simple de stockage d’electicite qui soit integre a Jeedom.
J’ai alors travaille avec @marco67660 et on a choisi des batteries Pylontech (48V, modulables, lithium fer phostfate) et un onduleur hybride Sofar Solar ME3000SP.
Des gens me demandent par message prive comment c’est integre a Jeedom, je cree alors ce fil de discussion afin que l’on puisse partager nos experiences sur ce modele d’onduleur et l’interfacage avec Jeedom.
Voici mon experience:
1) Choix du projet d’interface:
On trouve facilement sur le web le projet de monsieur Colin McGerty : Sofar2mqtt
https://github.com/cmcgerty/Sofar2mqtt
Il permet d’obtenir les donnees du Sofar mais egalement de le piloter!
Le fait de pouvoir piloter l’appareil est primordial dans mon installation car je suis en triphase et je ne peux donc pas utiliser la pince amperemitrique de l’onduleur (monophase) pour mesurer la balance energetique de la maison.
Par contre dans mon installation photovoltaique j’ai du SMA comme onduleurs triphase et aussi un SMA Meter pour mesurer la banlance energetique de la maison et je recupere deja tout ceci dans Jeedom a l’aide de mon plugin SMA.
Il me suffisait donc d’utiliser les donnees du SMA Meter et de piloter le Sofar ME3000SP en ajustant la puissance de charge/decharge en fonction de la balance energetique de la maison.
C’est la que Sofar2mqtt entre en jeux!

2) Module TTL - RS485
Dans le projet Sofar2mqtt ils utilisent ce module :

Mais avec tous les tests que Marc et moi avons fait, on a observe que sur un lot de 10 modules, beaucoup ne fonctionnent tout simplement pas!!! (on a meme eux des reboot du Wemos lorsque le module etait connecte)
On a alors essaye un autre module qui lui fonctionne mieux:
https://www.amazon.fr/gp/product/B07DJ4TGY3/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1
Il y a toujours des erreurs CRC mais ce n’est pas un probleme…
3) Le programme arduino/ESP demande une petit modification.
Au depart on n’arrivait pas a passer une commande (standby, charge, decharge) a l’onduleur.
En analysant les logs, je me suis appercu que lors de l’appel de la commande par jmqtt on passait en argument un boolean mais le programme Arduino l’analyse comme ceci :
messageTemp == "true"
Meme en mettant 1, true ou « true » depuis Jeedom dans jmqtt l’imterpretation ne fonctionnait pas!
J’ai alors tout simplement change le code Arduino comme ceci :
// This is where we look at incoming messages and take action based on their content.
if (topic == standbyMode)
{
BATTERYSAVE = false;
if (messageTemp == "set") //if (messageTemp == "true")
{
modbusResponce responce = sendModbus(setStandby, sizeof(setStandby));
if (responce.errorLevel == 0)
{
Serial.println(responce.errorMessage);
}
}
}
else if (topic == autoMode)
{
if (messageTemp == "set") //if (messageTemp == "true")
{
BATTERYSAVE = false;
On appelle donc depuis Jedoom / jmqtt les commandes avec ‹ set › comme argument.
Et la ca marche!
4) Scenario pour aujustement automatique de la charge / decharge.
Ici chacun ajustera son scenario comme bon lui semble mais je vous donne juste une petite astuce car j’ai eu des soucis au depart qui faisait faire n’importe quoi a l’onduleur…
J’ai remarque que les ecritures dans mqtt se mettent dans une file d’attente (queue) et que le programme Arduino prends les message mqtt dans l’ordre de la file.
Si vous passez trop de commandes depuis Jeedom, l’Arduino n’aura peut etre pas le temps de les analyser en fonction des cycles ou si vous le debranchez/rebranchez ce qui aura pour consequence de passer des ordres de charge/decharge a l’onduleur desynchronises par rapport au temps reel.
Donc pour remedier a ceci, je lis depuis Jeedom la tension secteur obtenu par Sofar2mqtt et je passe uniquement un ordre depuis Jeedom si cette tension a changee. (ca change a tous les cycles)
Ceci n’est que notre petite experience du moment mais ca pourra eviter a d’autres ces petits soucis et je suis certain qu la communaute va aider a ameliorer ce projet.
Pour info, je bosse actuellement sur un version Arduino MEGA avec interface reseau Ethernet/RJ45 car je veux eviter le WIFI pour ce type d’application ‹ sensible ›.
J’ouvrirai un sujet sur le forum prochainement pour que l’om puisse travailller ensemble la dessus.
Sebastien





