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

[MAJ 20-11-23] Ajout de l’utilisation de l’appareil « Thermostat » sur le tableau de bord pour gérer la température de consigne.

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 de 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 ;
    [EDIT 20-11-23] Après deux ans d’utilisation des DHT, je vous conseille plutôt, si vous voulez le faire vous-même, d’utiliser un BME680 d’une bien plus grande précision et qui mesure également la pression atmosphérique !
  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… »

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, défini par le thermostat sur le tableau de bord)
  • 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 » :

Ajoutez également un device Thermostat qui vous permettra de choisir votre température de chauffe depuis le Tableau de bord.
image


N’oubliez pas d’ajouter cet appareil sur votre tableau de bord !
image

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) :
a) Si la température est inférieure à 21°C (défini sur le tableau de bord) ET que nous sommes en heures confort, on allume le chauffage ;
b) Si la température est de plus de 22°C (défini sur le tableau de bord) OU qu’on passe en heure creuses, on arrête le chauffage ;
c) Si la température est inférieure à 16,5°C, on allume le chauffage ;
d) Si la température est supérieure à 17,5°C et qu’on est en heures creuses, on coupe le chauffage
Voici à quoi cela ressemble :
a)


On déclenche la scène toutes les 5 minutes ou sin on passe en heure de chauffe


On vérifie pourquoi la scène a démarré (Si la température est plus basse que celle de consigne et qu’on est en heure de chauffe) puis on allume le switch « Chaudière »

b)


On déclenche toutes les cinq minutes ou quand on passe en heures creuses


On vérifie pourquoi la scène s’est déclenchée (Heures creuses ou température trop élevée) et on coupe le switch « Chaudière »
N.B.: Si vous regardez bien, il y a un « +1 » à côté de la valeur du « Thermostat général ». Cela signifie que si vous choisissez une température de confort de 21°C, cette scène coupera le chauffage quand on atteint les 22°C. Vous pouvez bien sûr faire évoluer cette valeur selon vos besoins !

c)



Le trigger « été » est facultatif. C’est pour moi un mode chauffage totalement éteint.

d)




On vérifie qu’on est bien en heure creuse et on éteint

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 :
a) On a besoin de se réchauffer un peu au matin, puis au soir, on passe en heures confort ;
b) 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é (OFF) 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 :
a)





b)

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 éteint 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 !)

3 « J'aime »

Génial ce tuto !!

Merci d’avoir pris le temps :slight_smile:

Je vais le partager sur les réseaux Gladys !

1 « J'aime »

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

2 « J'aime »

@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

2 « J'aime »

Bonjour @GBoulvin,
Petite question technique et pratique : le choix des capteurs DTH11 et DTH12 est du à une plus grande précision ou un capteur de température quelconque (type sonoff snzb-02) pourrais faire l’affaire ?

Salut!
Aucune espèce d’importance concernant le capteur de température!
Tu peux en utiliser des tout-faits ou les faire toi-même, c’est tout…
En DIY, les DHT11 sont réputés peu fiables, les DHT22 le sont beaucoup plus et équipent souvent les appareils donnant la température et l’humidité.
Si c’était à refaire, je prendrais un tout-fait sur batterie :wink: