Re: détecter défaut rafraichissement sonde oregon par lua ?
Publié : 08 oct. 2015, 00:15
Tu devrais oublier blockly, 
Reprenez le contrôle de votre domotique
https://easydomoticz.com/forum/
Code : Tout sélectionner
-- script_time_alarme.lua
-- ce script détecte une perte de sonde et coupe le chauffage dans la zone
--------------------------------
------ Variables à éditer ------
--------------------------------
local sonde = 'Temp Salon' -- Nom de la sonde de température
local sonde2 = 'Temp Cuisine' -- Nom de la sonde de température
local sonde3 = 'Temp Chambre 2' --Nom de la sonde de température
local sonde4 = 'Temp Chambre Capucine' --Nom de la sonde de température
local radiateur = 'Module Salon' -- Nom de l'interrupteur de chauffage
local radiateur2 = 'Module Cuisine' -- Nom de l'interrupteur de chauffage
local radiateur3 = 'Module Chambre 2' -- Nom de l'interrupteur de chauffage
local radiateur4 = 'Module Chambre Capucine' -- Nom de l'interrupteur de chauffage
--------------------------------
-- Fin des variables à éditer --
--------------------------------
time = os.date("*t")
function timedifference(d)
s = otherdevices_lastupdate[d]
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)
t1 = os.time()
t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
difference = os.difftime (t1, t2)
return difference
end
-- on regarde de quand date la dernière relève de température
local lastSeen = timedifference(sonde)
local lastSeen2 = timedifference(sonde2)
local lastSeen3 = timedifference(sonde3)
local lastSeen4 = timedifference(sonde4)
commandArray = {}
-- lance une alarme par zone au dessus du seuil 600s si l'alarme est à OFF et la coupe en dessous si l'alarme est à On
if (lastSeen > 600 ) and (otherdevices['Alarme Salon'] == 'Off') then
commandArray['Alarme Salon']='On'
end
if (lastSeen2 > 600 ) and (otherdevices['Alarme Cuisine'] == 'Off') then
commandArray['Alarme Cuisine']='On'
end
if (lastSeen3 > 600 ) and (otherdevices['Alarme Chambre 2'] == 'Off') then
commandArray['Alarme Chambre 2']='On'
end
if (lastSeen4 > 600 ) and (otherdevices['Alarme Chambre Capucine'] == 'Off') then
commandArray['Alarme Chambre Capucine']='On'
end
if (lastSeen < 600 ) and (otherdevices['Alarme Salon'] == 'On') then
commandArray['Alarme Salon']='Off'
end
if (lastSeen2 < 600 ) and (otherdevices['Alarme Cuisine'] == 'On') then
commandArray['Alarme Cuisine']='Off'
end
if (lastSeen3 < 600 ) and (otherdevices['Alarme Chambre 2'] == 'On') then
commandArray['Alarme Chambre 2']='Off'
end
if (lastSeen4 < 600 ) and (otherdevices['Alarme Chambre Capucine'] == 'On') then
commandArray['Alarme Chambre Capucine']='Off'
end
return commandArray