Ce script se sert de la fonction intégrée à Homeseer pour gérer des thermostats créer un thermostat qui réagit en fonction d'une ou plusieurs sonde(s) de temperature.
Cela permet de simplifier votre gestion du chauffage car il vous suffit de créer des événements ou d'utiliser l'interface du thermostat pour gérer votre chauffage.
Ce qui a changé:
- Ajout d'une régulation selon la loi d'eau: Normalement reservé aux thermostats couteux, c'est le meilleur système pour gérer les chauffages à eau (radiateurs, plancher chauffants...) suivant la température du circuit d'eau et la température extérieure. Plutôt que de réagir aux variations internes de température, la température de l'eau est en permanance adaptée pour maintenir l'equilibre des besoins en energie de l'habitation, annulant les phénomènes d'inertie. Pour plus d'infos et les détails des calculs, voir ce long post.
- Transformation du mode Aux: il ne sert plus à gerer un module auxiliaire mais devient un mode pour les courtes abscences: c'est la copie du mode Auto mais abaissé d'une valeur prédefinie et modifiable.
- La consigne du mode Hors-gel devient réglable.
- Ajout du mode clim, le fonctionnement est le même mais les commandes sont inversées et la valeur d'abaissement du mode Aux n'est plus abaissée mais ajouté pour gerer tout type de clim.
- Changement dans la configuration des modules à commander pour gerer les instructions de type A1+3+5 Au lieu de A1+A3+A5 pour leur mise en marche/arrêt simultanée plutôt que successive.
- En cas de prise de valeur des sondes dans la string, les caractères °, C et F sont automatiquements filtrés.
- Ajout d'un paramètre Delta optionnel que ce soit pour le fonctionnement normal ou la loi d'eau pour espacer les déclanchements des unités chauffantes.
- Le thermostat fonctionne maintanant sans evènement suplémentaire, le rafraichissement se fait tout seul toute les minutes ou lors d'un changement de paramètre. Je ne peux pas decendre en dessous de 1mn à cause de la limitation integrée à HS, si vous voulez le fixer à quelques seconde, il suffit de créer un evènement de type "recurring" qui appelle le script VThermostat.thm ("GetTemp",device)
- J'ai ôté les boutons Help et Delete n'etant plus necessaires et amélioré le bouton Reset, si vous effectuez le moindre changement dans le fichier ini, ce bouton recharge le thermostat en prenant les changements en compte sans perdre vos configurations de mode et de consigne.
Compatibilité HS2:
Il n'y a plus d'evènement suplémentaire installé et j'ai ôté la configuration par questions, je pense que cela doit fonctionner, l'inconveniant c'est qu'il va falloir pour l'instant configurer manuellement le fichier ini.
EDIT: en phase de test, je lance une nouvelle version compatible prochainement.
INSTALATION:
1/ Téléchargez le fichier VThermostat.thm et placez le dans le répertoire scripts de Homeseer.
2/ Dans les options allez dans 'Device Types' pour ajouter un nouveau type de modules:
- Appelez le 'Thermostat Virtuel' (ou autre)
- Cochez 'Thermostat -> Script:' et indiquez 'VThermostat.thm'
- Decochez le reste et OK

