Scénario qui ne s'exécute plus comme avant

Bonsoir

je rencontre un soucis avec mon scénario qui arrête mon sèche linge à la fin d’un cycle et cela depuis la dernière mise à jour jeedom. En effet sous la 4.3 aucun soucis mais depuis la 4.4 celui ci ne s’arrête pas…

déclencheur:
image

le scénario:

Je joins le log en pièce jointe
scenario191.log (209,7 Ko)

En partant du bas on voit à cette ligne que ma condition est bonne et le scénario exécuté

2024-05-01 18:49:41][SCENARIO] -- Début : Scenario execute automatiquement sur evenement venant de : [SdB Haut][KLF Sdb][Puissance] (4).
[2024-05-01 18:49:41][SCENARIO] - Exécution du sous-élément de type [condition] : if max(#[SdB Haut][KLF Sdb][Puissance]#, 60 min) > 10 && max(#[SdB Haut][KLF Sdb][Puissance]#, 1 min) <= 25
[2024-05-01 18:49:41][SCENARIO] Evaluation de la condition : [643 > 10 && 4 <= 25] = Vrai
[2024-05-01 18:49:41][SCENARIO] - Exécution du sous-élément de type [action] : then
[2024-05-01 18:49:41][SCENARIO] Exécution d'un bloc élément : 905
[2024-05-01 18:49:41][SCENARIO] - Exécution du sous-élément de type [condition] : in 2
[2024-05-01 18:49:41][SCENARIO] Evaluation de la condition : [2] = 2
[2024-05-01 18:49:41][SCENARIO] Tâche : 905 programmée à : 2024-05-01 18:51:41 (+ 2 min)
[2024-05-01 18:49:41][SCENARIO] Fin correcte du scénario

Cependant la prise qui est contrôlée ne s’arrête pas et que la condition est reprise en boucle…

Pourquoi cela est interprété différemment et ne fonctionne plus?

on voit dans l’historique ceci:

Merci par avance pour votre aide
bonne soirée

Si je comprends bien la tâche est programmée pour dans 2 minutes, mais entre temps le déclencheur du scénario le redémarre (car la commande Puissance reçoit une nouvelle valeur donc relance le scénario).

Salut,

Voir explication rom.jou, en se relançant la programmation est supprimé et à nouveau planifiée 2mn plus tard, repoussant encore et encore l’arrêt de la prise.

Passe le premier SI en non répétition si test identique, ça devrait aller ensuite.

1 « J'aime »

Salut

Tu devrais aussi remplacer tes ET par && et tes OU par ||

Antoine

Merci pour vos retours

@Bison
si je fais cela bison plus rien ne s’opère car reste sur faux et après plus de test…sauf erreur

@rom.jou
ok je vais faire la modif mais cela peut il expliquer cela?

Ca n’explique pas pourquoi ça arrive uniquement depuis la migration en v4.4, mais à mon avis c’est une coïncidence ou un effet de bord. Quand je lis le scénario c’est normal que ça se produise comme je l’ai expliqué (redémarrage avant que le dans soit effectué) et peut-être qu’avant la migration tu avais toujours plus de 2 minutes entre deux remontée de valeurs de Puissance (pour une raison que j’ignore, peut-être pas du tout lié à la version de jeedom).

Merci je ne remettais pas en cause jeedom mais juste une question d’interprétation.

je conviens que votre réponse est plus que logique donc je vais essayer de mettre 1 minute du coup et voir car comme répondu à bison si 'j’active la non répétition plus rien ne se fait

Salut,

Je ne vois pas bien pourquoi ça ne fonctionnerait pas.

Si ton appareil est en route et que la puissance envoyée est de 500 par exemple, la condition avec les max sera fausse, il ne se passe rien

La puissance max passe à 450, la condition sera toujours fausse donc non réévalué et il ne se passera rien

La puissance max sur la dernière minute passe à 14, la condition sera vrai donc différente de la dernière fois et le SI sera traité donc déclenchement d’une programmation d’arrêt dans 2mn → c’est ce que tu veux

La puissance max sur la dernière minute passe à 20, la condition sera vraie donc identique à la dernière fois, le SI ne sera pas traité donc pas d’annulation de la programmation → c’est ce que tu veux

Actuellement quand ça se produit la condition est vrai donc il reprogramme l’arrêt dans 2mn, en supprimant la précédente programmation → Dans ce cas la prise n’est jamais stoppé et elle ne le sera que si aucune nouvelle puissance n’est envoyée dans les 2mn

1 « J'aime »

effectivement la raisonnement semble valable vu comme cela.

Je vais essayer et voir la prochaine fois du coup

Bonjour Bison

cela ne fonctionne pas:
Le retour dans le testeur d’expression
max(#[SdB Haut][KLF Sdb][Puissance]#, 60 min) > 10 && max(#[SdB Haut][KLF Sdb][Puissance]#, 1 min) <= 25 renvoi

image

mais le scenario s’arrete sur:

[2024-05-03 12:14:11][SCENARIO] -- Début : Scenario execute automatiquement sur evenement venant de : [SdB Haut][KLF Sdb][Puissance] (4).
[2024-05-03 12:14:11][SCENARIO] - Exécution du sous-élément de type [condition] : if max(#[SdB Haut][KLF Sdb][Puissance]#, 60 min) > 10 && max(#[SdB Haut][KLF Sdb][Puissance]#, 1 min) <= 25
[2024-05-03 12:14:11][SCENARIO] Evaluation de la condition : [593 > 10 && 71 <= 25] = Faux
[2024-05-03 12:14:11][SCENARIO] Non exécution des actions pour cause de répétition
[2024-05-03 12:14:11][SCENARIO] Fin correcte du scénario

du coup la prise ne s’arrete pas

ne peut on pas remplacer:
max(#[SdB Haut][KLF Sdb][Puissance]#, 1 min) <= 25

en 30 secondes sachant que les mini cycles semblent faire foire les choses?

Apparemment lors de la dernière remontée de valeur, le max sur la dernière minute était de 71 et si le scénario s’est arrêté là c’est qu’aucune nouvelle valeur de puissance n’a du être renvoyée par la prise pour refaire tourner le scénario.

Je tenterais de ne pas utiliser la valeur max sur la dernière minute et de directement mettre une valeur qui semble correspondre à une fin de cycle, non ?

max(#[SdB Haut][KLF Sdb][Puissance]#, 60 min) > 10 && #[SdB Haut][KLF Sdb][Puissance]# < 75

Bonjour Bison

Oui ca serait une possibilité mais avant je souhaiterais tenter le max en secondes
max(#[SdB Haut][KLF Sdb][Puissance]#, 1 min) <= 25

remplacer le 1 min à 20 secs ca s’écrit comment?
car en effet à la fin le seche linge se met en route par cyle court toutes les 30 secs je dirais

max(#[SdB Haut][KLF Sdb][Puissance]#, 20 sec) <= 25

ok merci plus qu’a tester au prochain cycle:)