[LUA] Thermostat simple
Publié : 28 nov. 2017, 23:58
Bonsoir,
je vous partage mon thermostat de chauffage, j'apprend encore le lua, si c'est brouillon soyez indulgent
je vous partage mon thermostat de chauffage, j'apprend encore le lua, si c'est brouillon soyez indulgent
Code : Tout sélectionner
--[[
mon script permet le démarrage d'un poele à granulee par infrarouge (broadlink rm2) et
allume le chauffage dans une hysteresis, c'est une amélioration de ce que j'ai trouvé sur le forum
les points que j'ai amélioré sont :
- l'amélioration du devicechanged sonde avec mon interrupteur OnOff pour empêcher que le script s'execute
à chaque réception de la température sonde
- de l'extinction du chauffage avec mon interrupteur OnOff
--]]
--------------------------------
------ Start of edit section ------
--------------------------------
local consigne = tonumber(otherdevices_svalues['thermostat granulee']) -- Température thermostat
local hysteresis = 2 --Valeur seuil pour éviter que le relais ne cesse de commuter dans les 2 sens
local sonde = 'RM2Temp' --Nom de la sonde de température
local OnOff = 'marche regulation thermostat' --Nom de l'inter virtuel de démarrage de la régulation hysteresis
local radiateur = 'autorisation M ' --Nom du radiateur à allumer/éteindre
--------------------------------
-- End of edit section --
--------------------------------
commandArray = {}
--ma sonde de température qui arrive du broadlink RM2 toutes les 2 min et un interrupteur virtuel autorise le démarrage du script
--pour chauffer ou non.
if (devicechanged[sonde]) and (otherdevices[OnOff]=='On') then
local temperature = devicechanged[string.format('%s_Temperature', sonde)] --Temperature relevée
if (otherdevices[OnOff]=='On') then -- si mon interrupteur est en on tout est ok pour chauffer
print ('-- régulation chauffage actif --')
print ('consigne : ' .. consigne)
print ('hysteresis : ' .. hysteresis)
print ('température : ' .. temperature)
if (temperature < (consigne - hysteresis) and otherdevices[radiateur]=='Off') then
print('Allumage du chauffage')
commandArray[radiateur]='On'
elseif (temperature > (consigne + hysteresis) and otherdevices[radiateur]=='On') then
print('Extinction du chauffage')
commandArray[radiateur]='Off'
end
end
-- si je met mon interrupteur en off 2 choix
--1er si mon radiateur fonctionne il le coupe
--2ème si mon chauffage ne fonctionne pas parce que la température de la pièce est dans l'hysteresis.
-- il m'indique juste qu'il est coupé je crois qu'il ne sert à rien le second choix mais c'est carré.
elseif (devicechanged[OnOff]=='Off') and (otherdevices[radiateur]=='On') then
commandArray[radiateur]='Off'
print ('chauffage extinction')
elseif (devicechanged[OnOff]=='Off') and (otherdevices[radiateur]=='Off') then
print ('chauffage arrêté')
end
return commandArray