Introduction au problème posé :
- Description :
Un thermostat programmable contrôle le chauffage en fonction des données entrées via interface web. En fonctionnement, le thermostat agit sur le chauffage pour faire converger la température ambiante vers la température cible courante.
Le thermostat établit la température ambiante à l’aide d’un capteur de température.
La spécification doit être flexible pour s’adapter aux contraintes suivantes :
- Différentes récupérations de valeurs de température ambiante (via Domogik, via Cmdline)
- Différents types de Carte relais (IP, USB, Série)
- Différents protocoles (Xpl, Linux Cmdline)
Le Thermostat a besoin à tout moment de 6 informations :
- Température ambiante
- Température extérieure
- Température Cible Courante
- Date
- Heure
- Zone
Le Thermostat dépend d’une interface utilisateur sous forme de pages web :
- Une page visualisation avec les éléments suivants :
– Date / Heure
– Zone
– Température de consigne
– Température ambiante
– Témoin de chauffe / activité / non-activé
- Une page de configuration avec les éléments suivants :
– Tableau Semaine
– Tableau Jour (création d’un jour, par exemple: 22°C à 7h, puis 18°C à 22h)
– Configuration Ordre/relais
– Commutateur Saison : hiver / été
– Configuration du système de notification.
Expression fonctionnelle du besoin
- Nom du Système : MonThermostat
- Critères: Contrôler le chauffage de multiples zones avec une grande simplicité sur une semaine (via page web).
- Niveau: Carte Relais modifiée/améliorée pour pouvoir envoyer des ordres au fil pilote.
- Flexibilité : Initialement pour la solution Domogik mais doit être compatible avec toutes les cartes relais (via ligne de commande Linux) et les sondes de température (via ligne de commande Linux).
Solution proposée pour répondre au besoin
Un système en 2 briques:
- Une interface web pour la configuration et la visualisation du thermostat
- Un Démon (Deamon en Anglais) : un programme qui sera lancé en tache de fond, ce dernier sera le lien (logiciel) entre le hardware (ici la carte relais) et l’utilisateur (via l’interface web).
MonThermostat : Fonctionnement du Demon
Je vais décrire ici le fonctionnement simplifié du Démon: pour rappel ce sera un programme qui tournera en tache de fond et qui sera le lien entre l’utilisateur (via l’interface Web) et le Hardware (la carte relais).
Ce programme aura pour entrées :
Ce programme aura pour sorties :
Pour faire simple, le programme activera la mise en marche du radiateur d’une zone donnée en fonction de la température actuelle et de la température de consigne réglée pour l’instant T.
Zone après Zone la boucle ci-dessus sera parcourue. Le programme vérifiera dans un premier temps que la zone en question est « Enable » (active) puis une fonction teste l’état du radiateur (allumé ou éteint) et envoie vers la fonction de test de la consigne de température. Le gros du programme est « la fonction » de test de consigne puisque cette dernière va « checker » et calculer les points suivants :
Comme vous voyez (plus haut), le retour du « Calculateur » est :
Le « Calculateur » aura comme données d’entrées: La Zone et le Statut du Radiateur (en Chauffe ou pas). A partir de là, le programme récupère dans la base toutes les données pour faire les calculs de consigne :
Le programme utilisera les « Adresses » pour obtenir les valeurs actuelles des températures et sondes d’ouverture. A ce moment, le « Calculateur » pourra rendre son verdict en utilisant toutes les données disponibles !
Publié par madomotique le 27 mars 2012 dans Commentaires, Hardware, MonThermostat, Software