Un thermostat ou une clim ne contient aucune politique : pas de programme horaire, pas de mode absence. C’est le rôle des règles, qui écrivent la consigne ou le mode du device, comme elles écriraient n’importe quel IO. Cette page donne des recettes complètes. Vous retrouverez la plupart dans des projets d’exemple à télécharger et à ouvrir dans Calaos Installer.
Dans une règle, glissez le device (pas ses IO possédés) dans la zone des actions. Calaos Installer affiche un formulaire à la place du texte libre : un champ par commande que le device accepte (mode, consigne, consigne basse et haute, ventilation, oscillation). Seuls les champs dont le lien existe sur ce device sont proposés ; les bornes et les listes de valeurs viennent du device.
Une action sur « Radiateur bureau » : mode Chauffage, consigne 21 °C.
La valeur enregistrée est un texte :
| Vous voulez… | Valeur de l’action |
|---|---|
| éteindre | off |
| chauffer | heat |
| changer seulement la consigne | {"target_temp":17} |
| mode et consigne ensemble | {"mode":"heat","target_temp":21} |
| régler une plage en mode auto | {"mode":"auto","target_temp_low":20,"target_temp_high":25} |
| ventilation | {"fan_mode":"low"} |
Seuls les champs présents sont appliqués, et un champ invalide est refusé et journalisé sans empêcher les autres. Un bouton permet de repasser en saisie de texte si vous préférez écrire le JSON vous-même. La valeur ne peut pas être « celle d’un autre IO » : pour recopier une valeur dans une consigne, la règle écrit directement l’IO de consigne.
Ne commandez jamais le relais d’un thermostat dans une règle : écrivez son mode (off, heat). Le thermostat remettrait le relais dans l’état voulu, et le journal se remplirait d’avertissements.
Le bureau est chauffé à 21 °C de 7 h 30 à 18 h en semaine, à 17 °C le reste du temps.
{"mode":"heat","target_temp":21}.{"target_temp":17}.
La règle « Bureau : confort en journée » : une condition, une action.
Pensez à une règle de remise en état au démarrage (condition de démarrage) si vous voulez que la consigne soit juste après un redémarrage du serveur.
Quand personne n’est là, tout le chauffage descend à 16 °C ; au retour, on remonte.
{"mode":"heat","target_temp":16}{"mode":"auto","target_temp_low":16,"target_temp_high":28}{"mode":"heat","target_temp":16}{"target_temp":21} sur le bureau et le plancher, {"target_temp_low":20,"target_temp_high":25} sur la PAC.Les actions d’une règle s’exécutent dans l’ordre. Pour réutiliser ces actions depuis un bouton ou une programmation, regroupez-les dans un scénario « Absence » et mettez le scénario en action.
Si la fenêtre du bureau est ouverte, le radiateur s’arrête.
off.heat.La consigne n’est pas touchée : à la fermeture, le thermostat reprend là où il en était.
La nuit, si le salon descend sous 10 °C, la clim chauffe à 17 °C.
Règle « Hors-gel : nuit d’hiver » : conditions, la plage « Nuit » est vraie et « Température salon » < 10 ; action, « Clim salon » reçoit {"mode":"heat","target_temp":17}. Les conditions d’une règle doivent toutes être vraies.
Pour un hors-gel permanent (maison fermée pour l’hiver), mettez la consigne à 7 °C en mode heat : c’est la borne basse par défaut d’un thermostat.
Le circulateur tourne dès qu’une zone demande de la chaleur (ou du froid), et s’arrête quand plus aucune zone ne demande rien.
Pour un plancher chauffant seul, chaque zone est un « Thermostat de chauffage » (émetteur « Plancher chauffant ») dont la sortie est sa vanne. Chaque thermostat a sa propre sortie (une vanne ou un relais par zone ; une sortie ne peut appartenir qu’à un thermostat). Plutôt que de deviner ce que fait le thermostat, les règles lisent ces sorties elles-mêmes : ce sont exactement les relais que la régulation commande.
true ; action, « Circulateur chauffage » allumé. Faites de même pour chaque sortie de chauffage et de refroidissement des autres zones (« PAC cuisine chaud », « PAC cuisine froid », « Plancher chaud », « Plancher froid »).false ; action, « Circulateur chauffage » éteint.Les conditions sont du type Condition sur évènement de sortie (menu + des conditions, après avoir sélectionné la sortie dans l’arborescence) : c’est le type qui sait lire l’état d’un relais. Le type « Condition normale » ne s’applique qu’aux entrées.
La règle « toutes les zones éteintes » : une condition par sortie (la cinquième, « Plancher froid », est sous la liste visible) et l’extinction du circulateur.
Une sortie est allumée si et seulement si le thermostat demande de chauffer ou de refroidir à cet instant. Le mode (heat, cool, auto), la consigne, les durées minimales de marche et d’arrêt, les sûretés (sonde muette, sonde hors limites, point de rosée) et les verrouillages du thermostat décident tous de l’état de la sortie, et la règle ne voit que le résultat. Elle n’a donc pas à connaître le mode : un thermostat en cool ou en auto, ou coupé par une sûreté, se comporte correctement sans règle supplémentaire. À l’inverse, une règle écrite sur l’IO « action » du thermostat (heating) ignore le refroidissement et décale la demande dès qu’une durée minimale retarde la commutation du relais.
Les sorties ne sont jamais écrites par ces règles, seulement lues : le circulateur est la seule sortie qu’elles commandent.
La maison a neuf zones de plancher hydraulique et une pompe à chaleur (PAC) réversible : l’hiver elle fait de l’eau chaude, l’été de l’eau froide. Elle se commande par deux contacts secs, « demande de chaud » et « demande de froid », qui ne doivent jamais être fermés ensemble. Chaque zone a une seule électrovanne, la même pour le chaud et le froid. Six zones peuvent rafraîchir ; la salle de bain, l’entrée et la buanderie ne font que chauffer.
Ce projet complet est téléchargeable : vous pouvez l’ouvrir dans Calaos Installer en lisant cette recette.
Une vanne ouverte laisse passer l’eau ; c’est la PAC qui décide si elle est chaude ou froide. Chaque zone a son thermostat, qui ouvre sa vanne quand la pièce a besoin d’eau : en mode chaud quand la pièce est trop froide, en mode froid quand elle est trop chaude. Le thermostat doit donc avoir le bon mode, et il ne connaît pas celui de la PAC (voir La vanne de zone).
Un seul réglage décide du sens pour toute la maison : la variable « Mode plancher ». Des règles le recopient dans chaque zone, puis allument le bon contact de la PAC dès qu’une vanne est ouverte :
L’été, on passe « Mode plancher » à 2 : un seul geste, et les règles mettent chaque zone en froid.
Pour chaque zone, ajoutez un device avec le modèle Zone de plancher réversible (voir Créer un device) : la sonde de la zone, sa vanne (une vanne par zone : une sortie n’a qu’un thermostat) et les modes.
modes vaut off,heat,cool.modes vaut off,heat. Elles refusent le mode froid.
« Plancher séjour » : chaud et froid, avec une sonde d’humidité.
« Plancher salle de bain » : chaud seulement.
Créez aussi les deux relais de la PAC, « PAC demande chaud » et « PAC demande froid ». Ce sont de simples sorties : aucun thermostat ne les possède, seules les règles de l’étape 3 les commandent.
Neuf zones, leurs vannes, les deux contacts de la PAC et la variable « Mode plancher ».
Créez une variable interne de type entier, « Mode plancher », valeur initiale 0, avec Sauvegarder coché pour qu’elle survive à un redémarrage.
| Valeur | Mode de la maison |
|---|---|
| 0 | arrêt |
| 1 | chaud |
| 2 | froid |
Trois règles la recopient dans les zones. Voici celle de l’été, « Plancher : mode froid » :
cool ;off : elles ne rafraîchissent pas, elles s’éteignent.Dès que « Mode plancher » passe à 2, cette règle s’exécute et met les neuf zones dans le bon mode : vous ne touchez à aucune pièce. Ses deux sœurs sont construites de la même façon :
| Règle | Condition | Actions |
|---|---|---|
| Plancher : arrêt général | « Mode plancher » == 0 | chaque zone reçoit off |
| Plancher : mode chaud | « Mode plancher » == 1 | chaque zone reçoit heat |
| Plancher : mode froid | « Mode plancher » == 2 | six zones reçoivent cool, les trois autres off |
La règle « Plancher : mode chaud » : une condition sur la variable, neuf actions.
« Mode plancher » se change comme tout IO : rendez-la visible pour la régler depuis les interfaces, mettez-la dans un scénario « Été » ou « Hiver », ou faites-la changer par une règle (calendrier, température extérieure).
La PAC ne doit produire que si une zone a besoin d’eau, et dans le bon sens :
Les règles lisent donc les vannes, comme pour le circulateur de la recette 5 :
| Règle | Conditions | Actions, dans cet ordre |
|---|---|---|
| PAC chaud : vanne zone ouverte (neuf règles) | vanne zone == true et « Mode plancher » == 1 | « PAC demande froid » éteint, puis « PAC demande chaud » allumé |
| PAC froid : vanne zone ouverte (six règles, les zones qui rafraîchissent) | vanne zone == true et « Mode plancher » == 2 | « PAC demande chaud » éteint, puis « PAC demande froid » allumé |
| PAC : toutes les vannes fermées | les neuf vannes == false | « PAC demande chaud » et « PAC demande froid » éteints |
Les conditions sur les vannes sont du type Condition sur évènement de sortie (comme pour le circulateur), celle sur la variable une Condition normale.
Les deux contacts ne peuvent jamais être allumés ensemble :
Une vanne s’ouvre en mode chaud : le contact « froid » est éteint, le contact « chaud » allumé.
La même zone en mode froid.
Les neuf vannes fermées : la PAC n’a plus de demande.
Au passage du chaud au froid, le contact suit tout de suite le nouveau mode si une vanne est encore ouverte. Les vannes ouvertes pour chauffer se ferment à la fin de leur durée minimale de marche (15 minutes), puis se rouvrent pour rafraîchir après leur durée minimale d’arrêt. Pour que tout s’arrête d’abord, passez par 0 : l’arrêt ferme les vannes tout de suite.
En plein hiver, quelqu’un met le séjour en froid depuis son téléphone. Sans règle, le séjour ouvrirait sa vanne dès qu’il fait trop chaud, la PAC (en chaud) enverrait de l’eau chaude, et la pièce se réchaufferait en voulant se rafraîchir.
Une règle par zone et par sens remet la zone dans le mode de la maison dès que son mode change :
| Règle | Conditions | Action |
|---|---|---|
| Plancher zone : retour en chaud (six zones) | zone == cool et « Mode plancher » == 1 | zone reçoit heat |
| Plancher zone : retour en froid (neuf zones) | zone == heat et « Mode plancher » == 2 | zone reçoit cool (off pour une zone qui ne rafraîchit pas) |
La condition sur zone est une Condition sur évènement de sortie sur le device lui-même (sélectionnez le device dans l’arborescence, pas un de ses IO) : la valeur comparée est son mode.
Pendant cet aller-retour, rien ne bouge sur l’installation :
Une zone mise à off à la main n’est jamais touchée par ces règles.
Le séjour passé en froid pendant la saison de chauffe revient en chaud.
Je passe une zone en froid alors que la PAC chauffe ?
La règle « retour en chaud » de la zone la remet aussitôt en heat. La pièce continue de chauffer normalement. Pour rafraîchir, c’est toute la maison qui passe en froid.
Comment passer en été ? Mettez « Mode plancher » à 2, depuis les interfaces, un scénario ou une règle. La règle « Plancher : mode froid » met les six zones en froid et éteint les trois autres. Pour revenir en hiver, mettez-la à 1.
Comment éteindre une seule pièce ?
Mettez sa zone en off, depuis les interfaces ou une règle : les règles de retour ne la touchent pas. Elle reste éteinte jusqu’au prochain changement de « Mode plancher », qui remet chaque zone dans le mode de la maison.
Et sans sonde d’humidité ?
Le froid reste permis. Sans sonde, le thermostat ne peut pas éviter la condensation : c’est la PAC qui doit garder l’eau au-dessus du point de rosée. Le serveur le rappelle au chargement par un avertissement pour chaque zone sans sonde (« cooling has no dew-point cut ») : c’est attendu. Une zone avec sonde (le séjour, ici) coupe son froid dès que l’humidité atteint humidity_max ; sa vanne se ferme et les contacts de la PAC suivent, sans règle de plus. Voir Thermostat interne.
Le ballon d’eau chaude sanitaire est chauffé par la même pompe à chaleur, mais il ne dépend ni des zones ni du mode de la maison.
L’eau chaude est un thermostat indépendant, avec sa sonde et son relais, qui n’a aucun lien avec les neuf zones et qu’aucune des règles précédentes ne lit. C’est la demande d’eau chaude de la pompe à chaleur, que le thermostat commute tout seul.
Créez la sonde du ballon et le relais de demande d’eau chaude, puis un Thermostat de chauffage. L’émetteur n’a pas d’équivalent pour un ballon : choisissez « Radiateurs à eau » (300 s de marche et d’arrêt minimaux), puis adaptez.
« Eau chaude sanitaire » : la sonde du ballon et le relais de demande.
Dans l’éditeur de device, relevez ce que les modèles règlent pour une pièce :
| Paramètre | Modèle | Pour un ballon | Pourquoi |
|---|---|---|---|
valid_max | 60 | 95 | à 60 °C, une sonde de ballon correctement chaude serait jugée « hors limites » et couperait la production |
valid_min | -30 | 5 | une sonde débranchée ou en court-circuit sort de ces bornes |
hysteresis | 0,5 | 3 | un ballon a de l’inertie : évitez les redémarrages courts |
Les paramètres de « Eau chaude sanitaire ».
Relevez la consigne maximale : la consigne d’un thermostat est une variable interne limitée à 30 °C par défaut. Ouvrez ses propriétés dans l’arborescence et réglez value_max à 65 (et la valeur à 55 par exemple) : une consigne de 55 °C serait sinon ramenée à 30 °C.
La consigne de l’eau chaude : bornes relevées.
Le relais de demande appartient au thermostat : n’écrivez que son mode dans les règles (par exemple off pour n’autoriser l’eau chaude qu’à certaines heures, comme dans la recette 1). Il n’a pas de rapport avec « PAC demande chaud » et « PAC demande froid », que seules les zones commandent.