Minuterie réarmable avec un bouton Push On
Publié : 28 avr. 2021, 16:15
Bonjour,
Dans mon système de chauffage électrique, que j'utilise avec le script Chauffage PID de Vil1driver (formidable au passage !), j'aimerais ajouter la possibilité à une personne de forcer la mise en route d'un radiateur pendant X minutes. Ce délai doit pouvoir s'incrémenter de X minutes en cas d'un nouvel appui. Le nombre d'incrémentation doit être limité à N.
Pour l'instant je suis passé par un bouton virtuel Push On qui est mis en action via le bouton du SOnOff greffé au radiateur en question. J'ai spécifié un délai d'extinction dans le bouton. Avec mon script j'allume et j'éteins le bouton virtuel du radiateur, ça fonctionne.. sans respecter le temps à incrémenter ni le nombre d'appui maximal à prendre en compte.
J'ai beau essayer de faire quelques choses dans mon script LUA Devices, j'arrive seulement à faire une boucle infini..
Je vous joins mon dernier brouillon:
Je dois faire fausse route, n'existe-t-il pas un moyen plus simple d'arriver à mes fins ?
Le Push On n'est peut-être pas le plus pratique, surtout avec un temps que je souhaite pouvoir régler facilement.
Le but étant de répliquer ce script sur d'autres interrupteurs pour d'autres applications avec d'autres consignes virtuels.
Dans mon système de chauffage électrique, que j'utilise avec le script Chauffage PID de Vil1driver (formidable au passage !), j'aimerais ajouter la possibilité à une personne de forcer la mise en route d'un radiateur pendant X minutes. Ce délai doit pouvoir s'incrémenter de X minutes en cas d'un nouvel appui. Le nombre d'incrémentation doit être limité à N.
Pour l'instant je suis passé par un bouton virtuel Push On qui est mis en action via le bouton du SOnOff greffé au radiateur en question. J'ai spécifié un délai d'extinction dans le bouton. Avec mon script j'allume et j'éteins le bouton virtuel du radiateur, ça fonctionne.. sans respecter le temps à incrémenter ni le nombre d'appui maximal à prendre en compte.
J'ai beau essayer de faire quelques choses dans mon script LUA Devices, j'arrive seulement à faire une boucle infini..
Je vous joins mon dernier brouillon:
Code : Tout sélectionner
local bouton = 'Radiateur Salon Gauche Bouton'
local radiateur = 'Radiateur Salon Gauche'
local delai = 10 --durée d'action en minutes
local n = 1 --nombre d'itérations possibles du delai
local i -- nombre d'appuis sur le bouton
local etat_bouton
local activation = 0
commandArray = {}
if (devicechanged[bouton] == 'On' and activation == 0) then
-- Si la valeur passe On, alors on passe radiateur à On et activation à 1
commandArray[radiateur] = 'On'
activation = 1
i = 0
end
if (devicechanged[radiateur] == 'Off' and otherdevice[bouton] == 'On' and activation == 1) then
commandArray[radiateur] = 'On'
end
-- Si un nouvel appui sur le bouton on incrémente le compteur ou on le bloque au max n
if (devicechanged[bouton] == 'On' and activation == 1) then
i=i+1
if(i>n) then
i = n
end
end
-- Si le delai d'inactivité du bouton arrive au bout et que le chauffage est activé
if (devicechanged[bouton] == 'Off' and activation == 1) then
-- alors on vérifie qu'il n'y a pas eu d'autres appuis à prendre en compte
i = i - 1
if (i > 0) then
commandArray[bouton] = 'On'
end
end
return commandArray
Le Push On n'est peut-être pas le plus pratique, surtout avec un temps que je souhaite pouvoir régler facilement.
Le but étant de répliquer ce script sur d'autres interrupteurs pour d'autres applications avec d'autres consignes virtuels.