Domotiser son chauffage au fioul

Quitte à tripoter ma chaudière fioul, autant en profiter pour la domotiser un peu 🙂

Quand je dis domotiser, je parle bien évidemment de la régulation/programmation du chauffage.

Pour les chauffages électriques, c’est de la rigolade, puisque dans la plupart des cas, c’est natif (fil pilote, thermostat d’ambiance, que sais-je encore…)

Pour les chaudières Gaz, mon « confrère » bloggeur, Abavala (je peux t’appeler confrère Hervé ? :p ), a écrit un excellent billet à ce sujet que je vous invite à lire de suite :

http://www.abavala.com/2011/10/24/ma-chaudiere-a-lapproche-de-lhiver/

Quand au chaudière fioul, bah y’avait pas grand chose…

Alors tout d’abord, petit rappel de fonctionnement.

Ma chaudière est une « vieille » chaudière (comme Karen Cheryl) (spécial clin d’oeil à Fred qui se lamentait de ne plus avoir de lien vers sa chanteuse favorite) (pardon Karen).

Elle n’a donc aucun dispositif de thermostat d’ambiance.

(Vous me direz, je pourrais en changer et mettre un truc de la mort qui tue avec toutes les options, mais bon, c’est comme mes PCs ou ma femme, je suis assez basique la dessus, tant que ça marche, pourquoi en changer ?..)

C’est une chaudière qui produit de l’eau chaude (nommée ECS dans les milieux autorisés, pour Eau Chaude Sanitaire).

Donc elle est composée d’un brûleur (qui brûle le fioul ah ah ah) et chauffe l’eau du ballon incorporé pour me permettre de prendre ma douche dans des conditions acceptables en hiver (et en été aussi d’ailleurs…) et également l’eau qui est envoyé dans le circuit d’eau des radiateurs par un Circulateur.

Ce circulateur est une sorte de pompe qui ne fait que faire « circuler » (d’où son nom, comme quoi la nature est bien faite) l’eau dans le circuit.

Alors un circulateur, c’est ça :

En mode « été », on coupe le circulateur d’eau chaude qui donc n’envoi plus d’eau dans le circuit des radiateurs (magique hein ?).

Sous ce circulateur, nous avons un gros thermostat d’avant guerre qui permet de « régler » la température de l’eau chaude envoyée dans le circuit (en fait une simple vanne qui permet de doser le volume d’eau chaude envoyé).

Vanne qui ne me sert à rien puisque tout mes radiateurs (sauf 1 bien sûr (obligatoire!)), sont équipés de robinets thermostatiques, c’est pour quoi elle est ouverte à fond.

Je peux donc, individuellement, contrôler la température de chaque « pièce/radiateur » (si je met le robinet thermostatique a 21°, le robinet coupe l’arrivée d’eau chaude dans ce radiateur une fois cette température atteinte dans la pièce).

Bon je ne vous expliquerais pas le fonctionnement du robinet, on s’en moque un peu.

Alors déjà ça c’est bien, mais le matin, quand on quitte la maison, on se voit mal faire le tour de tout les radiateurs (j’en ai 13 !) pour baisser la température de 2°.

Donc bilan, on laisse tel quel et dans la journée, quand personne n’est la (à part le lapin), ben ça chauffe pareil que quand on est la…

D’où l’idée de gérer un peu tout cela par le serveur Domotique.

De quoi dispose t’on pour traiter de sujet ?

La majorité des pièces de mon domicile sont équipées de sondes de température, mon système domotique « connait » donc la température de chaque pièce.

On ouvre la chaudière et on regarde un peu les branchements électriques :

Alors oui, c’est très old-school… Nous avons le fil d’alimentation du circulateur qui arrive sur un bornier et donc qui est alimenté quand la chaudière est mode Hiver et coupé quand elle est en mode été.

Ne reste plus qu’a se greffer la dessus.

Pour cela, rien de plus simple, il nous faut un contacteur on/off 1000w Chacon (RF 433Mhz)

