Modification de scénario

Bonjour à tous,

Je ne sais pas si mon titre est bien explicite, mais voilà mon probléme. J’utilise ce sénario depuis des années et depuis quelques jours il buge. Exemple de ce matin ou mes volet de la chambre parentale ce sont ouvert surtout que nous somme samedi.
Mon Scénario est programmé tous les jours à 5h du matin.
Le scénario :

Les logs:

[2024-09-14 05:00:01][SCENARIO] -- Début : Scenario execute automatiquement sur programmation.
[2024-09-14 05:00:01][SCENARIO] - Exécution du sous-élément de type [condition] : if #time# < #[Maison][lever et coucher du soleil][Lever du soleil 2]#
[2024-09-14 05:00:01][SCENARIO] Evaluation de la condition : [500 < 732] = Vrai
[2024-09-14 05:00:01][SCENARIO] - Exécution du sous-élément de type [action] : then
[2024-09-14 05:00:01][SCENARIO] Exécution d'un bloc élément : 2
[2024-09-14 05:00:01][SCENARIO] - Exécution du sous-élément de type [condition] : at #[Maison][lever et coucher du soleil][Lever du soleil 2]#
[2024-09-14 05:00:01][SCENARIO] Evaluation de la condition : [732] = 732
[2024-09-14 05:00:01][SCENARIO] Tâche : 2 programmée à : 2024-09-14 07:32:00
[2024-09-14 05:00:01][SCENARIO] Fin correcte du scénario
------------------------------------
[2024-09-14 07:30:03][SCENARIO] ************Lancement sous tâche**************
[2024-09-14 07:30:03][SCENARIO] - Exécution du sous-élément de type [action] : do
[2024-09-14 07:30:03][SCENARIO] Exécution d'un bloc élément : 244
[2024-09-14 07:30:03][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Chambre des parents][Volets Automatique Parents][Volet Auto]# == 1
[2024-09-14 07:30:03][SCENARIO] Evaluation de la condition : [1 == 1] = Vrai
[2024-09-14 07:30:03][SCENARIO] - Exécution du sous-élément de type [action] : then
[2024-09-14 07:30:03][SCENARIO] Exécution de la commande [Chambre des parents][Volet roulant][Ouvrir]
[2024-09-14 07:30:03][SCENARIO] ************FIN sous tâche**************
------------------------------------
[2024-09-14 07:32:02][SCENARIO] ************Lancement sous tâche**************
[2024-09-14 07:32:02][SCENARIO] - Exécution du sous-élément de type [action] : do
[2024-09-14 07:32:02][SCENARIO] Exécution d'un bloc élément : 3
[2024-09-14 07:32:02][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Maison][Informations du jour][Vacances (statut)]# == 0  ET #[Maison][Informations du jour][Jour férié]# == 0  ET #[Maison][Informations du jour][Weekend]# == 0
[2024-09-14 07:32:02][SCENARIO] Evaluation de la condition : [0 == 0  ET 0 == 0  ET 1 == 0] = Faux
[2024-09-14 07:32:02][SCENARIO] - Exécution du sous-élément de type [action] : else
[2024-09-14 07:32:02][SCENARIO] Execution du lancement en arriere plan : scenarioElement21::wYwZiuPP3jVN8n9V::1726291922
[2024-09-14 07:32:02][SCENARIO] Exécution d'un bloc élément : 245
[2024-09-14 07:32:02][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Chambre Julien][Volets Automatique Julien][Volet Auto]# == 1
[2024-09-14 07:32:02][SCENARIO] Evaluation de la condition : [1 == 1] = Vrai
[2024-09-14 07:32:02][SCENARIO] - Exécution du sous-élément de type [action] : then
[2024-09-14 07:32:02][SCENARIO] Execution du lancement en arriere plan : scenarioElement1070::dLKwVgjZrv45yYo3::1726291922
[2024-09-14 07:32:02][SCENARIO] Execution du lancement en arriere plan : scenarioElement1071::c1JrjL9lm46f0XTB::1726291922
[2024-09-14 07:32:02][SCENARIO] Exécution d'un bloc élément : 243
[2024-09-14 07:32:02][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Bureau Ange][Volets Automatique Ange][Volet Auto]# == 1
[2024-09-14 07:32:02][SCENARIO] Evaluation de la condition : [1 == 1] = Vrai
[2024-09-14 07:32:02][SCENARIO] - Exécution du sous-élément de type [action] : then
[2024-09-14 07:32:02][SCENARIO] Execution du lancement en arriere plan : scenarioElement1063::f7Jfhnf77PIbmNGW::1726291922
[2024-09-14 07:32:02][SCENARIO] Execution du lancement en arriere plan : scenarioElement1064::fEDyZObegbtSQnf3::1726291922
[2024-09-14 07:32:02][SCENARIO] Exécution d'un bloc élément : 380
[2024-09-14 07:32:02][SCENARIO] - Exécution du sous-élément de type [condition] : in 1
[2024-09-14 07:32:02][SCENARIO] Evaluation de la condition : [1] = 1
[2024-09-14 07:32:02][SCENARIO] Tâche : 380 programmée à : 2024-09-14 07:33:02 (+ 1 min)
[2024-09-14 07:32:02][SCENARIO] Exécution d'un bloc élément : 237
[2024-09-14 07:32:02][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Salle à manger][Porte Fenêtre][contact]# == 1
[2024-09-14 07:32:02][SCENARIO] Evaluation de la condition : [1 == 1] = Vrai
[2024-09-14 07:32:02][SCENARIO] - Exécution du sous-élément de type [action] : then
[2024-09-14 07:32:02][SCENARIO] Exécution de la commande [Maison][Volets Profalux][On-1]
[2024-09-14 07:32:02][SCENARIO] ************FIN sous tâche**************
------------------------------------
[2024-09-14 07:32:02][SCENARIO] Lancement en arrière-plan de : scenarioElement21::wYwZiuPP3jVN8n9V::1726291922
[2024-09-14 07:32:02][SCENARIO] Exécution de la commande [Chambre ordinateur][Volet roulant][Haut]
------------------------------------
[2024-09-14 07:32:02][SCENARIO] Lancement en arrière-plan de : scenarioElement1070::dLKwVgjZrv45yYo3::1726291922
[2024-09-14 07:32:02][SCENARIO] Exécution de la commande [Chambre Julien][Volet roulant 01][Haut]
------------------------------------
[2024-09-14 07:32:02][SCENARIO] Lancement en arrière-plan de : scenarioElement1064::fEDyZObegbtSQnf3::1726291922
[2024-09-14 07:32:02][SCENARIO] Exécution de la commande [Bureau Ange][Volet roulant 02][Haut]
------------------------------------
[2024-09-14 07:32:02][SCENARIO] Lancement en arrière-plan de : scenarioElement1071::c1JrjL9lm46f0XTB::1726291922
[2024-09-14 07:32:02][SCENARIO] Exécution de la commande [Chambre Julien][Volet roulant 02][Haut]
------------------------------------
[2024-09-14 07:32:02][SCENARIO] Lancement en arrière-plan de : scenarioElement1063::f7Jfhnf77PIbmNGW::1726291922
[2024-09-14 07:32:02][SCENARIO] Exécution de la commande [Bureau Ange][Volet roulant 01][Haut]
------------------------------------
[2024-09-14 07:33:02][SCENARIO] ************Lancement sous tâche**************
[2024-09-14 07:33:02][SCENARIO] - Exécution du sous-élément de type [action] : do
[2024-09-14 07:33:02][SCENARIO] Exécution de la commande [Salon][Volets Salon Virtuel][monter]
[2024-09-14 07:33:02][SCENARIO] ************FIN sous tâche**************