3/ Paramétrages du fichier ini:
Pour ceux qui n'ont pas encore utilisé le thermostat allez dans le repertoire config de Homeseer et créez le fichier VThermostat.ini
Pour les autres supprimez les thermostats installés.
Pour chaque thermostat que vous installez il faut ecrire une ligne dans ce fichiers.
Chaque ligne contient les paramètres d'un thermostat separés par des virgules.
Voici un exemple pour des convecteurs:
- Code: Tout sélectionner
t1,1,31,19,16,8,1,C1,]20,10,,,,,,,,,,
t2,1,31,20,18,8,1,C2,]22,10,,,,,,,,,,
t3,2,31,16,14,8,1,C3,]24,10,,,,,,,,,,
t4,3,31,21,18,8,1,C4+5+6,]13,10,,,,,,,,,,
Les paramètres sont dans l'ordre:
- Le code du thermostat: le code maison et unité du thermostat
- Affichage: 1, 2 ou 3 pour simple, detaillé et complet
- Mode : mode du thermostat, mettez 30
- SetPoint: consigne du mode confort en degrés, ex:20
- CoolSetPoint: consigne du mode eco en degrès, ex:16
- OffSetPoint: consigne du mode Hors-gel (Off dans Homeseer), ex:8
- AuxSetPoint: consigne du mode Aux (retranchée au mode Auto en cas de courte abscence), ex: 1 ou 2
- Devices: codes des modules de chauffage à commander. Pour plusieurs modules, séparez les par le signe - ex:B1-C3.
Pour plusieurs modules d'un même code maison vous pouvez utiliser le signe + pour une mise en marche/arrêt simultanée ex:B1+3+6.
Vous pouvez cumuler les deux: B1-C2+3+6-D2+3
- IntSensor: codes des sondes intérieures, à séparer par le signe + ex:S1+S2.
Si vous voulez ponderer repétez chaque code un nombre de fois egal à sa pondération ex: S1+S1+S1+S2+S3+S3
- IntFactor: multiplicateur appliqué à la température de la sonde pour être stockée dans sa value.
En effet même si la sonde affiche une valeur comme 17,6 sa valeur est stockée en entier comme 176.
Pour le savoir, vous pouvez utiliser le script Couteau Suisse.
Ce multiplicateur est souvent 10 pour des valeurs issues de vws et 10000 pour le plugin pour 1-wire.
0 pour prendre la valeur dans la string à condition qu'il n'y ait pas d'autres caractères que °,C et F
- ExtSensor: pareil que pour IntSensor mais pour les sondes extérieures
- ExtFactor: pareil que pour IntFactor mais pour le multiplicateur de ExtSensor
- WatSensor: pareil que pour IntSensor mais pour les sondes d'eau
- WatFactor: pareil que pour IntFactor mais pour le multiplicateur de WatSensor
- RegTemp: Température minimale régionale
- RegWatTemp: Température du circuit d'eau à température minimale régionale
- MinWatTemp: Température minimale du circuit d'eau.
- MaxWatTemp: Température maximale du circuit d'eau.
- Delta: Permet d'espacer dans le temps le déclanchement des modules de chauffage.
- Clim: indiquez 1 si vous commandez une clim plutĂ´t q'un chauffage, rien sinon
Rassurez-vous en fonction de votre chauffage, tous n'est pas Ă indiquer:
(Si vous ne renseignez pas un des paramètres, passez à la virgule suivante)
code du thermostat, Affichage, Mode, les SetPoint, et Devices sont obligatoires.
Ensuite suivant que vous renseignez IntSensor, ExtSensor et WatSensor le thermostat fonctionnera differament:
ExtSensor + WatSensor : Loi d'eau sans correction en fonction de la température intérieure.
ExtSensor + WatSensor + IntSensor : Loi d'eau avec correction en fonction de la température intérieure.
IntSensor : Thermostat normal.
IntSensor + WatSensor: Thermostat normal mais permet de spécifiez des valeurs limites à la température d'eau.
MinWatTemp et MaxWatTemp sont optionnels
Vous pouvez renseigner l'un ou l'autre ou les deux si vous avez renseigné WatSensor.
Dans ce cas le thermostat fera s'arrêter ou démarer les modules pour respecter ces limites.
Util si vous contrôlez en direct une pompe à chaleur pour ne pas depasser la limite de condensation ~45°,
ou par exemple pour ne pas que la température d'une chaudière ne descende en desoous de 50°.
Le Delta est aussi optionnel
Surtout util pour ne pas trop soliciter une pompe à chaleur ou une chaudière commandé en direct.
Par contre vous augmentez les phénomènes d'inertie.
Pour une utilisation de la loi d'eau indiquez une valeur de 0 à 100 de - à + spacé.
Pour une utilisation en thermostat normal, la valeur est au choix, 1 correspondant à 0.1°
RegTemp et RegWatTemp sont Ă renseigner si fonctionnement en loi d'eau.
RegTemp est votre température minimale régionale, vous pouvez la trouver dans la notice d'installation
du thermostat de deltadore sur cette page
Vous y trouverez aussi le placement des sondes en fonction de vos chauffages.
Si votre installation a été correctement dimensionée RegWatTemp est normalement votre température d'eau maxi.
En fait cela correspond à la température d'eau que vous devriez avoir pour maintenir une température intérieure de 20°
quand la température extérieure est égale à votre température minimale régionale.
Pour des températures de départ d'eau cela correspond à peu près à 45° pour un plancher chauffant et 70° pour des radiateurs.
Si vous utilisez des températures de retour d'eau ces températures sont plus basse, de l'ordre de 10 à 20° de moins.
Si vous n'avez pas d'idée sur RegWatTemp voici une methode d'étalonage:
Ne renseignez pas pour l'instant IntSensor pour ne pas que la correction automatique entre en jeu.
Fixez une valeur aproximative pour IntSensor et indiquez une consigne intérieure de 20° en mode confort.
Attendez suffisement de temps pour que le système se stabilise et observez la température intérieure.
Si elle est inférieure à 20° il faut augmenter RegWatTemp, si elle est supérieure le baisser.
Dans ce cas modifiez la valeur dans le fichier ini et utilisez le bouton reset du thermostat.
Recommencez l'opération jusqu'à l'obtention d'une température intérieure d'à peu près 20°
Ensuite vous pouvez renseigner IntSensor dans le fichier ini, appuyer sur reset et fixer votre consigne desirée.
4/ Installation de vos sondes:
Referez-vous au shéma du manuel de deltadore cité plus haut.
Principes de base:
- Pour des convecteurs, panneaux rayonnants, acumlateurs il n'y a pas de difficulté particulière,
vous les pilotez en direct et l'inertie de ce type de chauffage est faible.
- Pour une chaudière ou pompe à chaleur les choses se compliquent:
Vous pouvez les piloter directement si vous n'avez pas de vanne mélangeuse
Sinon, il faudra soit piloter la vanne, soit le circulateur (balon tampon ou plusieurs zones)
Pour piloter une vanne il vaut mieux indiquer comme module Ă commander un device virtuel
et utiliser un evenement qui va mettre sur On votre vanne quand le device virtuel est mis sur On
et la mettre sur Off 1 Ă 2 mn plus tard.
Si vous avez deux zones avec des types de chauffage différents (plancher et radiateurs),
ils n'utilisent pas la même température d'eau d'où la présence d'une vanne mélangeuse.
Le thermostat du plancher doit controler la vanne et il faut placer la sonde en départ d'eau
pour ne pas faire entrer de l'eau trop chaude dans le plancher.
Le thermostat de la zone radiateur peut controler le circulateur ou des robinets thermostatiques,
et la sonde est Ă placer en retour.
Pour deux zones radiateurs, les sondes peuvent êtres placées toutes les deux en retour.
Une astuce pour placer des sondes sur les tuyeaux consiste Ă la placer dans doigt de gant en latex
avec de la graisse thermique le tout scotché au tuyeau.
j'oublis certainement pas mal de trucs, on reviendra dessus ensemble

