--[[
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
Dernière modification par marsflow le 29 nov. 2017, 17:36, modifié 1 fois.
j'ai une question comment on fait pour mettre
print ('-- régulation chauffage actif --')
print ('consigne : ' .. consigne)
print ('hysteresis : ' .. hysteresis)
print ('température : ' .. temperature)
en log si on veut les afficher dans le journal ou pas ???
marsflow a écrit :j'ai une question comment on fait pour mettre
print ('-- régulation chauffage actif --')
print ('consigne : ' .. consigne)
print ('hysteresis : ' .. hysteresis)
print ('température : ' .. temperature)
en log si on veut les afficher dans le journal ou pas ???
j'ai trouvé
dans la partie edit section j'ai mit
local debug = false
ou
local debug = true
--[[
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 = tonumber(otherdevices_svalues['hysteresisReg']) --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
local debug = true --true pour voir le log ou false pour pas l'afficher
--------------------------------
-- 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 --')
if debug then
print ('-- régulation chauffage actif --')
print ('consigne : ' .. consigne)
print ('hysteresis : ' .. hysteresis)
print ('température : ' .. temperature)
end
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