Un interrupteur va-et-vient (pour passer en mode normal si le système domotique venait à ne plus fonctionner), un voyant rouge 220v (pour faire zoli et voir quand le circulateur est alimenté) et une boiboite pour mettre tout ca dedans.

Soudure, domino et tadammmmm :

The Chaudiere-Controler made by GuiguiAbloc.

Essentiel pour la compréhension, un schéma électrique bien pourri (PS: Pour ceux qui aurait dormi en cours d’électricité P = Phase (ou aussi L comme « Live ») et N = Neutre):


(Quizz a mes amis du réseau : De quel équipement est tiré l’oreille qui sert de support à mon domino ? 😀 )

Maintenant que l’on peut contrôler l’arrêt/marche du circulateur, comment on programme cela ?

Alors vous allez voir c’est assez basique.

Tout d’abord, on se créé un template crontab qui sera chargé tout les jours de la semaine de 8h à 18h.

Comme mon serveur domotique « plotte » nos agendas, si nous sommes en RTT/Vacances/Pas envie d’aller bosser , il ne charge pas la crontab dans ce cas là.

Une fois cette crontab chargée, il exécute un script tout les quart d’heure qui vérifie les consignes qui lui sont données dans un fichier YAML. Si la température est au-dessus de ses consignes, il coupe le circulateur, sinon il le relance. Par contre, si une des températures de la maison venait a descendre en dessous du seuil minimum, il relance le circulateur.

La commande on/off du module Chacon est envoyée sur le bus xPL et transmise par mon boîtier RFXCOM.

J’ai donc écrit un script en python qui est lancé toutes les 15 minutes :

NB: C’est une version allégée de celui que j’utilise

Exemple fichier YAML de consigne :

SALON: 18.0
SDB : 20.0
MINITEMP : 17.0

Le script :

#! /usr/bin/python
# -*- coding: cp1252 -*-
 
import MySQLdb, sys
import yaml, socket
 
# YAML
fichieryaml = open('consigne.yaml')
consigne = yaml.load(fichieryaml)
fichieryaml.close()
 
# ALIMENTATION VARIABLE
consignesalon =  consigne['SALON']
consignesdb = consigne['SDB']
minitemp = consigne['MINITEMP']
hostname = socket.gethostname()
 
# CONNECTEUR UDP XPL
UDPSock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
UDPSock.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,1)
 
# fonction Message XPL
def xplmsgcmnd(ordre):
  msg = "xpl-cmnd\n{\nhop=1\nsource=guigui-chauffage." +hostname+"\ntarget=*\n}\nhomeeasy.basic\n{\naddress=0x1111bb\nunit=1\ncommand=" +ordre+ "\n}\n"
  xpladdr = ("255.255.255.255",3865)
  UDPSock.sendto(msg,xpladdr)
 
 
# Connexion MySQL
try:
  db = MySQLdb.connect(host="localhost", user="sonde", passwd="sonde", db="sondes")
except :
  print "connexion refusée"
  sys.exit(1)
 
c = db.cursor()
c.execute("SELECT sensorValue from sensor where sensorType='TempSalon' ORDER BY idx DESC limit 1")
 
rows = c.fetchall()
for row in rows:
    tempsalon = float(row[0])
 
c.execute("SELECT sensorValue from sensor where sensorType='TempSdb' ORDER BY idx DESC limit 1")
 
rows = c.fetchall()
for row in rows:
    tempsdb = float(row[0])
 
c.execute("SELECT sensorValue from sensor where sensorType='TempAutre' ORDER BY idx DESC limit 1")
 
rows = c.fetchall()
for row in rows:
    tempautre = float(row[0])
 
c.close()
 
if tempsalon < minitemp or tempsdb < minitemp or tempautre < minitemp :
  ordre = "on"
  xplmsgcmnd(ordre)
  sys.exit(0)
 
