Régulation de piscine avec Home Assistant

Régulation de piscine avec Home Assistant

Comme les modules Yoctopuce peuvent désormais être commandés par MQTT, nous vous proposons cette semaine un exemple concret de leur utilisation dans un système entièrement piloté par Home Assistant. Le but de ce projet est d'obtenir un panneau de contrôle regroupant tous les paramètres importants pour vérifier l'état d'une piscine privée, et d'implémenter quelques automatismes de régulation simples qui puissent ensuite être facilement affinés pour optimiser la consommation énergétique liée à la piscine.

Ce projet est parti de la constatation effrayante que la consommation énergétique du système de filtration de cette piscine avait représenté plus de 40% de la consommation énergétique totale du foyer en 2022. Le principal consommateur est la pompe de filtration, qui est régulée par une simple horloge. Les heures de filtration sont adaptées quelques fois par an en fonction de la saison. Comme la pompe consomme 1 kW et qu'elle a fonctionné plus de 3000 heures sur l'année, sa consommation annuelle correspond quasiment à celle d'un ménage Suisse moyen. Nous sommes donc dit qu'il devait y avoir moyen de faire mieux...

Composition du système

Les éléments que nous avons choisi d'intégrer dans notre panneau de contrôle sont:

  • Un Yocto-PowerRelay-V3 pour activer la pompe actuelle, à la place de l'horloge
  • Un Yocto-RS485-V2 qui servira ultérieurement à contrôler une pompe à vitesse variable IntelliFlo VSF, plus efficace que la pompe actuelle à vitesse fixe
  • Un Yocto-RS485-V2 pour recevoir les mesures d'un compteur d'énergie triphasé Electrex, comme décrit dans ce précédent article
  • Deux Yocto-4-20mA-Rx pour recevoir les paramètres de qualité de l'eau (taux de Cl-, pH, température), transmis par le système de stérilisation Bayrol Analyt 2
  • Un Yocto-RangeFinder et un relais pour le système de régulation de niveau décrit dans ce précédent article

Tous ces modules sont raccordés au réseau et à MQTT directement via un YoctoHub-Ethernet. La majorité des modules ont été intégrés dans le tableau électrique de la piscine, qui date des années 1960, et dans lequel on a pu récupérer la place précédemment occupée par un ancien système de stérilisation à cuivre-argent:

Tableau électrique de la piscine avec les modules Yoctopuce
Tableau électrique de la piscine avec les modules Yoctopuce


Les modules pour la régulation de niveau sont dans leur propre boîte étanche, directement dans sur la cavité de régulation, avec un YoctoHub-Ethernet dédié:


La boîte, vue de dessous  L'électronique, bien rangée dans la boîte
Le contrôleur de régulation fait maison

Le système de régulation de niveau, posé au-dessus de la vanne
Le système de régulation de niveau, posé au-dessus de la vanne




Configuration des modules Yoctopuce

Pour ne pas se mélanger les pinceaux dans l'environnement MQTT, lorsqu'on utilise un nombre important de modules, il est important de donner un nom logique explicite à chacun d'eux, ainsi qu'à toutes les fonctions de mesures. Ainsi, on les retrouvera facilement avec les outils de découverte MQTT. Le nom logique des modules peut être configuré avec l'application VirtualHub, ou directement via l'interface web du YoctoHub-Ethernet.

Modules raccordés au hub dans le tableau électrique
Modules raccordés au hub dans le tableau électrique


Pour les entrées analogiques comme le Yocto-4-20mA-Rx, on configure la correspondance entre le signal 4-20mA et la valeur physique mesurée, selon les informations fournies par la fabricant de l'appareil émettant le signal (carte d'extension Bayrol PM5-SA4). Il faut aussi impérativement activer les Timed reports à la fréquence désirée pour que les mesures soient vues et enregistrles par Home Assistant.

Configuration de la correspondance 4-20mA vers la valeur mesurée
Configuration de la correspondance 4-20mA vers la valeur mesurée


Pour le compteur d'énergie, on crée sur le Yocto-RS485 un job avec huit tâches, chacune chargée de lire l'un des paramètres qui nous intéresse sur le compteur.


