Oui, purement, si un sélecteur change d’état, difficile de le remettre dans son ancien état (si rien n'est codé en amont). (J'avais un peu demandé conseil justement sur ces changements d’état. Quand un device passe de On a On on ne peut pas savoir si c'est un passage de Off a On)
Mais je pense que vil1driver se demande pourquoi tu veux enregistrer un etat, car logiquement, ce selecteur est sensé se debrouillé tout seul. Exemple:
Si tu est en mode confort de 6h a 8h et eco de 8h a 19h. Alors si tu ferme ta fenetre a 7h45 alors forcement tu doit revenir au mode confort.... Si tu la ferme a 12h forcement ce sera le mode eco... D’où la question.
De plus pour un planning, si tu ouvre la fenetre a 7h45 et que tu la ferme a 8h15 dans quel etat doit tu te trouvé?
Sauf que cela dépend de comment tu fais le changement d’état (A la main, codé ou planifié). Car si c'est planifié alors suivant l'heure ou tu ferme tu reprend un etat logique, si c'est codé je pense qu'il faut l'inclure dans le code d'origine pour re vérifier l'etat...
Pour ton code, je simplifierai un peu. Déjà, il s'agit d'action que sur la fenêtre, si j'ouvre ou si je ferme.
Ta temporisation d'une minute pose problème (et je pense qu'elle ne sert pas a grand chose) Donc je commence par la fermeture car trop compliqué.
Si je ferme la fenêtre, je vérifie l’état du chauffage et suivant l’état j'applique la variable au sélecteur.
En suite j'enregistre l’état de radiateur et je le coupe dans une minute:
Code : Tout sélectionner
commandArray = {}
--Si je ferme ma fenetre
if devicechanged['fenetre test'] == 'Off' then
-Alors si la variable est eco je met eco au radiateur
if uservariables["Chauff parent"] == "Eco" then
commandArray['Chauffage chambre parents'] = 'Set Level: 30'
-- sinon si ma variable est confort je met confort au radiateur
elseif uservariables["Chauff parent"] == "Confort" then
commandArray['Chauffage chambre parents'] = 'Set Level: 20'
end
-- sinon si ma fenetre s'ouvre j'enregistre l'etat de radiateur dans ma variable et je passe mon radiateur a off dans 60 s
elseif devicechanged['fenetre test'] == 'On' then
commandArray[1]={['Variable:Chauff parent'] = otherdevices['Chauffage chambre parents']}
commandArray[2]={['Chauffage chambre parents'] = 'Off AFTER 60'}
--la commande au dessus je ne suis pas sur de deux choses: 1/ si elle fonctionne 2/ si le changement d'etat lors de ma fermeture annule ce timer dans le cas ou tu as fermé ta fenetre avant le timer....
end