if tempsalon <= consignesalon or tempsdb <= consignesdb:
  ordre = "on"
  xplmsgcmnd(ordre)
 
if tempsdb > consignesdb and tempsalon > consignesalon:
  ordre = "off"
  xplmsgcmnd(ordre)

Et voila, un thermostat d’ambiance beaucoup plus fin que ceux que l’on trouve dans le commerce (car il prend en compte plusieurs températures et non pas seulement la température de la pièce de référence) et comble du luxe, comme je connais également la température extérieure, je peux peaufiner ma demande (inertie des radiateurs, baisse plus ou moins rapide de la chaleur de la pièce etc…)

C’est très DIY je l’avoue, mais c’est très amusant à faire (et en plus ça permet de faire des économies 😀 )

Amusez vous bien 🙂

Ce billet a été posté dans domotique, geekerie et taggé , . Bookmark ce permalink.

17 commentaires sur “Domotiser son chauffage au fioul

  1. Trés bel article cher confrère. À toi le confort de la température régulée et les économies de fiou!

  2. Des Oreilles de Cisco !
    Ah la récup… tout un art !
    Bien joué en tout cas, bon article 🙂

  3. Enorme cet article,
    Avec carrement le code en python,
    dommage pour la version allégé, mais bon je comprends que vous n’ayez pas voulu surcharger. A moins que ce ne soit pour garder une part de mystère 😉
    Merci encore.

  4. Bonjour,
    Juste une question. Je cherche un système qui puisse couper le circulateur primaire (laddomat taré à 63°C) de mon installation de chauffage central avec chaudière bois lorsque la température de la chaudière est EN-DESSOUS de 60°C.
    Pourquoi ?
    L’installation est équipée d’un ballon tampon de 1.000 litres chauffé à ~85-90°C avec une chaudière fonte de 400 kgs à 100°C en fin de feu le soir. La chaudière met 6H pour descendre de 100° à 60°C. Le circulateur primaire tourne toute la nuit, parce qu’il permet de réchauffer l’eau du retour radiateurs en la recyclant et réchauffant dans la chaudière plutôt que d’avoir un circulateur arrêté et un ballon tampon qui se vide plus rapidement du fait du retour tiède des radiateurs.
    Par -10°C, en laissant tourner le laddomat toute la nuit, les radiateurs sont à 40°C, la chaudière à 60°C et le ballon tampon à 60°C le matin. Lorsque je coupe le laddomat le matin avant rallumage du feu, je dispose encore d’une réserve de 2 heures de chauffage en faisant descendre le ballon ) 40°C, mais je dois le faire manuellement.
    Donc, l’idée, c’est de trouver un système qui coupe automatiquement le laddomat lorsque la température de sortie chaudière est EN-DESSOUS de 60°, parce qu’à ce moment, lorsqu’il y a équilibre entre chaudière et ballon, le laddomat renvoie tout à la chaudière pour la maintenir à son minimum et la pompe secondaire ne fait que recycler l’eau de retour des radiateurs, alors qu’en coupant le laddomat à ce moment là, je prélève dans le ballon. Et ce même système doit alimenter électriquement le laddomat lorsque la température de l’eau sortie chaudière est AU-DESSUS de 60°C AU RALLUMAGE DU FEU.
    Merci par avance.

  5. Bonjour,
    Alors je ne suis absolument pas chauffagiste :p Mais de ce que comprend de la demande, la seule façon de réaliser cela est de pouvoir récupérer la valeur du thermometre.
    Je ne sais pas comment marche le systeme mais il faut juste trouver un moyen de récuperer cette valeur (une borne de communication quelconque sur laquelle se brancher sur la chaudière ?) après c’est juste un script pour allumer/eteindre un relais.
    Je ne peux que vous inviter à contacter l’installateur et/ou fabricant pour savoir s’il est possible de recuperer cette information de température par un moyen ou un autre.

  6. Bonsoir,
    Merci pour la réponse. La chaudière est un modèle basique à tirage naturel VIADRUS Hercule U-26 entièrement en fonte. C’est une bête robuste et ça fonctionne parfaitement. Elle n’est équipée d’aucune électronique (je n’en voulais pas), simplement d’un manomètre-thermomètre plongeur dans le corps de chauffe qui donne la température interne et la pression.
    J’ai installé un thermomètre applique au départ eau chaude chaudière qui me sert de référence et permet en même temps de contrôler le rendement. Alors, comment récupérer cette mesure en sortie chaudière, je n’en sais strictement rien !
    J’ai posé le PB à CEDEO. Ils m’ont vendu un aquastat WATTS WTC-ES , mais ça ne marche pas :
    L’aquastat comprend un commun et 2 branchement possibles :
    – En commun + contact 1, l’aquastat coupe le courant au-dessus de la température de consigne (en l’occurrence 60°).
    – En commun + contact 2, le clic se déplace avec l’élévation de la température et coupe en-dessous. Donc, si je laisse le clic à 60°, la pompe primaire Laddomat est coupée au-delà.
    L’aquastat ne permet pas de résoudre mon problème !

  7. Bah non. comme dit précédemment il te faut un aquastat communicant. Et je ne sais pas si ca existe.
    Le probleme est toujours le meme, il faut etre capable de récuperer la température par IP et/ou ondes radios.

  8. salut,

    je suis dans le même cas que toi, une chaudière fioul qui fonctionne donc pas trop envie d’en changer 🙂
    Grace à un sujet sur le forum de touteladomotique, je vais bricoler une boite qui sera ponter en // de ma régulation.
    ma question, donc, tu préfères que ta chaudière fonctionne continuellement plutôt que de l’éteindre quand tu n’es pas là ?

    Dans mon cas, cela reviendrait à chauffer la maison de 08h à 17h les jours de la semaine (personne ) …

  9. @fab Eteindre une chaudière complètement n’est pas du tout conseillé. Tu vas créer ce qu’on appelle un point de rosée dans ton corps de chauffe, ce qui entrainera une dégradation rapide…
    Je ne chauffe pas la maison quand je ne suis pas là, je maintiens une temperature éco (en dessous d’une certaine différence de degrés, tu vas consommer plus pour atteindre ta température de confort que de laisser une différence de 3/4 degrés).
    De plus, ca me permet de maintenir la température de la chaudière à son minimal requis pour éviter ce point de rosée et de maintenir aussi l’eau chaude.
    http://www.mamaisoneconome.com/MME/Le_chauffage_La_regulation.htm

  10. ok, je pense avoir compris ce que tu voulais dire. En effet, en dehors des heures de chauffe en « confort », ma chaudière passe d’elle même en mode « éco »/ »hors gel ».
    Mon système de controle (éco-control chappee) me permet de programmer sur 7 jours, ce qui me convient assez en mode normal mais quand il s’agit de partir en vacances ou en WE, c’est pas la même chose, d’ou la « domotisation » via un contact sec sur le bruleur ainsi que le circulateur en parallèle à l’éco control.
    Ainsi quand ça se déclenche, je suis en mesure de l’arrêter.
    En revanche, sur une prochaine CG, je vais me laisser tenter par les têtes thermostatiques zwave afin d’être plus pointus.

    Sinon, beau boulot pour ton blog mais aussi tes interventions sur TLD ou sur G+ Sarah 🙂

  11. @fab sacré chaudière de compet’ que tu as 😀

    Merci beaucoup pour tes remerciements, cela me touche 🙂 même si j’ai un peu moins de temps actuellement, je ne désespère pas de reprendre de l’activité au plus vite 😀

  12. Bonjour,

    J’ai plusieurs questions, le fait de laisser la vanne d’eau ouverte au max, ne fait pas consommer plus que si elle était réglée en fonction de la température souhaité? Même si des robinets thermostatiques sont présents?
    Pourquoi est-il obligatoire de laisser un radiateur sans robinet thermostatique?

    Merci pour votre aide.