Page 1 sur 1

script chauffage

Publié : 30 déc. 2016, 22:00
par sphinxou
bonsoir
j'ai ce script je tente de le modifier mais je ne trouve pas.

le script fonctionne très bien mais quand mon chauffage s'allume dans les logs de l'interrupteur du radiateur il passe à on à chaque émission de le sonde de température.
comment faire pour que si le radiateur est déjà à on il ne fait rien??

merci pour votre aide!!!!



Code : Tout sélectionner

-- Alexandre DUBOIS - 2014
-- Ce script permet de maintenir la température de SDB entre 19°C et 21°C quand l'interrupteur
-- virtuel 'Thermostat SDB' est activé.
--------------------------------
------ Variables à éditer ------
--------------------------------
local consigne = tonumber(otherdevices_svalues['thermostat sdb'])  --Température de consigne
local hysteresis = 0.5 --Valeur seuil pour éviter que le relai ne cesse de commuter dans les 2 sens
local sonde = 'salle de bains' --Nom de la sonde de température
local thermostat = 'Planning chauffage SdB' --Nom de l'interrupteur virtuel du thermostat
local radiateur = 'Chauffage SdB' --Nom du radiateur à allumer/éteindre
--------------------------------
-- Fin des variables à éditer --
--------------------------------

commandArray = {}
--La sonde Oregon 'Salon' emet toutes les 40 secondes. Ce sera approximativement la fréquence 
-- d'exécution de ce script.
if (devicechanged[sonde]) then
	local temperature = devicechanged[string.format('%s_Temperature', sonde)] --Temperature relevée dans le salon
    --On n'agit que si le "Thermostat" est actif
    if (otherdevices[thermostat]=='On') then
        print('-- Gestion du thermostat salle de bains --')

    	if (temperature < (consigne - hysteresis) ) then
            print('Allumage du chauffage salle de bains')
            commandArray[radiateur]='On'
            
	    elseif (temperature > (consigne + hysteresis)) then
	        print('Extinction du chauffage salle de bains')
            commandArray[radiateur]='Off'

	    end
    end
end

if (devicechanged[thermostat]=='Off') then
    commandArray[radiateur]='Off'
end


return commandArray

Re: script chauffage

Publié : 30 déc. 2016, 22:06
par thier
tu peux modifier if (temperature < (consigne - hysteresis) ) then
par
if (temperature < (consigne - hysteresis) and otherdevices[Chauffage SdB]=='Off' ) then
Et à mon avis la même modif (mais avec =='On') pour elseif (temperature > (consigne + hysteresis)) then car il va te dire qu'il éteint ton radiateur à chaque cycle du programme.

Re: script chauffage

Publié : 30 déc. 2016, 22:48
par vil1driver
Salut,

Tu peux aussi voir les re émissions comme une sécurité..

Re: script chauffage

Publié : 03 janv. 2017, 21:51
par sphinxou
bonsoir

désoler avec les fêtes pas le temps de répondre

merci sa marche nikel

Re: script chauffage

Publié : 08 janv. 2017, 18:50
par vwstepha
Salut
Je debute et je galere
Pourrais tu mettre l'integralite du script modifié?
Merci d'avance!! :mrgreen:

Re: script chauffage

Publié : 08 janv. 2017, 20:04
par sphinxou
bonsoir
ci joint le script modifier

Code : Tout sélectionner

-- Ce script permet de maintenir la température de salon entre 19°C et 21°C quand l'interrupteur
-- virtuel 'Thermostat SDB' est activé.
--------------------------------
------ Variables à éditer ------
--------------------------------
local consigne = tonumber(otherdevices_svalues['thermostat sdb'])  --Température de consigne
local hysteresis = 0.5 --Valeur seuil pour éviter que le relai ne cesse de commuter dans les 2 sens
local sonde = 'salle de bains' --Nom de la sonde de température
local thermostat = 'Planning chauffage SdB' --Nom de l'interrupteur virtuel du thermostat
local radiateur = 'Chauffage SdB' --Nom du radiateur à allumer/éteindre
--------------------------------
-- Fin des variables à éditer --
--------------------------------

commandArray = {}
--La sonde Oregon 'Salon' emet toutes les 40 secondes. Ce sera approximativement la fréquence 
-- d'exécution de ce script.
if (devicechanged[sonde]) then
	local temperature = devicechanged[string.format('%s_Temperature', sonde)] --Temperature relevée dans le salon
    --On n'agit que si le "Thermostat" est actif
    if (otherdevices[thermostat]=='On') then
        print('-- Gestion du thermostat salle de bains --')

    	if (temperature < (consigne - hysteresis) and otherdevices[radiateur]=='Off') then
            print('Allumage du chauffage salle de bains')
            commandArray[radiateur]='On'
            
	    elseif (temperature > (consigne + hysteresis) and otherdevices[radiateur]=='On') then
	        print('Extinction du chauffage salle de bains')
            commandArray[radiateur]='Off'

	    end
    end
end

if (devicechanged[thermostat]=='Off') then
    commandArray[radiateur]='Off'
end


return commandArray