je suis sur l'excellent script de vil1driver (le V1 sans pir) pour la régule du chauffage.
1zone = 1 pièce = 1sonde+1commande de radiateur+un thermostat virtuel+1compteur de conso virtuel
J'ai 5 zone et je m'en sert pour faire des comparatifs (certaines partie de la maison non isolé)
Mais j'aimerai avoir un 6ème compteur virtuel qui totalise les 5 autres.
Es ce possible auriez vous une idée?
Code : Tout sélectionner
-- Ce script permet de maintenir la température
--------------------------------
------ Variables à éditer ------
--------------------------------
local consigne_conf_semaine = 19 -- Température de consigne confort en semaine
local consigne_conf_weekend = 20 -- Température de consigne confort le weekend
local consigne_eco = 17 -- Température de consigne économique
local consigne_abs = 15 -- Température de consigne lors d'abscence prolongée
local sonde = 'salon' -- Nom de la sonde de température
local mode = 'ampli' -- Nom de l'interrupteur virtuel de sélection de mode Off=eco On=confort
local thermostat = 'thermostat' -- Nom de l'interrupteur virtuel de thermostat (Off=abscence prolongée)
local boost = 'boost' -- Nom de l'interrupteur virtuel de de forçage de la consigne en mode weekend
local radiateur = 'radiateur cuisine' -- Nom de l'interrupteur de chauffage
local puissance = 2700 -- puissance du chauffage en watt
local conso = 'conso salon' -- nom du capteur virtuel de consommation électrique
local conso_id = 107 -- idx du capteur virtuel de consommation électrique
--------------------------------
-- Fin des variables à éditer --
--------------------------------
time = os.date("*t")
-- on regarde depuis combien de temps l'inter de mode à changé d'état
t1 = os.time()
s = otherdevices_lastupdate[mode]
year = string.sub(s, 1, 4)
month = string.sub(s, 6, 7)
day = string.sub(s, 9, 10)
hour = string.sub(s, 12, 13)
minutes = string.sub(s, 15, 16)
seconds = string.sub(s, 18, 19)
t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
difference = (os.difftime (t1, t2))
commandArray = {}
local today = os.date("%A")
local temperature = tonumber(string.sub(otherdevices_svalues[sonde],1,4)) -- Température relevée
if (today == "Saturday" or today == "Sunday" or otherdevices[boost] == 'On') then
consigne_conf = consigne_conf_weekend
else
consigne_conf = consigne_conf_semaine
end
-- si le thermostat général est actif
if (otherdevices[thermostat] == 'On') then
-- si il y a présence ou abscence depuis moins d'une heure, la journée
if (otherdevices[mode] == 'On' or (otherdevices[mode] == 'Off' and difference < 3600 and time.hour >= 7 and time.hour < 23)) then
consigne = consigne_conf
else
consigne = consigne_eco
end
else
consigne = consigne_abs
end
if (temperature < consigne) then
--commandArray[radiateur]='On'
commandArray[1]={['radiateur salon']='On'}
commandArray[2]={['radiateur cuisine']='On'}
print('Chauffage salon -. ON .-')
-- envoie de la conso dans le capteur virtuel d'énergie
npower, energy = string.match(otherdevices_svalues[conso], "(%d+%.*%d*);(%d+%.*%d*)")
energy = tonumber(energy) + (puissance / 60)
commandArray['UpdateDevice'] = conso_id .. '|0|' .. puissance .. ';' .. energy
else
--commandArray[radiateur]='Off'
commandArray[1]={['radiateur salon']='Off'}
commandArray[2]={['radiateur cuisine']='Off'}
print('Chauffage salon -. OFF .-')
-- envoie de la conso dans le capteur virtuel d'énergie
npower, energy = string.match(otherdevices_svalues[conso], "(%d+%.*%d*);(%d+%.*%d*)")
energy = tonumber(energy)
commandArray['UpdateDevice'] = conso_id .. '|0|' .. 0 .. ';' .. energy
end
print('il fait '..temperature..'°C pour '..consigne..'°C souhaité')
return commandArray