Régulation d’un vieux chauffage sous GNU/Linux

, par  Ecran Plat , popularité : 2%

Quand on possède une ancienne demeure dont les thermostats des radiateurs ne régulent plus, le chauffage central fonctionne très mal. Il faut un peu d’ingéniosité et Linux pour restaurer à moindre frais une situation acceptable et même plutôt satisfaisante.

Cet article explique comment concevoir et réaliser une régulation en agissant sur la pompe de circulation du liquide caloporteur. Après avoir décrit les difficultés rencontrées, un dernier chapitre fait un rapide bilan de l’opération.

Vous saurez ainsi comment parvenir à cette performance au moindre coût. Le nouveau système de régulation est même très rentable !

NdM : merci à Ecran Plat pour son journal. L’équipe de LinuxFr.org est preneuse de ce genre de retours d’expérience, alliant une utilisation de logiciels libres à une application originale.

Sommaire

Prologue

En août 2011 nous avons acheté (enfin avec l’aide de la banque) une jolie maison dans un village en agglomération d’une petite ville de Suisse Romande (Delémont).
La maison est dans un quartier très calme qui à été construit dans les années 1970.

Courant octobre, nous nous sommes intéressés au chauffage : en effet, il est d’origine et il devra être changé en 2017 (il ne sera plus aux normes). C’est un chauffage central avec brûleur à mazout, le circuit d’eau de chauffe est en monotube (une particularité des années septante), les radiateurs sont équipé de vannes thermostatiques.

Après un essai du chauffage lors d’un froid passager en octobre, il s’est avéré que les vannes thermostatiques ne fonctionnaient plus, donc plus de régulation de la température.
Nous avons fait venir un installateur de sanitaires que nous connaissons (nous avons confiance en lui). Il nous a appris que les vannes étaient intégrées aux radiateurs (économie stupide dans les années septante) et que, par conséquent, il faut changer les radiateurs pour mettre des modèles standard qui permettent le changement de vanne.

Comme les finances sont actuellement à un niveau bas (ça coûte, une maison), je me suis demandé si je ne pourrais pas réguler le chauffage différemment et à bon marché.

Le principe de la régulation

Pour réguler mon vieux chauffage, je ne peux pas piloter la vanne trois voies, elle n’est pas motorisée, donc je me suis dis que je devais faire la régulation sur le circulateur (la pompe qui envoie l’eau chaude dans les radiateurs).

Je mesure la température en dehors et au salon : si la température dehors est à plus de 18°C, je désactive mon chauffage. Pour la température intérieure, j’ai deux modes : le mode présent et le mode absent. En mode présent, si la température descend en dessous de 20°C, je chauffe (je mets sous tension mon circulateur) et dès qu’elle passe en dessus de 21°C je coupe le courant au circulateur. En mode absent, c’est respectivement 17°C et 18°C.

Le salon est la pièce de vie la plus basse de la maison (en dessous, il y a mon bureau où la température arrive à 18°C ce qui me convient parfaitement). Les chambres à coucher et la salle de bain sont un demi-étage plus haut. Le salon est la plus grande pièce ; il y a également la cuisine et la salle à manger. Donc, s’il fait bon au salon, il fait automatiquement bon dans les chambres (la vanne de notre chambre à coucher est la seule qui fonctionne, donc elle est fermée en permanence).

Nous avons même programmé le chauffage pour qu’il repasse en mode présent 30 min avant qu’on se lève.

Mise en oeuvre

Le matériel utilisé

  • un Zotac Zbox (un Atom dedans) qui me sert de serveur multi-média (subsonic, xbmc,...) sous Ubuntu 10.10 ;
  • un Telldus duo (pour émettre) ;
  • un Rfxcom usb receiver (pour recevoir) ;
  • des sondes Orégon scientific (pour mesurer la température) ;
  • des interrupteurs sans fils (j’ai du chacon et de l’intertechno) ;
  • une télécommande sans fils intertechno (pour exécuter des scripts sur le pc).

