[Tutoriel] Thermostat "fait maison" et intégration/programmation dans Gladys

Bonjour à tous !
Je propose de vous partager mon thermostat, système de gestion de la chaudière, entièrement fait “main”.


(Oui, je sais, ça manque d’un coup de peinture :wink: mais la tablette précédente, tombée en rade était plus grande et cachait ce chancre !)
Tout d’abord, il faut savoir ce qu’est un thermostat et ce n’est pas bien compliqué à comprendre…
Un thermostat (de chaudière) est un simple interrupteur “on/off” jumelé à un capteur de température et une gestion de la programmation (parfois).

  1. L’interrupteur
    J’ai choisi un relais connecté de chez Sonoff (+/- 4,30€) que j’ai flashé en Tasmota (pas obligatoire mais permet d’éviter la fuite d’infos en chine et garder tout en local). C’est le même que j’utilise pour gérer le garage et la barrière (Je me rends compte à l’instant que je n’ai jamais envoyé le tuto à ce sujet, ça viendra !). Vous en trouverez, entre autres, ici ;
  2. Le capteur de température
    Le choix est vaste ! Sondes connectées de toutes marques ou en diy (mon choix : DHT11 (2,50€, ESP01S inclus) et DHT22 (3,50€ tout nu) )… Le but est de communiquer (au moins) une température de la pièce à Gladys ;
  3. L’unité de gestion de programmation
    Gladys, le plus performant, intuitif, user friendly de tous les systèmes, évidemment ! :wink:

A. Matériel
Vous aurez besoin du matériel proposé ci-dessus mais aussi :

  • D’un fer à souder et ses accessoires (soudure etc.) ;
  • D’une alimentation 5V (un chargeur USB qui traine dans le fond d’un tiroir) et un fil USB correspondant (celui dont le côté micro-USB ne fonctionne plus mais que vous n’aviez pas jeté, on ne sait jamais)
  • Un programmateur pour flasher le relais Sonoff (pas obligatoire) et le ESP-01s (si vous avez pris ça) en Tasmota. Plus d’infos sur la flash avec Tasmota dans ce post

B. Le relais Sonoff

Il faut :

  • Y souder l’alimentation (côté +/-)
  • Le flasher : un simple firmware Tasmota normal fera l’affaire : Tuto ici
  • Le configurer : Rendez-vous sur la page du périphérique, cliquez sur “Autre configuration” et collez le template suivant ici :

    Template :
    {"NAME":"Sonoff RE5V1C","GPIO":[17,255,255,255,255,255,0,0,21,56,0,0,0],"FLAG":0,"BASE":18}
    Après avoir enregistré et redémarré le relais, allez dans l’onglet “Configuration du module” et choisissez “Sonoff RE5V1C” (puis enregistrez-redémarrez) ;
  • Souder les fils venant de la chaudière ou utiliser des connecteurs et les fixer sur le relais (côté “OUT”)
  • Fixer tout ça dans un petit boitier (si vous avez une imprimante 3D, je vous joins mon design de ouf ! :smiley: )
    image
    Lien vers le .stl
    Le bouton s’emboite dans la partie mince dans un des deux trous et permet d’accéder au switch intégré dans le module. La partie plus profonde est fixée au mur. Le relais va vers l’arrière, circuit imprimer vers l’avant. Je joindrai une photo bientôt :wink:

C. La température
Il existe de nombreuses solutions pour connaître la température d’une pièce. Personnellement, j’utilise deux types à faire soi-même que j’ai cités plus haut. J’aime beaucoup le module “all-in” en DHT11+ESP01s, flashé avec Tasmota (encore !) mais il est réputé moins précis que le DHT22.
Le module DHT11 doit être alimenté en 5V et ça tombe bien, on a déjà une alimentation en route ! On peut donc les relier en parallèle ou en profiter pour déplacer la sonde si le thermostat originel était mal placé (ce qui était mon cas). Pour le DHT22, il faut ajouter un module ESP complémentaire (P. ex. un ESP01s mais l’alimentation est compliquée ou un Wemos D1 mini (plus cher)) ou bidouiller de module RE5V1C pour y connecter directement le DHT22 - ou DHT11 - seul ). Dans ce dernier cas, il faut relier la pin “data” du DHT au “ERX” (ou “IO2”) du module RE5V1C ! Plus d’infos ici.
Dans tous les cas, il faut aller dire au module Tasmota qu’une sonde de température lui est raccordée (souvent, il le voit tout seul !).

D. Intégration dans Gladys
Soit on a tout fait en Tasmota et on va faire un petit tour via son intégration dédiée, soit on utilise ewelink pour le relais et d’autres en fonction de vos capteurs de température
En somme, il n’y a qu’à ajouter les périphériques de température et relais en tant que “commutateur”, tout est automatique !

E. La programmation

Et c’est ici que les Romains s’empoignèrent…

