merci bcp pour ton aide je reviens pour faire le retour du script
merci encore pour votre aide c'est top
Code : Tout sélectionner
commandArray = {}
cycle = os.date("*t")
if cycle.min == 0 then -- toutes les heures
-- récupérer la température
T = otherdevices_temperature['Extracteur_capteur']
commandArray[#commandArray + 1] = {['Extracteur'] = "On"}
if T <= 29 then
commandArray[#commandArray + 1] = {['Extracteur'] = "Off AFTER 900"} -- on coupe appès 15 mn
end
if T > 29 then
commandArray[#commandArray + 1] = {['Extracteur'] = "Off AFTER T <= 25"} -- on allume des que c'est en dessus 29°
end
end
return commandArrayCommence par créer une variable utilisateur MyExtracteurVar à On.Vinz46 a écrit : 28 févr. 2020, 23:23 Voila je voudrais que mon extracteur s'allume une fois 15 mn toute les heures si la température est inférieure à 25 °
Code : Tout sélectionner
commandArray = {}
cycle = os.date("*t")
if cycle.min == 0 then -- toutes les heures
if otherdevices_temperature['Extracteur_capteur'] <= 25 then
commandArray[#commandArray + 1] = {['Extracteur'] = 'On'}
commandArray[#commandArray + 1] = {['Extracteur'] = 'Off AFTER 900'} -- on coupe appès 15 mn
commandArray['Variable:MyExtracteurVar']= 'On'
commandArray['Variable:MyExtracteurVar']= 'Off AFTER 900'
end
end
return commandArrayDans ce cas, il convient de passer par un script type device, basé sur le changement d'état de la sonde de température.Vinz46 a écrit : 28 févr. 2020, 23:23 mais je voudrais en même temps que si la température augmente et dépasse les 28° je voudrais que l'extracteur s'allume aussi et s’éteigne des que la température passe ou égale les 25°.
Code : Tout sélectionner
commandArray = {}
if devicechanged['Extracteur_capteur'] >= 28 and otherdevices['Extracteur'] == 'Off' then
commandArray[#commandArray + 1] = {['Extracteur'] = 'On'}
elseif devicechanged['Extracteur_capteur'] <= 25 and otherdevices['Extracteur'] == 'On' and uservariables["MyExtracteurVar"] == 'Off' then
commandArray[#commandArray + 1] = {['Extracteur'] = 'Off'}
end
return commandArrayCode : Tout sélectionner
local duree_extract = 900 -- Durée extraction en minutes
-- local ecart = 20 -- Ecart entre deux tests en minutes
commandArray = {}
cycle = os.date("*t")
if cycle.min == 0 then
-- récupérer la température
T = otherdevices_temperature['Extracteur_capteur']
print ("Température de la cave à : " .. cycle.hour .. ":" .. cycle.min .. " => " .. tostring(T) .. "°")
if T > 25 or T < 28 then
commandArray[#commandArray + 1] = {['Extracteur'] = "Off"}
print ("Arrêt de l'extracteur")
elseif T < 25 or T > 28 then
commandArray[#commandArray + 1] = {['Extracteur'] = "On"}
commandArray[#commandArray + 1] = {['Extracteur'] = "Off" AFTER " .. duree_extract}
print ("Lancement de l'extracteur pendant 15 minutes")
end
end
return commandArrayCette condition sera systématique, si la température est de 3°, 3 < 28, ou qu'il fasse 50°, 50 > 25, alors extinction de l'extracteur, et l'autre condition elseif T < 25 or T > 28 then ne sera jamais exécuté .....
et non "ou".° Si T>25 et T<28 on éteint l'extracteur.