Et ça evite aussi les erreurs
Exemple coupure du courant, relais qui se relâche et donc chauffage en route mais pour domoticz il est Off..
Et hop il fait 40 chez toi
Ma cafetière reçoit un Off toutes les 15 minutes
Cela voudrait dire qu'il est possible de changer le tempo d'un script_time_xxx ??vil1driver a écrit : Ma cafetière reçoit un Off toutes les 15 minutes
Code : Tout sélectionner
time = os.date("*t")
if ((time.min % 5)==0) then
--ton code ici
endCode : Tout sélectionner
commandArray = {}
time = os.date("*t")
if ((time.min % 3)==0) then
-------- variables fixes a changer selon pieces & modules---------
local hysteresis = 1 --Valeur seuil pour éviter que le relai ne cesse de commuter dans les 2 sens
local radiateur = 'Prise_SecheServiette' --Nom du device radiateur à allumer/éteindre
local periode = 'Periode_Chauffe_SDB' --Switch manuel permettant de valider si on est en periode de chauffage de SDB
local sonde = 'Temp_SDB' -- sonde temperature/humidite salle de bain
local planning = 'Consignes_SDB' --themostat avec plannification pour le chauffage de la salle de bain
--Mode deboggage (affichage des messages)
debug=false
---------- variables calculees-----------------
local temp, hum = otherdevices_svalues[sonde]:match("([^;]+);([^;]+)") -- recuperation de la temperature de la sonde
local temp = tonumber(temp) -- mise au format chiffre
local consigne = otherdevices_svalues[planning] -- recuperation de la temperature du hermostat
local consigne = tonumber(consigne) -- mise au format chiffre
print("temperature reference "..consigne)
print("temperature reel "..temp)
if (otherdevices[periode] == 'On') then -- si c'est une periode de chauffage
if (temp <= (consigne - hysteresis)) then --il faut trop foid
if (otherdevices[radiateur] == 'Off') then -- si le radiateur est sur Off
commandArray[radiateur]='On' -- allumer le radiateur
print("Allumage du chauffage dans SDB ")
elseif (otherdevices[radiateur] == 'On') then -- si il est sur on
print("Chauffage dans SDB en action") --rien faire
end
elseif (temp > consigne) then -- si trop chaud
commandArray[radiateur]='Off' -- eteindre chauffage
print("Extinction du chauffage dans SDB ")
else -- autrement
print("Chauffage dans SDB en attente d'ordre ") -- ne rien faire
end
else -- autrement
commandArray[radiateur]='Off' -- etenidre radiateur
print("Hors periode de chauffage de la SDB ")
end --fin condition principale
end --fin tempo script toutes les 3 minutes
return commandArray