Pour le moment, mi-septembre 2021, la programmation du chauffage dans Gladys n’est pas la plus simple mais gardons espoir, c’est en cours d’amélioration !
Le plus simple est de dire qu’on souhaite allumer le chauffage quand il fait trop froid dans la pièce et l’éteindre quand il fait chaud. Mais ça, un simple thermostat mécanique le fait très bien !
On va donc travailler autrement. On va créer des appareils factices (fake devices) qui vont nous aider dans la programmation.

Le principe

  • On va créer des “heures pleines” (où le chauffage à un objectif de température “confort” de 22°C pour la soirée)
  • Et des “heures creuses” où le chauffage doit maintenir un 19°C

La programmation aura pour objectif de modifier le statut de “heures creuses” en “heures pleines”, soit par des déclencheurs (triggers) de temps, de présence, de saison, de météo, vacances etc. où même, une combinaison de tout ça (attention aux neurones…) !

Dans Gladys

Allez dans l’onglet “Intégrations” puis choisissez “MQTT” et cliquez sur “Nouveau +”
Donnez-lui un nom intelligent, une ID externe de type mqtt:Maison:TimerHC, attribuez-lui une pièce et sélectionnez “Commutateur” dans le champ “Ajouter une fonctionnalité”.

Introduisez ensuite les valeurs telles que proposées ci-dessous et “sauvegarder” :

Dans mon installation, j’ai également créé des Timers pour “Vacances” et “Saison”

Que faire avec ça ?
Des scènes ! Au boulot !
J’en ai 4 au minimum (Chauffage ON, Chauffage OFF, Chauffage ON HC, Chauffage OFF HC) :

Et pourquoi n’a-t-on pas encore parlé d’horaire ?
Ca vient !
Pour rappel, l’objectif n’est pas juste d’allumer ou éteindre la chaudière mais bien de dire si on doit être en objectif de température confort ou pas !
C’est donc dans des scènes qu’on va commuter la prise factice “Timer heures confort”
On va donc créer deux scènes :

  • On a besoin de se réchauffer un peu au matin, puis au soir, on passe en heures confort ;
  • Le reste du temps, on se met en heures creuses.

Et c’est ici qu’on ajoute tous les autres triggers, conditions etc…

  • J’ai ajouté un mode vacances (en gros, quand nous sommes partis, on reste en heures creuses) et on réactive le tout pour le jour de notre retour (pratique quand on revient du ski :wink: )
  • Et un mode été car même s’il fait froid pendant la journée, j’aime autant que le chauffage ne s’allume pas, quitte à faire une petite flambée le soir :wink:

Voici ce que ça donne :


C’est terminé !
Toutefois, n’hésitez pas à pousser la programmation, combiner vos capteurs de présence, températures de pièces (allumer le chauffage si la température du bureau est trop faible alors qu’il y a quelqu’un…) MAIS, n’oubliez pas de ne modifier que le statut des “heures confort” au risque de vous retrouver avec 28°C dans le salon…

Bon, j’ai quand même un bonus…
Sur le RE5V1C, il y a un bouton… Ce serait dommage de ne pas l’exploiter…
Si vous appuyez dessus, il allume ou éteins la chaudière mais… Gladys va repasser derrière vous en fonction de vos conditions d’activation du chauffage ! Donc…
Il va falloir, dans le relais sous Tasmota (uniquement) :

  • Délier le bouton du relais
  • Modifier l’impact des pressions sur le bouton pour que ça modifie le statut du timer “Heures confort”

Pour ce faire, une info à glaner : l’adresse du Topic MQTT du “Timer heures confort”
Intégrations → MQTT → Timer HC → Editer et on copie ceci :

Puis on va dans l’interface web du relais Tasmota et on tape les commandes suivantes dans la “Console” pour déconnecter le bouton de son relais :

SetOption73 1

Puis on fait les règles qui consistent en "une pression, poste sur le topic du ‘timer heures confort’ qu’il est “ON”, deux pressions tu le mets “OFF” ". Remplacez, dans le code ci-dessous, gladys/master/device/mqtt:Maison:TimerHC/feature/mqtt:Maison:Timers:Heures_Confort/state par la valeur copiée précédemment.

Rule1 on button1#action=single do publish gladys/master/device/mqtt:Maison:TimerHC/feature/mqtt:Maison:Timers:Heures_Confort/state 1 endon on button1#action=double do publish gladys/master/device/mqtt:Maison:TimerHC/feature/mqtt:Maison:Timers:Heures_Confort/state 0 endon

Et puis on active la règle1 :
Rule1 1

Et si ça vous amuse et que vous avez compris le principe, il y a encore possibilité de créer une action pour 3, 4 et 5 actions (attention, 6 pressions redémarrent le module !)

1 Like

Génial ce tuto !!

Merci d’avoir pris le temps :slight_smile:

Je vais le partager sur les réseaux Gladys !

1 Like

Manque juste une fonction PID générique dans Gladys et le système est parfait. Merci pour le tuto @GBoulvin

2 Likes

@VonOx PID générique ?

Générique ou commune ,c’est lié à la gestion du chauffage et sa régulation, peut importe l’actionneur ou le capteur.

https://www.abcclim.net/regulation-p-pi-pid.html

1 Like