[Concours] Un routeur solaire conçu spécialement pour Home Assistant

Bonjour la communauté,
J’ai déjà présenté sur ce forum mon projet DIY Open Source Solar-Routeur-For-ESPHome.
Je suis arrivé à Home Assistant après l’installation de panneaux solaire sur mon toit et c’est le dashboard énergie que j’ai découvert en premier. Puis, petit à petit, je me suis laissé prendre au jeu des automatisations et des tableaux de bord.
Lorsqu’on a des panneaux solaires, il est intéressant de pouvoir consommer l’énergie qu’on produit au moment où elle est produite. Les routeurs solaires sont faits pour ça, pour stocker l’énergie produite dans un ballon d’eau chaude ou chauffer une piscine.
N’ayant pas trouvé de routeur solaire bien intégré à Home Assistant, j’ai décidé d’en créer un en m’appuyant sur l’état de l’art des réalisations précédentes. Grand fan des projets Open Source, c’est tout naturellement que je le propose à la communauté sur GitHub.
Ce projet est d’ores-et-déjà fonctionnel, mais est loin d’être terminé… j’ai encore plusieurs idées à mettre en œuvre dans le futur :

  • Gestion avancée de l’architecture multi-router (Répartition de charge et gestion des priorités)
  • Gestion de nouveau matériel comme PV Router de l’asso APPER
  • Gestion d’écrans (sur le routeur solaire et déporté)
  • Power Meter Linky TIC

Pas de date pour ces évolutions donc … À suivre…

Bonne fête,
X@v

13 « J'aime »

