Page 1 sur 1

[LUA] Régulation température par thermostat

Publié : 30 juil. 2017, 18:05
par Wospi
Bonjour à tous,

Jusqu'ici, je régulais ma clim avec un petit blockly qui prenait en compte la température de la pièce (la chambre) et qui maintenant la température entre 20 et 21 degrès par exemple.

Maintenant, j'aimerai avoir un thermostat sur Domoticz qui me permet de définir la température de consigne de la chambre et calculer l'hysteresis associé, chose impossible à faire avec Blockly.

Jusqu'ici, je sais que la température de consigne est bien prise en compte (dans le log, j'obtiens la valeur que j'ai défini en thermostat). Par contre, impossible d'allumer ou d'éteindre la clim !

Je pense que c'est une histoire de if ou elseif ou encore d'imbrication avec "and" ....

Help ! :roll: :roll: :roll: :roll:

Code : Tout sélectionner



-- Wospi 2017 d'après Alexandre DUBOIS 2014
-- Maintien d'une température de consigne pour le climatiseur 

--------------
-- VARIABLES--
--------------

local sonde = 'Chambre' -- Définition de la sonde de température
local hysteresis = 0.5 -- Définition de la valeur d'hystéresis
local climatiseur = 'Climatiseur'  -- Définition du switch contrôlant la clim
local consigne = tonumber(otherdevices_svalues['Thermostat chambre']) -- Récupérer la valeur de consigne du thermostat
 
--------------
--- SCRIPT ---
--------------

commandArray = {}
print('Initialisation Climatiseur')
print('Valeur consigne :')
print(consigne)
if (devicechanged[sonde]) then
	local temperature = devicechanged[string.format('%s_Temperature', sonde)] --Temperature relevée dans la chambre
    	if (temperature > (consigne + hysteresis) and climatiseur=='Off') then
            print('Allumage du climatiseur dans la chambre')
            commandArray[climatiseur]='On'
       
end
	    if (temperature < (consigne - hysteresis) and climatiseur=='On') then
	        print('Extinction du climatiseur dans la chambre')
            commandArray[climatiseur]='Off'
end
end
   
return commandArray

Re: [LUA] Régulation température par thermostat

Publié : 30 juil. 2017, 18:11
par Wospi
PS : je précise que le script a besoin de connaitre si la clim est déjà en route ou pas car c'est un pilotage par infrarouge (LIRC) et le signal ON est le même que OFF

Re: [LUA] Régulation température par thermostat

Publié : 30 juil. 2017, 18:52
par Wospi
Pour répondre à moi même... le "device" nommé "Climatiseur" doit être nommé "otherdevice".

Voici les quelques lignes de code :

Code : Tout sélectionner

--------------
-- VARIABLES--
--------------

local sonde = 'Chambre'
local hysteresis = 0.5
local climatiseur = 'Climatiseur' 
local consigne = tonumber(otherdevices_svalues['Thermostat chambre'])
 
--------------
--- SCRIPT ---
--------------

commandArray = {}

if (devicechanged[sonde]) then
	local temperature = devicechanged[string.format('%s_Temperature', sonde)] --Temperature relevée dans la chambre
    	if (temperature > (consigne + hysteresis) and otherdevices['Climatiseur']=='Off') then
            print('Allumage du climatiseur dans la chambre')
            commandArray[climatiseur]='On'

	    elseif (temperature < (consigne - hysteresis) and otherdevices['Climatiseur']=='On') then
	        print('Extinction du climatiseur dans la chambre')
            commandArray[climatiseur]='Off'
end
end
   
return commandArray