Bonjour,
J’ai revu cet été mes scénarios de chauffage qui active ou non les thermostats (en prenant en compte la présence et la période).
Hier je constate que j’ai des thermostats qui sont restés sur Off alors que j’étais présent.
Après un peu de débug, j’ai compris que mon scénario qui active les thermostats à mis 2 sec pour réaliser l’opération et le scénario appelant est passé à la suite…
Pour mettre un fix rapide, je viens de mettre un sleep de 2 sec (j’avais mis 1 sec mais c’était insufisant), n’y a t’il pas une possibilité pour lui dire d’attendre la fin d’un scénario avant de passer à la suite ?
J’imaginais qu’en ne cochant pas la case pour exécuter en background, j’étais dans un mode synchrone :
[…]
[2024-11-14 14:30:05][SCENARIO] Lancement du scénario : Thermostats Chauffage enable options : []
[...]
[2024-11-14 14:30:05][SCENARIO] Pause de 1 seconde(s)
[2024-11-14 14:30:06][SCENARIO] Exécution d'un bloc élément : 466
[2024-11-14 14:30:06][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Chambre parentale][Chauffage][Mode]# == 'Off'
[2024-11-14 14:30:06][SCENARIO] Evaluation de la condition : ["Off" == 'Off'] = Vrai
[2024-11-14 14:30:06][SCENARIO] - Exécution du sous-élément de type [action] : then
[2024-11-14 14:30:06][SCENARIO] Exécution de la commande [Chambre parentale][Chauffage][Eco]
[2024-11-14 14:30:06][SCENARIO] Equipement désactivé - impossible d'exécuter la commande : [Chambre parentale][Chauffage][Eco]
Comme on peut le voir dans l’extrait de log, l’équipement était toujours désactivé au moment ou il est passé aux instructions suivante. Et en regardant la log du scénario appelé, on peut voir qu’il s’est terminé 2 sec après l’appel.
[2024-11-14 14:30:06][SCENARIO] -- Début : Lancement provoque par le scenario : [Thermostats][Placard Technique][Thermostats Chauffage OnOff].
[2024-11-14 14:30:06][SCENARIO] - Exécution du sous-élément de type [action] : action
[2024-11-14 14:30:06][SCENARIO] Equipement activé : [Salon][Chauffage]
[2024-11-14 14:30:07][SCENARIO] Equipement activé : [Salle à manger][Chauffage]
[2024-11-14 14:30:07][SCENARIO] Equipement activé : [Chambre Emmy][Chauffage]
[2024-11-14 14:30:07][SCENARIO] Equipement activé : [Chambre parentale][Chauffage]
[2024-11-14 14:30:07][SCENARIO] Equipement activé : [Bureau][Chauffage]
[2024-11-14 14:30:07][SCENARIO] Equipement activé : [Salle de bains][Chauffage]
[2024-11-14 14:30:08][SCENARIO] Fin correcte du scénario
Après si le serveur répond plus vite ou plus lentement ça m’ennuis de mettre un sleep fixe.
Auriez-vous une solution sans faire une usine à gaz ?
Par usine à gaz j’entend passer par une variable pour indiquer que le scénario est en cours et attendre que le scénario appelé modifie la valeur pour indiquer au scénario appelant que c’est terminé et mettre une pause conditionné a cette variable… Je pense que ça alourdirais trop les scénario (sachant que j’ai mis que des extraits de mon scénario)
Merci pour vos idées/solutions.