Effectivement, ça semble pas mal, mais le routeur sur lequel je bosse depuis des années ne te convenait pas ? routeur Xlyric ( https://ota.apper-solaire.org )
( après c’est sur que c’est toujours sympa de se faire un truc perso )

pour info au passage, les robotdyn ne sont plus dispo à la vente sur Aliexpress.

mais tu peux assez facilement passer sur du SSR Random, il te faut juste refaire l’étage de synchro réseau, c’est assez facilement réalisable. ( voici le schéma )

pour ceux qui ne connaissent pas:
Le routeur se compose en 2 cartes au format din :
1 pour la mesure ( et un affichage OLED ) et 1 pour le routage


Le schéma n’est pas totalement à jour, mais l’esprit est là ( ça a encore évolué )

les 2 cartes son compatibles HA.

pourquoi 2 cartes comme souvent le tableau électrique est loin du point de conso ( comme tu l’as très bien réalisé avec ta boite )

les cartes dimmer peuvent se chainer par réseau et chaque carte dimmer peut acceuillir jusqu’a 3 SSR Random et 2 relais SSR classique.
et on peu leur coller jusqu’a 8 Dallas en plus.


( la carte dimmer )

Si vous avez déjà un shelly pour les mesures, la carte routeur n’est pas indispensable.

les 2 interfaces sont accessible par le Web en plus de HA ( plus plus de fonctionnalités )
et vous pouvez aussi programmer le minuteur pour les compléments la nuit.

les cartes sont fournis en contrepartie pour don à l’association APPER ( donc émettent du crédit d’impôt ) et une partie des dons servent à aider des forums ( dont le forum PV entre autre)

L’ensemble est biensur Opensource

( et son petit Oled déporté pour suivre les consos )

1 « J'aime »

Salut Cyril,

Quand je me suis intéressé aux routeurs solaires, j’ai découvert ton projet. Il est très complet, très pro, mais à l’époque, ne sachant pas vraiment où j’allais, je cherchais quelque chose de simple (et moins sophistiqué). J’ai alors découvert le routeur de F1ATB.fr. Ce routeur est très simple à mettre en œuvre (et j’avais déjà une partie de composant en stock) alors, je suis parti sur cette architecture. J’ai adapté le code d’André pour qu’il soit compatible avec mon onduleur (Fronius) et je lui ai même proposé mon code, mais il ne l’a jamais intégré :frowning: .

Suite à quoi, j’ai décidé d’intégrer ce routeur dans Home Assistant et l’intégration via MQTT ne me convenait pas. J’ai donc décidé de voir si j’arrivais à refaire la partie soft avec ESPHome et ça s’est plutôt bien passé :slight_smile:

Et puis, tu as raison :

Mon projet est Open Source et mon but est de répondre à mes besoins et d’en faire profiter quiconque serait intéressé. J’envisage d’ajouter une page pour recenser les alternatives possibles et c’est avec plaisir que j’ajouterai un lien vers ton projet.

Salut!

J’allais proposer mon idée de routeur mais je vais te laisser la place pour ne pas faire doublon, mais quand même te partager mon projet car on peut faire beaucoup plus simple maintenant :slight_smile:

J’ai développé plusieurs solutions de routage :

Un routeur basé sur HA peut maintenant se réaliser simplement à l’aide d’un Shelly dimmer gen3 + LSA pour la partie dimmer, avec la partie mesure venant de n’importe quel appareil de mesure.

@XavB,

Cool comme projet, je l’avais lu à l’époque cependant j’étais resté au fait qu’il ne fonctionnait qu’avec un Fronius. Visiblement cela a évoluer, parfait ! Est-ce possible de prendre l’info puissance depuis un shelly EM ?

Je n’avais pas fait attention à cette possibilité ! Cela m’intéresse pour ma belle mère qui dispose déjà d’un shelly EM mesurant la conso de son appartement. Cela permettrait d’optimiser son autoconsommation (4x425W).

Tu peux m’en dire plus ?

Si nécessaire je peux créer un sujet dédié pour ne pas polluer ce fil.

Bonjour @Neuvidor

J’ai développé un PowerMeter conçu pour Shelly à parti de la doc, car il est très proche du fonctionnement du Fronius. Par contre, n’ayant pas de shelly moi-même, je n’ai pas pu formellement valider son fonctionnement. Il me semble que des personnes utilisent déjà ce PowerMeter. En tout cas, si besoin et en cas de problème, je peux aider à la mise au point.

Oui, soit sur un autre sujet sois sur GitHub…

Merci @Mathieu_Carbou , c’est très fair-play.

J’ai découvert ton routeur il y a un mois ou deux sur ce forum. Je suis allé voir le code source et je trouve ton travail très qualitatif et très pro. La documentation et les explications sont, elles aussi, très claires. :+1:
Je me suis demandé pourquoi je ne l’avais pas découvert avant de commencer mon projet (parce que peut-être ne me serais-je pas lancer…) et la réponse est toute simple, on a commencé nos developpements en même temps.

PS: Je rajouterai aussi un lien vers ton routeur dans la page sur les alternatives possibles à ma solution.

1 « J'aime »

Perso Xav, pour moi t’as déjà toute mon estime comme il faut en avoir pour se lancer dans un tel projet.

ça demande du temps, et savoir se relever face aux problèmes que t’as pu rencontrer.

Pour moi, ça mérite un Bravo !!

Petite note pour Mathieu , merci aussi pour ta disponibilité quand j’ai eu besoin de ton expérience ^^

Pour le Shelly, en fonction du type t’as ça : ( un Json )
pour le EM
page html: /emeter/0

{"power":871.89,"reactive":-591.42,"pf":-0.83,"voltage":230.78,"is_valid":true,"total":1951701.3,"total_returned":531600.7}

Impec :+1:, c’est ce que j’avais programmé dans mon simulateur en Python. Donc ça confirme que le power-meter Shelly est OK.

Salut,

J’avais commencé une réécriture complète de la partie soft du routeur d’André mais difficile de trouver une façon de travailler commune et puis j’ai pas eu le temps de finir… En plus vscode a arrêté le support Arduino et coder sans vscode c’est …

Je comprends rien à l’électricité et à l’électronique mais le firmware doit pouvoir être asser générique pour accepter facilement des plugins sans avoir à comprendre tout le système…

Par exemple j’avais complétement virer la partie web pour la remplacer par une api et une application JavaScript headless.

Faudrait ouvrir un doc avec des besoins.

Par exemple moi j’aimerais plutôt piloter une batterie qui se charge que si le courant sort avec une sortie pwm ou quoi pour dire au bms combien il peut tirer (si ça existe).

J’ai Google vite fait plateformIO fonctionne bien sur vscode donc à préférer vs arduinodev.

Si tu as des connaissances Firmware et envie de participer à mon projet, j’intègrerai avec plaisir tes modifications. Au début, je pensais coder pas mal de C++ et finalement ESPHome est si bien fait que quelques lambda suffisent.

Si tu as des besoins spécifiques, on pourrait développer un « engine » dédié. Pour l’instant, j’en ai créé deu :

  • Un avec routage variable via PWM et triac ou SSR
  • Un avec routage tout ou rien pour gérer les relais

J’imagine qu’on doit aisément implémenter d’autres algorithmes de routage.

Si tu as envie de partager tes idées, je pense que les issues GitHub sont le bon endroit, comme ça on pourra suivre leurs évolutions.

En fait j’y connais rien en routage solaire et la réécriture du routeur f1atb c’était mon premier projet arduino ;p

github dot com quazardous/SolarRouterRMS

mais j’ai tout démonté et j’ai une bonne compréhension des parties logicielles même si je comprend rien à quoi ça sert (j’imagine un peu). Je suis plus expert en codage.

Ce que je voit c’est que le code doit être super bien pensé avant même de parler de fonctionnalité.

Par exemple dans le firmware d’André il y a du code qui prend de la place (qui est limité sur les arduino) comme l’interface graphique en HTML qui sert une fois dans la vie du truc. Du coup dans le code je vois des traces qui montre que la gestion de la mémoire commençait à devenir un problème et limitait l’ajout de nouvelles fonctionnalités.

De plus il y a une grosse complexité par ce que tout le code est « mélangé ».

Donc c’est important de créer une API interne très tôt pour pouvoir créer des « Pugins » très cloisonnés qui n’ont pas besoin de se comprendre n’y d’interagir. Et créer une structurer de dossiers aussi qui reflète cette logique noyau/plugins.

Et qu’on puisse complètement supprimer des plugins à la compilation juste avec un fichier de conf (on a pas tous le même matos).

J’imagine qu’on doit aisément implémenter d’autres algorithmes de routage.

un plugin :stuck_out_tongue:

J’ai regardé le github ça change du C++

Une architecture modulaire, c’est exactement ce que j’ai mis en œuvre ( Plus de détail ici ) :

Super carré le projet Solar-Router-for-ESPHome bravo !

Pas de problème de performance avec ESPHome ? du coup c’est super cadré comme micrologiciel mais j’ai pas trouvé de détail sur la vitesse de la boucle principale.

Par rapport à un projet arduino en C++ from scratch avec la possibilité d’utiliser directement les 2 cores avec 2 boucles où du coup la performance est centrale. En C++ on arrive à avoir une boucle de contrôle de 5/10ms et une boucle moins rapide pour les choses moins importantes sur le 2ème coeur.

Après j’ai pas vraiment de recule pour savoir si ça sert d’aller si vite ?

Non. Pour du routage solaire, avec une mesure par seconde on a déjà une bonne performance. Si tu cherches quelque chose de plus rapide et précis, c’est le routeur de @Mathieu_Carbou qui répondra, à mon avis, parfaitement à tes besoins.

1 « J'aime »

Je confirme:

Pour YaSolR

Je suis l’auteur de la lib MycilaJSY (GitHub - mathieucarbou/MycilaJSY: Arduino / ESP32 library for the JSY1031, JSY-MK-163, JSY-MK-193, JSY-MK-194, JSY-MK-227, JSY-MK-229, JSY-MK-333 families single-phase and three-phase AC bidirectional meters from Shenzhen Jiansiyan Technologies Co, Ltd. (https://www.jsypowermeter.com)), qui supporte tous les JSY (TTL et RS485) sur ESP32, avec un mode de lecture optimisé pour la vitesse et réactivité aux changements mesures.

J’ai également écrit une librairie d’analyse de pulse Zero-Cross (GitHub - mathieucarbou/MycilaPulseAnalyzer: ESP32 / Arduino Library to analyze pulses from a Zero-Cross Detection circuit). Cette lib est capable d’analyser les pulses de différents ZCD (JSY-MK-194G, BM1Z102FJ, Robodyn, ZCD de Daniel S sur PCbWay, etc). Cette libraire permet de recaler correctement le signal envoyé à l’ESP pour être au plus proche du passage à zéro, ce qui permet, sur de grosse puissances, d’obtenir une finesse de routage impossible à atteindre avec les autres libs qui utilisent le front montant (en contrôle de phase).

YaSolR est le routeur qui actuellement est le plus précis, réagit le plus rapidement aux mesures, et est en plus couplé d’un algo PID à proportionnelle aux mesures. Il supporte aussi beaucoup plus de matériel que la plupart des autres routeurs, et utilise ces libs spécialisées ci-dessus notamment.

Mais il est plus complexe aussi - car plus technique :wink:

Pour mon routeur solaire basé sur Shelly

La réactivité est de 1 seconde, car un script exécuté au sein d’un Shelly EM Pro peut obtenir des nouvelles mesures que à chaque seconde. C’est aussi un algo PID à proportionnelle aux mesures.

Pour mon routeur solaire basé sur Home Assistant

La réactivité dépend des délais d’arrivée des mesures dans HA. La logique de routage est codée à même HA.

Je suis d’accord avec @XavB qu’une réactivité dans la seconde est acceptable en général pour du routage. Tout dépend vraiment de la puissance nominale entre autres. Sur le forum photovoltaïque, les personnes ayant fait un routeur aux normes basé sur Shelly EM Pro + Shelly Dimmer Gen3 + LSA en sont très contentes, c’est aussi un routeur flexible qui s’intègre très bien avec Home Assistant et se contrôle facilement par règles via l’app Shelly ou Home Assistant.

Si tu cherches quelque chose de plus rapide et précis

j’ai une vision que théorique au travers du code que j’ai refactoré donc je me fie à vous. Je profite du post pour mieux comprendre.

Pour du découpage de phase « toute les secondes » si on pilote une grosse résistance via le triac ça peut être limite si je comprends bien.

Je voudrait "juste "piloter un système pour recharger/décharger une batterie. Je sais pas trop comment ça pourrait s’articuler. Une alimentation DC DC pilotable et surtout un variateur en sortie de la batterie qui viendrait se brancher sur un micro onduleur « classique ».

Y a des projets comme ça ?

Pour ça, tu devrait te rapprocher du routeur solaire off-grid PVBrain je pense:

Seb est aussi sur le Discord de Réseautonome (Discord)