Pilotage et supervision méthaniseur low-tech : piloter en local mais superviser en réseau?

Bonjour,

Je débarque sur ce forum, c’est mon premier message, j’espère l’écrire au bon endroit et je vous prie de m’excuser si je me suis foiré…

J’ai récemment commencé à travailler dans une association qui développe des systèmes low-tech de production de biogaz. Un système de supervision et de pilotage réalisé en domotique a été mis en place il y a quelques temps, et à l’usage nous avons constaté des limites.

Voilà une description sommaire de notre architecture :

  • HomeAssistant installé sur un RPi3
    A quelques dizaines de mètres :
  • ESP32 avec capteurs de températures Dallas (DS18B20) et relais 5V-230V
  • Arduino UNO avec capteurs de températures Dallas (DS18B20) et relais 5V-230V

Pour la faire courte, nous avons des capteurs de température, qui conditionnent l’activation de relais connectés à certains équipement.

Au départ, nous n’avions que des ESP, communiquant avec HomeAssistant en WiFi. Le problème, c’est qu’au moindre souci de connexion sur notre réseau, HomeAssistant ne pouvait plus commander aux ESP de déclencher les relais, et c’est un risque que nous ne pouvons pas nous permettre.
Nous avons donc remplacé un des ESP par un Arduino, qui tourne en local et n’a pas besoin de connexion réseau pour piloter. L’inconvénient, c’est que nous ne pouvons plus suivre ce qu’il se passe sur cet Arduino à travers HomeAssistant.

Ma question est donc la suivante : existe-t-il un moyen de piloter des équipements en local, sans passer par le réseau, tout en faisant du relevé et du suivi de données à travers HA ?
En somme, nous souhaiterions avoir comme un Arduino, qui exécute son code en local (et continuera de le faire même si pb de connexion avec le routeur), mais qui peut communiquer en réseau (à une interface telle HomeAssistant), sur la valeur des capteurs qui lui sont connectés, et éventuellement pouvoir passer outre son code et déclencher manuellement les relais si besoin.

J’avais pensé à plusieurs solutions, mais ne connaissant pas bien ce qui existe, je viens quérir votre avis :

  1. Basculer les capteurs et relais sur des Arduino UNO, les connecter à des ESP par les pins RX/TX qui restent seulement comme moyen de communication avec HA (schéma 2)
    Il me semble que c’est possible, mais je suis pas encore sûr de la manière de communiquer en série par RX/TX, ni comment l’intégrer sur HA.
    ==> Ne me semble pas être la meilleure option, mais présente l’avantage de pouvoir le faire à priori sans acheter de nouveau matériel.

  1. Basculer les capteurs et relais sur des Arduino UNO, y ajouter un module wifi afin de communiquer avec HA.
    Je crois avoir compris que cela est possible (avec le protocule MQTT ?), mais j’aimerais en être sûr avant de me lancer, et m’assurer qu’il n’y a pas d’autre solution plus simple ou évidente.

Bien que relativement familier avec la tech/le code, je suis un grand débutant en domotique, notamment avec HA. Ma question n’est pas vraiment spécifique à HA d’ailleurs, je cherche à apprendre, et j’aime le faire en interaction, d’où ma présence sur ce forum.

J’ai hâte d’échanger avec vous ! J’espère avoir été clair, je n’ai volontairement pas voulu trop détailler mais n’hésitez pas si besoin.

Merci déjà de m’avoir lu et bon weekend !

Bonjour,
Avec un broker mqtt je viens de voir cela sur le forum adruino, il y a un tuto en pdf.
Après je ne suis pas un expert d’autres pourrons t’aider bien plus.

Faire attention le tuto a 2 ans donc le façon de déclarer les sensors ou le code a sûrement évolué.

Salut,