Job pour interroger le compteur d'énergie Electrex  Tâche pour la lecture d'un paramètre MODBUS


Comme pour les autres capteurs, il faut aussi configurer sur les genericSensors du Yocto-RS485 des timed reports à la fréquence désirée pour que les mesures soient transmises à Home Assistant.

Il ne reste ensuite plus qu'à configurer les YoctoHub-Ethernet pour qu'ils se connectent à la centrale MQTT, le broker. Cela se fait dans la section Outgoing callbacks de la configuration du hub:

Configuration d'un callback MQTT
Configuration d'un callback MQTT


Prenez soin d'attribuer un Client ID différent pour chaque YoctoHub. Pour vous y retrouver plus facilement dans votre environnement MQTT, il est recommandé de configurer un Root topic de votre choix. Il peut être le même pour tous les YoctoHubs.

Connexion à Home Assistant

Si votre Home Assistant a l'intégration MQTT configurée correctement sur le même broker que vos YoctoHubs, vous devriez pouvoir trouver vos modules Yoctopuce dans la section Settings, Devices & Services, sous la catégorie MQTT, listés par leur nom logique. En cliquant sur un module, vous pouvez consulter toutes les informations que Home Assistant a retrouvé par MQTT:

Informations sur le Yocto-RS485-V2 pour le compteur Electrex
Informations sur le Yocto-RS485-V2 pour le compteur Electrex


En cliquant sur le lien Add to dashboard, vous pouvez ajouter ce module à un tableau de contrôle Home Assistant. Il est ensuite facile de personnaliser l'affichage directement dans le panneau de contrôle pour grouper les indicateurs, changer les icônes et les textes, ou modifier la résolution d'affichage des mesures. Voici le résultat:

Notre panneau de contrôle sous Home Assistant
Notre panneau de contrôle sous Home Assistant



Ajout d'automatismes

Il reste bien sûr à rajouter les automatismes de régulation. Pour commencer, nous allons remplacer l'ancienne horloge par une solution strictement équivalente. Pour cela, il faut aller dans la section Settings, Automations & Scenes, cliquer sur Create automation et choisir Create new automation. On ajoute un Trigger de type Time pour chaque heure où l'on désire enclencher la pompe, et une Action de type Call a service qui invoquera le service Switch: Turn on avec comme target l'entité PoolPump PowerRelay. On fait de même pour l'arrêt de la filtration:


Lancement de la filtration  Arrêt de la filtration


A ce stade, c'est trivial. Mais la grande différence avec la vieille horloge est qu'il sera possible ultérieurement de rajouter des conditions pour changer automatiquement la durée de filtration en fonction de la température de l'eau et de l'utilisation de la piscine.

Le deuxième automatisme que nous allons ajouter est la régulation de niveau. La logique de la régulation de niveau est la suivante: toutes les minutes, si la distance entre le niveau de la piscine et le sol est supérieure à 180mm, on ouvre la vanne pendant 10 secondes.

A l'origine, cette régulation était implémentée par un script programmé en Python. Mais avec Home Assistant, il n'est plus nécessaire d'écrire une ligne de code pour un mécanisme aussi simple:

Automatisation pour réguler le niveau
Automatisation pour réguler le niveau


Vous aurez remarqué que cette automatisation ne contrôle que l'activation de la vanne et non sa désactivation. Pour éviter tout risque de laisser la vanne ouverte en cas de panne d'infrastructure, une désactivation automatique après dix secondes a été configurée directement dans les paramètres du relais Yoctopuce:

Désactivation automatique du relais après 10 secondes
Désactivation automatique du relais après 10 secondes


On obtient ainsi le comportement requis par ce système de régulation par cavité communicante.

Suite de ce projet

Il nous manque encore quelques éléments externes, notamment le module d'interface 4-20mA pour le système de mesure Bayrol et la pompe à vitesse variable IntelliFlo VSF, pour pouvoir mettre en œuvre les optimisations les plus importantes. Mais cette première étape du projet nous a permis de valider la faisabilité d'un système de régulation basé sur des modules Yoctopuce et sur Home Assistant, sans recourir à des programmes de contrôle externes.

Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.