Wiki CgX

Parce que j'ai un cerveau, mais pas trop.

Outils pour utilisateurs

Outils du site


it:domotique:domoticz:consigne

Créer un thermostat avec une consigne

Comment ça marche ?

Le système a besoin de 4 entités Domoticz et d'un script de commande :

  • Le thermomètre (°C) : Mesurer la température actuelle de la pièce
  • La consigne (°C) : La température demandée pour la pièce.
  • Le thermostat (On/Off) : Interrupteur permettant d'appliquer la consigne ou pas.
  • Le chauffage (On/Off) : L'élement de chauffage
  • Le script Lua qui va bien

Dans Domoticz, le thermomètre et le chauffage sont des élements réels. Le thermostat et la consigne, par contre, sont des élements virtuels.

Exemple concret

On veut avoir une pièce à 20°C : on règle la consigne à cette température.

On défini une marge d'action qui est en degrés : prenons par exemple 1/2 degré Celsius.

  • Si l'interrupteur du Thermostat est à “On” : On applique la consigne.
    • Si la température actuelle est inférieure à la consigne moins la marge (19.5°C), on allume le chauffage (si il était éteint)
    • Si la température actuelle est supérieure à la consigne plus la marge (20.5°C), on éteint le chauffage (si il était allumé)
  • Si l'interrupteur du Thermostat est à “Off” : On on éteint le chauffage (si il était allumé)

Avec ce principe, si la température naturelle de la pièce est relativement stable et le chauffage efficace, sans latence, la température de la pièce thermostatée oscillera entre 19,5°C et 20,5°C Dans les faits c'est rarement vrai (à cause de la latence du chauffage, de l'éloignement du thermomètre, et de l'isolation de la pièce)

Le script Lua

Ici, le script gère également un paramétrage supplémentaire si la commande “On” ou “Off” n'a pas fonctionné (on n'a pas de feedback en RFXCOM). Si la température excède de 1.5°C les limites atteintes par la tolérance (quelque soit le sens), on envoie la commande adéquate à chaque itération du script jusqu'au retour à la normale.

thermostat.lua
local hysteresis = 0.5 --Valeur de tolérance (hystérésis)
local sonde = 'Thermomètre de la piece' --Nom de la sonde de température
local thermostat = 'Interrupteur Thermostat' --Nom de l'interrupteur virtuel du thermostat
local radiateur = 'Radiateur' --Nom du radiateur à allumer/éteindre
local deviceconsigne = 'Consigne de la piece'
 
-- -------------------------------------------------------------------------------------------------
 
commandArray = {}
 
--La sonde emet toutes les 40 secondes. Ce sera approximativement la fréquence d'exécution de ce script.
 
if (devicechanged[sonde]) then
    local consigne = otherdevices[deviceconsigne] -- Récupération de la température de consigne
	local temperature = devicechanged[string.format('%s_Temperature', sonde)] --Temperature relevée dans la pièce
 
    --On n'agit que si le "thermostat" est actif
    if (otherdevices[thermostat]=='On') then
    	if (temperature <= (consigne - hysteresis) and otherdevices[radiateur]=='On') then
            print('Allumage du chauffage dans la pièce')
            commandArray[radiateur]='Off'
	elseif (temperature >= (consigne + hysteresis) and otherdevices[radiateur]=='Off') then
		print('Extinction du chauffage dans la pièce')
	elseif (temperature <= (consigne - hysteresis - 1.5)) then
		commandArray[radiateur]='Off'
	elseif (temperature >= (consigne + hysteresis + 1.5)) then
		commandArray[radiateur]='On'
	end
   -- Extinction immédiate du chauffage si on a arrété le thermostat
    elseif (otherdevices[thermostat]=='Off' and otherdevices[radiateur]=='Off') then
	        print('Thermostat Désactivé : Extinction du chauffage dans la pièce')
            commandArray[radiateur]='On'
    end
end
 
return commandArray

ATTENTION : Dans ce script, l'interrupteur Chacon utilisé pour le chauffage en “Fil pilote” marche à l'envers.
Il faut être à “Off” pour l'allumer et “On” pour l'éteindre !

Remarques et astuces

Pour faire des économies de chauffage, le plus simple à partir de là, est d'appliquer une planification au Thermostat. Déterminez le temps nécéssaire à la chauffe d'une pièce depuis sa température naturelle : mettons 1h.

Pour une chambre à coucher

On pourrait planifier comme ceci :

  • 1h avant de se coucher ⇒ jusqu'a 1h après : Pour être confortable au coucher.
  • 1h avant de se lever ⇒ Jusqu'au lever: Pour être au chaud au réveil.

Pour une pièce à vivre

On pourrait planifier comme ceci :

  • 1h avant une activité de présence

Prenez en compte les week-ends pour adapter vos heures !

Privilégiez aussi les heures creuses si votre compteur électrique en tient compte !

it/domotique/domoticz/consigne.txt · Dernière modification : 02 Jun 2023 :: 15:49 de CgX