Le souci de design que vous avez fait c’est que c’est HA qui contrôle les relais en fonction de la température.
En termes de microcontrôleur, entre un arduino et un esp il n’y pas beaucoup de différence quand il s’agit de gérer une sonde de température et un relais, les 2 sont équivalents, la seule différence c’est que l’esp embarque le wifi.

Comme je disais juste au dessus, avec une esp tu peux gérer toute la logique en local, tout-en remontant les infos à HA et en ayant la possibilité de toujours actionner les relais par HA si besoin.
Cette de façon de gérer est d’ailleurs ce qui devrait toujours être fait avec une Esp, le rendre autonome tout en ayant la possibilité de le contrôler en parallèle.

En termes de robustesse en revanche j’ai 2 soucis :wink:
Raspberry Pi 3 : Pas top pour un système en production, ou alors faut vraiment s’assurer de faire un HA super clean et minimaliste pour éviter les plantages aux max.
.
Les relais bleus 5V… idéalement quelque chose de plus industriel pourrait aider, ces relais ont des risques de gripper et d’avoir rester collés, c’est pas super fréquent mais ça m’est déjà arrivé, alors sur un méthaniseur, la pression n’est pas super élevée, mais tout de même vaut mieux sécuriser le truc.

Ah, en voilà une bonne nouvelle ! :grin: Est ce que t’aurais des conseils ou saurais où je peux trouver un tuto pour faire ça ? J’ai vu qu’on pouvait coder en C++ sur l’ESP, c’est lié ?

Je vois. Quelle serait une meilleure solution ? Rpi4 ? Odroid N2+? J’ai vu qu’on pouvait installer HomeAssistant sur un NAS Synology, on en a un, ce serait mieux ?

Pareil, je serai ravi d’avoir des conseils ! En fait j’ai découvert l’architecture telle quelle il y a quelques mois, et je suis bien déterminé à l’améliiorer pour la rendre plus efficace et robuste. N’hésitez pas à m’envoyer vers du contenu pour apprendre (je viens notaemment de découvrir la section « Débuter » de la HACF).

Merci encore pour votre aide !

Tu n’as pas dit en quoi étaient codé vos ESP, mais j’imagine avec ESPHome.
C’est possible de les rendre autonome avec ESPHome, il y a pleins de triggers et de logique implémentable avec un simple fichier de config yaml, sans code. https://esphome.io ya des exemples avec tous types de capteurs.

Mais en fait de base, un ESP ça marche exactement comme un Arduino, avant d’utiliser ESPHome, je faisais tout directement depuis l’IDE Arduino, il suffit de charger le bon type de carte, le code est similaire ce qui marche sur un Arduino marche aussi sur un ESP, y’a juste le wifi à gérer en plus.

RPi3, ça marche très bien c’est juste qu’il faut bien avoir conscience que c’est un RPi 3, éviter de lui coller trop de choses sur HA. :slight_smile:
Après ça peut être stable, j’ai un Raspberry 1 qui tourne H24 depuis 10ans maintenant.

Pour les relais je n’ai pas de refs non plus juste qu’il doit surement y avoir des choses un peu robustes en terme de fiabilité, cell-ci marchent généralement bien, mais un vendeur d’électronique doit pouvoir conseiller si jamais vous voulez rendre ça plus industriel.

Je confirme il faut intégrer directement tes automatisations dans ton ESP… Avec ESPhome, ca se fait facilement par exemple avec des on_value sur tes sensors …
Tu peux prendre des versions d’ESP32 avec antenne déportée pour augmenter la portée et la stabilité

Oui exactement ! Je ne savais même pas qu’il était possible de faire autrement… Si on peut passer par l’IDE Arduino j’aime autant, je maitrise mieux le C++ qu’ESPHome, et j’imagine que c’est un peu plus flexible.

J’initialise les composants sur l’ESP via HA et récupère leurs ID, que j’utilise pour gérer la logique via Arduino IDE ? Je me pose des questions sur les éventuels conflits entre le code Arduino et l’interface HomeAssistant. On gère les deux indépendamment sans pb?