Bonjour
On peu avoir la page santé ?

Bonjour et merci,

Voilà :

Comment sont récupérés les informations du jour ?
Norbert

Via le pluging Dayinfo est c’est bon d’aprés ce que je vois :

 if #[Maison][Informations du jour][Vacances (statut)]# == 0  ET #[Maison][Informations du jour][Jour férié]# == 0  ET #[Maison][Informations du jour][Weekend]# == 0
[2024-09-14 07:32:02][SCENARIO] Evaluation de la condition : [0 == 0  ET 0 == 0  ET 1 == 0] = Faux

Ce que je ne comprends pas c’est pourquoi cette tache ce déclenche à 7h30 sans tenir compte du if.

[2024-09-14 07:30:03][SCENARIO] ************Lancement sous tâche**************
[2024-09-14 07:30:03][SCENARIO] - Exécution du sous-élément de type [action] : do
[2024-09-14 07:30:03][SCENARIO] Exécution d'un bloc élément : 244
[2024-09-14 07:30:03][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Chambre des parents][Volets Automatique Parents][Volet Auto]# == 1
[2024-09-14 07:30:03][SCENARIO] Evaluation de la condition : [1 == 1] = Vrai
[2024-09-14 07:30:03][SCENARIO] - Exécution du sous-élément de type [action] : then
[2024-09-14 07:30:03][SCENARIO] Exécution de la commande [Chambre des parents][Volet roulant][Ouvrir]
[2024-09-14 07:30:03][SCENARIO] ************FIN sous tâche**************
------------------------------------