Pourquoi avoir mis un Telldus duo et un Rfxcom ?

Effectivement, le Telldus duo a un récepteur interne, mais c’est une calamité avec mes sondes Orégon : il n’en recevait qu’une et ce, par intermittences, donc inutilisable.

Les logiciels utilisés

  • GNU/Linux Ubuntu 10.10 ;
  • TelldusCenter : pour envoyer des ordres à l’émetteur ;
  • XPL-Perl : pour recevoir les infos depuis le récepteur ;
  • PHP-CLI : pour la régulation que j’ai écrite en PHP ;
  • Apache : pour afficher les graphes et ma télécommande html pour mon Android ; j’en ai profité pour domotiser quelques truc secondaires ;
  • RDD et MySQL : pour la partie statistiques, RDD faisant de jolies graphes et MySQL enregistrant tout ce qui concerne le chauffage pour d’hypothétiques statistiques futures ;
  • Cron : pour automatiser la création des graphes tous les 5 minutes, lancer le script PHP de régulation tous les 2 minutes et passer le chauffage en mode absent la nuit ; pendant les fêtes, il allumait les décorations de Noël ;

Pourquoi avoir utilisé PHP ?

C’est le seul language que je maîtrise bien, et j’ai l’habitude d’utiliser PHP-CLI pour plein de petits scripts « faits maison... au taf ».

Difficultés rencontrées

C’est le manque de documentation sur les forums francophones : ça ne jure que par la Zibase (un truc qui ne peut que discuter avec les serveurs du fabricant) ou homeway (un soft propriétaire sous Windows). La documentation de XPL-Perl est minimaliste, oui, il est bien expliqué comment acquérir les données que le Rfxcom reçoit. Mais après : que faire avec une fois que les données sont transformées en trame XPL ?
Il y a des scripts pour faire des graphes RDD, d’autres pour engraisser une base de donnée MySQL.

J’ai pris le script xpl-logger, je l’ai modifié pour que, à chaque trame qu’il reçoit, il me lance un script PHP avec la trame dans une variable. Dans mon script PHP, j’analyse les contenus : si c’est une de mes sondes de température, j’enregistre la valeur mesurée dans un fichier plat. Ce dernier est écrasé à chaque fois ; ces fichiers seront utilisés par mon script de régulation. J’enregistre également la valeur dans une table MySQL avec le timestamp actuel : si c’est un bouton de ma télécommande, je lance la commande voulue.

Pourquoi ne pas avoir utilisé un logiciel tel que Domogik ou heyu ?

Pour deux raisons :

  1. Domogik : je ne suis pas arrivé à le lancer ! Bon, je n’ai pas insisté à cause de la raison deux.
  2. Ca fait des années que je bricole avec PHP. J’ai fait du web, j’ai écrit des applications web pour des clients, mais je n’avais jamais réussi à faire quelque chose qui sorte de l’informatique. Mes scripts PHP, sans web ce n’est rien : ils ne servent à rien d’autre et c’est frustrant, j’avais envie une fois de faire quelque chose qui pilote quelque chose de réel, alors programmer un thermostat c’était l’idéal.

Épilogue

Ça fait deux mois que ça tourne et que cela fonctionne parfaitement bien :

  • il fait toujours bon dans la maison ;
  • les graphes montrent que la maison est bien isolée (elle ne perd pas beaucoup durant la nuit) ;
  • même par grand froid, le circulateur ne s’est jamais enclenché pendant la nuit.

Les anciens propriétaires brûlaient 2500 litres de mazout par année. Nous, en 6 mois, avons brûlé 600 litres et j’espère pouvoir économiser 700L. Au niveau consommation électrique, l’informatique consomme environ 30W, le circulateur 60W quand il tourne : le bilan est donc positif.

Lire les commentaires

Cet article est repris du site http://linuxfr.org/news/r%C3%A9gula...

Sites favoris Tous les sites

84 sites référencés dans ce secteur