C’est vrai qu’il nous arrive d’avoir des plantages lorsqu’on compile un nouveau YAML via ESPHome, sans jamais trop comprendre pourquoi c’est seulement de temps en temps. J’avais noté que la RAM pouvait saturer parfois.

Bien noté ! Je vais chercher ça en parallèle du reste.

Merci beaucoup pour tous ces conseils en tout cas :slight_smile:

Là directement pour les souci de plantage de PI 3 y’a ce post j’avais partagé en 2022 :wink:

Salut ! Merci pour le tips :slight_smile:

Alors en fait c’est drôle j’avais déjà vu ton post et testé ta solution, malheureusement ça n’a pas changé grand chose… Et aujourd’hui encore, j’ai recommencé à faire des tests, j’ai obtenu un plantage, alors j’ai retenté d’ajouter la fameuse ligne « compile_process_limit: 1 » et malheureusement sans succès.

Voilà le message d’erreur que l’on obtient.

plantage

Et voilà ce qu’on obtient côté RAM.
La seule manière que j’ai trouvé d’éviter le crash est de redémarrer HA. Ainsi, la première compilation se fait généralement sans souci. Mais autant dire qu’attendre 3mins à chaque fois que la compilation se fasse, pour que ça plante, devoir redémarrer le système, attendre 3mins que tout se mette en place, retenter la compilation, attendre 3mins,… C’est super fastidieux…

Auriez vous une idée de ce sur quoi je pourrais jouer pour éviter les plantages ? Tu parlais de l’importance de faire une « install clean » sur un RPi3, ça passe par quoi notamment ? Parce que là, j’hésite à acheter du matos avec plus de mémoire vive.

Merci encore pour vos précieux conseils :wink:

Malheureusement j’ai bien peur que le Rpi3 à 1Go de Ram c’est devenu encore plus limite pour EspHome.

Hello,

Tu m’as convaincu, j’ai réussi à chopper un Pi 4 sur leboncoin avec 4go de RAM ça devrait aller mieux !
EDIT : d’ailleurs je me demandais, pour installer HA sur le nouveau Rpi 4, est ce que je peux simplement lui mettre la carte SD de l’ancien Rpi 3 et ainsi garder tout notre historique de données ?

En attendant de l’avoir, je fais des tests sur cette question. J’ai réussi à faire tourner mon code Arduino sur l’ESP, à récupérer les données de températures et à activer les relais. Par contre j’ai l’impression que mettre le code via Arduino IDE a en quelque sorte écrasé ce qui avait été installé via ESPHome auparavant, ce qui m’a fait perdre l’accès à l’ESP via HomeAssistant.
En y réfléchissant ça me semble assez logique, mais du coup ça signifie que si je code en Arduino, je perds le lien avec HA ?

Et donc que pour faire ça, il faut passer obligatoirement par ESPHome ?

Merci pour les coups de main :pray:

Hello,

Je ne sais pas si ça va marcher entre Pi3 et Pi4, les images de HA sont différentes en le 3 et le 4 donc risque de ne pas marcher correctement.
Mais pour garder l’existant le plus simple c’est de migrer les données…
Etapes:

  1. Installer HA sur le Pi4 et le mettre en route.
  2. Faire une Sauvegarde complète dans HA du Pi3
  3. Télécharger la sauvegarde.
  4. Charger et Restaurer la sauvegarde sur le Pi4
  5. Attendre que ça finisse… puis rebooter.
    en théorie ça prend quelques minutes.

Arduino IDE et EspHome tous les 2 ont pour but de compiler et de flasher un nouveau firmware sur l’esp… donc oui ça écrase tout :slight_smile:

Non pas du tout en revanche avec EspHome toute la communication dans les 2 sens est intégrée nativement, sans faire grandchose.
Avec Arduino il faut développer la partie communication soit a base d’API HTTP ou en utilisant un Libriarie MQTT… mais faut tout définir à la main.