Salut

Une suggestion, remplacer tes ET par && et tes OU par ||
Je ne crois pas que cela soit déjà le cas mais un tôt ou tard ils seront obsolètes.

Imbriquer des A me semble aussi être assez casse-gueule surtout quand les heures varies.

Antoine

Effectivement le deuxième bloc A avec 730 reste actif même si on est en week-end ou autre, par quoi je pourrais le remplacer ?

Bonjour,
La logique n’est pas bonne.
Le test sur la première condition (heure actuelle < lever du soleil ?) dans le bloc SI … ALORS ne devrait pas être là, mais plutôt inséré dans le bloc A … FAIRE…

Je précise un peu après m’être relu, pour qu’il n’y ait pas de confusions…
Ce que je veux dire, c’est que le premier test ne sert à rien.
En effet, le scénario démarre à 05h00. A 05h00, on teste donc si le soleil est levé ou non. Si non, on programme donc à l’heure du lever de soleil l’ouverture, après avoir testé quelques conditions (présence, jour férié, week-end).
Et si le soleil se lève avant 05h00, on fait quoi (#time# < lever de soleil = faux) ? Après, sauf à habiter dans le Nord (mais dans le grand, grand Nord :wink:…), il y a peu de chance pour que le soleil soit déjà levé à 05h00 en été, et fortiori en hiver…
Donc ce test ne sert à rien. Autant simplifier en laissant le déclencheur à 05h00 (ou même avant…), mais en attaquant directement avec un bloc A faire […]

Second point, concernant le bloc suivant :

Sauf erreur, ma lecture en est la suivante.

Si l’heure du lever de soleil est compris entre 05h00 et 07h30 :

  • En semaine, hors jours férié et avec une présence, on ouvre les volets de la chambre des parents à 07h30, tous les autres volets s’ouvrent plus tôt, à l’heure du lever de soleil.
  • En WE/jour férié ou s’il n’y personne, les volets de la chambre des parents ne s’ouvrent pas (on ne fait rien…), mais tous les autres volets s’ouvrent quand même à l’heure du lever de soleil.

Si l’heure du lever de soleil est après 07h30 :

  • En semaine, hors jours férié et avec une présence, on ouvre les volets de la chambre des parents à la même heure que le lever du soleil ainsi que tous les autres volets.
  • En WE/jour férié ou s’il n’y personne, on ouvre les volets de la chambre des parents à la même heure que le lever du soleil ainsi que tous les autres volets.

Pas de différence donc dans ce dernier cas dans le traitement entre les jours fériés, WE, jours de semaine, qu’il y ait quelqu’un ou non à la maison.
Je ne sais pas si cela correspond à ce que vous voulez (le scénario ‹ bugge ›, ok, mais par rapport à quels attendus ?). Mais si ce n’est pas le cas, essayez déjà de matérialiser votre approche avec cette méthode. La programmation des blocs en sera beaucoup plus facile ensuite…

Admettons toutefois que ce soit OK avec ce qui est attendu.
Il y a un truc qui m’interpelle dans le log :

L’exécution à 07h30 du bloc « SI volet auto == 1 ALORS ouvrir ».
Ce bloc n’est pas programmé par le scénario qui a démarré le même jour à 05h00. Est-ce que par hasard, l’heure du lever de soleil de la veille n’était pas à 07h30 justement ? (vu que le lendemain il était à 07h32, on en n’est pas loin…). Du coup je pense plutôt que ce bloc a été programmé suite à l’exécution du même scénario la veille, jour de semaine, mais exécuté 24h après car l’heure était passée (de quelques secondes) !
Pour y remédier, il faudrait placer une instruction ‹ remove_inat › en début de scénario, qui va annuler toutes les programmations prévues à venir.

Et voir si ca n’arrangerait pas les choses pas hasard…

Bonjour et merci pour ton aide.

À 5 h, on ne teste pas si le soleil est levé, mais on vérifie l’heure exacte du lever du soleil pour ouvrir les volets à ce moment-là. En ce qui concerne le bloc de 7 h 30, l’idée est que si le lever du soleil est avant 7 h 30, les volets de la chambre des parents restent fermés, et s’il est après, ils s’ouvrent. Il n’y a pas de variable de présence, mais j’ai créé un bouton pour désactiver l’ouverture automatique des volets si nécessaire.

Bonjour,
De rien…

C’est peut-être ce qui est envisagé, mais la machine elle, et d’après ce que je vois, elle fait ça :

image

Tous les jours à 05h00, heure d’activation du scénario, on a donc #time# (heure courante) = 0500.

Donc, elle exécute l’instruction suivante :

SI 0500 < (heure du lever de soleil), ALORS
[ A (heure du lever de soleil)…]
SINON rien…

Ce qui sera toujours vrai, sauf si un jour le soleil se lève plus tôt que 05h00…
Non ?

1 « J'aime »

Oui c’est bien ça, à l’époque lorsque j’avais créé ce scénario, on m’avait conseillé de faire comme ça pour récupérer l’heure du levé du soleil tous les matins et donc programmer mon scénario.

Ok, d’accord :thinking:.
Ceci dit, ce n’est pas gênant et ce test n’explique pas que le scénario ait eu les ratés de fonctionnement décrits initialement (pour ça voir plutôt ma suggestion dans le deuxième point…), je dis juste qu’il ne sert à rien en l’état… :wink:

Hello,

je me trompe peut etre, mais je pense que tu es tombé sur un cas particulier : Celui où le soleil se lève pile à 7h30.
Je pense que l’action qui s’est lancée à 7h30 le 14/09 vient d’une programmation qui a été faite la veille (le 13/09). Si tu as assez d’historique de log, tu peux regarder l’exécution du scénario du vendredi 13 et vérifié si t as une ligne du genre

Tâche : 2 programmée à : 2024-09-14 07:30:00

Si on consifère que vendredi le soleil s’est bien levé à 7h30 comme je le pressens, le scénario s’est donc déroulé comme ceci :
1er SI : 5h00 < 7h30 → VRAI
Tache programmée à 7h30 le 13/09
Si pas Vacances ET pas Férié ET pas WE → VRAI (vendredi n’est pas le week end)
Si time > 7h30 → Sachant que time dans ce cas égale le lever du soleil et donc 7h30 → FAUX (7H30 n’est pas strictement supérieur à 7h30)
On va dans le sinon, et donc le système programme une action à 7h30 la prochaine fois… Donc le lendemain.

Je pense qu’il faudrait remplacer le « SI #time# > 730 » par « SI #time# >= 730 », ca devrait résoudre ce cas.

Je sais pas si mes explications sont très claires… N’hésite pas si besoin :wink:

Bonjour,

C’est déjà ce que je suggérais ici :wink: !

Mais merci de confirmer mon hypothèse !

Effectivement, j’avais lu le fil un peu vite, je n’avais pas vu que tu avais déjà évoqué cette hypothèse, désolé :stuck_out_tongue:

1 « J'aime »

Desolé pour ce retour tardif,
Si tu regarde bien mes log time est à 732 et à 500 cela me programme direct l’ouverture des volets à 730 malgré la condition du week-end ?

Bonjour,
Le temps de m’y remettre aussi…

Oui, le bloc qui s’est exécuté le samedi matin à 05h00 a programmé comme il se doit l’ouverture des volets à 07h32, heure du lever de soleil :

Pas de problème, c’est bien le comportement qu’on attends pour un jour de WE (à priori ?).

Le problème c’est ce bloc, exécuté à 07h30 le même jour :

image

Pour moi, lui n’a pas été programmé le samedi matin, mais bien avec l’instance quotidienne qui s’est lancé le vendredi matin à 05h00 (et qui n’est donc pas un jour de WE). Et à 07h30, car cela correspond sans doute exactement à l’heure du lever de soleil ce jour-là (du moins si celle-ci est comprise entre 07h30’00" et 07h30’59", arrondi à 07h30 donc).
C’est un cas particulier, certes, et qui dans ce cas précis ne doit arriver que deux fois par an à peu près (lorsque le lever de soleil calculé est dans cette fourchette), et d’ailleurs je pense que cela ne s’est pas reproduit depuis, mais c’est la seule explication que je vois.
Une solution simple pour y remédier : commencer le bloc qui s’exécute à 05h00 avec un ‹ remove_inat › pour être sûr que tous les blocs programmés par la suite par ce même scénario seront bien annulés.

Oui comme tu dis pour tester c’est pas facile, il va falloir attendre 1 an :joy:.

Certes… :grin:

Ceci dit, si ce que j’ai dit est vrai, c’est à dire :

  • Ce comportement ne s’est pas reproduit depuis le 14 septembre dernier, et ne s’est pas produit non plus avant,
  • L’heure du lever de soleil correspondant à la longitude de ton domicile était bien aux alentours (à 1’ près) de 07h30 ce 14/09,

C’est que mon hypothèse est (à priori) la bonne…
Tu confirmes ? (Je n’aime pas rester sur une incertitude, et je n’ai pas trop envie d’attendre six mois :wink:…)
Thx !