5/Créez un nouveau module de type 'Thermostat Virtuel', ignorez le numéro de port série, il n'a pas d'incidence.

Le thermostat doit fonctioner.

UTILISATION:
Il n'y a pas de grands changements.
Les modes de Homeseer dans l'interface sont Off/Heat/Cool/Auto/Aux et Fan:On/Auto
ils correspondent Ă Hors-gel/Confort/Eco/Auto/Aux et Auto(Confort)/(Eco)
Le mode Aux n'apparait pas dans l'interface du logiciel mais bien dans l'interface web et les evènements.

En mode Off le thermostat respecte la consigne définie par OffSetPoint
C'est un mode d'abscence prolongée comme les vacances
En mode Heat le thermostat respecte la consigne définie par SetPoint
C'est le mode à choisir lors de la présence dans une pièce.
En mode Cool le thermostat respecte la consigne définie par CoolSetPoint
c'est le mode à choisir lors d'un abscence de moyenne durée.
En mode Auto le thermostat respecte SetPoint si Fan est sur On et CoolSetPoint si Fan est sur Off
Mode utilisé avec une programmation horaire.
Ceux qui ont des chauffages Ă inertie prefereront faire basculer Fan de On Ă Auto en fonction des heures.
Les autres pourront laisser Fan sur Auto et faire varier le CoolSetPoint en fonction des heures
pour une plalette plus large de températures en fonction des heures.
En mode Aux le thermostat respecte la même consigne que pour Auto mais abaissée de la valeur AuxSetPoint
Ce mode sert pour les abscences de courte durée, moins util pour les chauffages à inertie.
Les fonctions possibles que vous pouvez utiliser dans vos script sont:
- VThermostat.thm ("GetTemp",device) -> Renvoi la température intérieure avec gestion des modules.
- VThermostat.thm ("GetInteriorTemp",device) -> Renvoi la température intérieure
- VThermostat.thm ("GetExteriorTemp",device) -> Renvoi la température extérieure
- VThermostat.thm ("GetWaterTemp",device) -> Renvoi la température d'eau
- VThermostat.thm ("GetSetPoint",device) -> Renvoi le SetPoint
- VThermostat.thm ("GetCoolSetPoint",device) -> Renvoi le CoolSetPoint
- VThermostat.thm ("GetOffCoolSetPoint",device) -> Renvoi le OffSetPoint
- VThermostat.thm ("GetAuxCoolSetPoint",device) -> Renvoi le AuxSetPoint
- VThermostat.thm ("GetWaterCoolSetPoint",device) -> Renvoi le WaterSetPoint
- VThermostat.thm ("GetMode",device) -> Renvoi 0/1/2/3/4 pour Hors-gel/Confort/Eco/Auto/Aux
- VThermostat.thm ("GetFan",device) -> Renvoi 0/1 pour Auto(Confort)/Auto(Eco)
- VThermostat.thm ("SetSetPoint",device:valeur) -> Définir le SetPoint, valeur en degrès
- VThermostat.thm ("SetCoolSetPoint",device:valeur) -> Définir le CoolSetPoint, valeur en degrès
- VThermostat.thm ("SetOffSetPoint",device:valeur) -> Définir le OffSetPoint, valeur en degrès
- VThermostat.thm ("SetAuxSetPoint",device:valeur) -> Définir le AuxSetPoint, valeur en degrès
- VThermostat.thm ("SetMode",device:valeur) -> Définir Hors-gel/Confort/Eco/Auto/Aux par les valeurs 0/1/2/3/4
- VThermostat.thm ("SetFan",device:valeur) -> Définir Auto(Confort) Auto(Eco) par les valeurs 0/1"
- VThermostat.thm ("ResetThermo",device) -> Remise Ă zero du thermostat
Bon tests

