Problème de "prolongation" de temps sur un virtuel info/binary

Bonjour,

J’ai un souci sur une fonction « simple » propre à Jeedom. Je pensais la maitriser, mais visiblement non.

J’ai fait :

  • une information (ici délestage) qui revient à 0 au bout de 10min si pas d’activité (normalement ?)
  • un interrupteur on/off de délestage ON/OFF qui bascule manuellement l’info à 0 ou 1.

Dans le principe ce que je souhaite faire :

  • si je fais un ON, le but est que l’info/interrupteur reste à 1 pendant 10 min et retombe à 0 au bout de 10 min si pas de nouveau appui à 1…
  • si je refais un ON durant le cycle de 10min (et donc quand il est ON), on rajoute 10min…
  • et je peux faire un OFF au besoin.

A priori, ça ne marche pas dans cette configuration :


Exemple sur le scénario qui gère le délestage de production sur la piscine :
@13h50 : on autorise un délestage, le scénario fait donc un ON (il doit s’arrêter à 14h)
@13h55 : le scénario de suivi (qui tourne toutes les 5min) voit que les conditions de délestage sont toujours vérifiées, il refait un ON pour rajouter 10min (il doit s’arrêter à 14h05)
@14h : idem (il doit s’arrêter à 14h10)
@14h01 : le scénario se lance car délestage passe à 0 (du 13h50) alors qu’il aurait dû rajouter du temps)…
@14h05 : coup du scénario les conditions sont toujours bonnes ça repart en délestage.

Ai-je mal compris quelque chose dans le fonctionnement ?

[2023-03-22 13:50:03][SCENARIO] Exécution d'un bloc élément : 7125
[2023-03-22 13:50:03][SCENARIO] Exécution du sous-élément de type [condition] : if #[Energie][Puissance Instantanée][Consommation]# < 100 AND #[Energie][Puissance Instantanée][Production]# > 1700 AND #[Piscine][Piscine (Panel)][Filtration]# == 0 AND #[Piscine][Piscine (Panel)][Niveau]# == 0
[2023-03-22 13:50:03][SCENARIO] Evaluation de la condition : [0 < 100 AND 2460 > 1700 AND 0 == 0 AND 1 == 0] = Faux
[2023-03-22 13:50:03][SCENARIO] Exécution du sous-élément de type [action] : else
[2023-03-22 13:50:03][SCENARIO] Exécution d'un bloc élément : 7038
[2023-03-22 13:50:03][SCENARIO] Exécution d'un bloc élément : 7033
[2023-03-22 13:50:03][SCENARIO] Exécution du sous-élément de type [condition] : if #[Energie][Puissance Instantanée][Consommation]# < 100 AND #[Energie][Puissance Instantanée][Production]# > 1700 AND #[Piscine][Piscine (Panel)][Filtration]# == 0 AND #[Piscine][Piscine (Panel)][Niveau]# == 1
[2023-03-22 13:50:03][SCENARIO] Evaluation de la condition : [0 < 100 AND 2460 > 1700 AND 0 == 0 AND 1 == 1] = Vrai
[2023-03-22 13:50:03][SCENARIO] Exécution du sous-élément de type [action] : then
[2023-03-22 13:50:03][SCENARIO] Exécution de la commande [Interfaces][Telegram][XXXXXX] avec comme option(s) : {"background":"0","title":"","message":"Lancement du d\u00e9lestage de production sur piscine (C:0 W\/P: 2460 W)"}
[2023-03-22 13:50:03][SCENARIO] Log : DELESTAGE DE PRODUCTION POSSIBLE SUR PISCINE
Piscine en ARRET, Cumulus full : 68°C
C:0 W/P: 2460 W
[2023-03-22 13:50:03][SCENARIO] Exécution d'un bloc élément : 7034
[2023-03-22 13:50:03][SCENARIO] Exécution du sous-élément de type [condition] : if #[Piscine][Piscine (Panel)][Délestage]# == 0
[2023-03-22 13:50:03][SCENARIO] Evaluation de la condition : [0 == 0] = Vrai
[2023-03-22 13:50:03][SCENARIO] Exécution du sous-élément de type [action] : then
[2023-03-22 13:50:03][SCENARIO] Exécution de la commande [Piscine][Piscine (Panel)][Délestage_ON]
[2023-03-22 13:50:03][SCENARIO] Pause de 3 seconde(s)
[2023-03-22 13:50:06][SCENARIO] Exécution de la commande [Piscine][Piscine (Panel)][Filtration_ON]
[2023-03-22 13:50:46][SCENARIO] Exécution du sous-élément de type [condition] : if #trigger# == "schedule" AND #[Eau Chaude][ECS][Ballon full]# == 1 AND #[Piscine][Piscine (Panel)][Délestage]# == 1
[2023-03-22 13:50:46][SCENARIO] Evaluation de la condition : ["schedule" == "schedule" AND 1 == 1 AND 1 == 1] = Vrai
[2023-03-22 13:50:46][SCENARIO] Exécution du sous-élément de type [action] : then
[2023-03-22 13:50:46][SCENARIO] Exécution d'un bloc élément : 7039
[2023-03-22 13:50:46][SCENARIO] Exécution d'un bloc élément : 7037
[2023-03-22 13:50:46][SCENARIO] Exécution du sous-élément de type [condition] : if #[Energie][Puissance Instantanée][Consommation]# < 100 AND #[Energie][Puissance Instantanée][Production]# > 1200 AND #[Piscine][Piscine (Panel)][Filtration]# == 1
[2023-03-22 13:50:46][SCENARIO] Evaluation de la condition : [0 < 100 AND 2520 > 1200 AND 1 == 1] = Vrai
[2023-03-22 13:50:46][SCENARIO] Exécution du sous-élément de type [action] : then
[2023-03-22 13:50:46][SCENARIO] Exécution de la commande [Interfaces][Telegram][XXXXXX] avec comme option(s) : {"background":"0","title":"","message":"Compl\u00e9ment du d\u00e9lestage de production sur piscine (C:0 W\/P: 2520 W)"}
[2023-03-22 13:50:47][SCENARIO] Exécution de la commande [Piscine][Piscine (Panel)][Délestage_ON]
[2023-03-22 13:50:47][SCENARIO] Log : DELESTAGE PISCINE EN COURS ACTUELLEMENT 
Je complète de 10 min
[2023-03-22 13:50:47][SCENARIO] Fin correcte du scénario
------------------------------------
[2023-03-22 13:55:03][SCENARIO] Start : Scenario execute automatiquement sur programmation.
[2023-03-22 13:55:03][SCENARIO] Exécution du sous-élément de type [condition] : if #trigger# == "[Piscine][Piscine (Panel)][Délestage]" AND #[Piscine][Piscine (Panel)][Délestage]# == 0
[2023-03-22 13:55:03][SCENARIO] Evaluation de la condition : ["schedule" == "[Piscine][Piscine (Panel)][Délestage]" AND 1 == 0] = Faux
[2023-03-22 13:55:03][SCENARIO] Exécution du sous-élément de type [action] : else
[2023-03-22 13:55:03][SCENARIO] Exécution du sous-élément de type [condition] : if #trigger# == "schedule" AND #[Eau Chaude][ECS][Ballon full]# == 1 AND #[Piscine][Piscine (Panel)][Délestage]# == 0
[2023-03-22 13:55:03][SCENARIO] Evaluation de la condition : ["schedule" == "schedule" AND 1 == 1 AND 1 == 0] = Faux
[2023-03-22 13:55:03][SCENARIO] Exécution du sous-élément de type [action] : else
[2023-03-22 13:55:03][SCENARIO] Exécution du sous-élément de type [condition] : if #trigger# == "schedule" AND #[Eau Chaude][ECS][Ballon full]# == 1 AND #[Piscine][Piscine (Panel)][Délestage]# == 1
[2023-03-22 13:55:03][SCENARIO] Evaluation de la condition : ["schedule" == "schedule" AND 1 == 1 AND 1 == 1] = Vrai
[2023-03-22 13:55:03][SCENARIO] Exécution du sous-élément de type [action] : then
[2023-03-22 13:55:03][SCENARIO] Exécution d'un bloc élément : 7039
[2023-03-22 13:55:03][SCENARIO] Exécution d'un bloc élément : 7037
[2023-03-22 13:55:03][SCENARIO] Exécution du sous-élément de type [condition] : if #[Energie][Puissance Instantanée][Consommation]# < 100 AND #[Energie][Puissance Instantanée][Production]# > 1200 AND #[Piscine][Piscine (Panel)][Filtration]# == 1
[2023-03-22 13:55:03][SCENARIO] Evaluation de la condition : [0 < 100 AND 2460 > 1200 AND 1 == 1] = Vrai
[2023-03-22 13:55:03][SCENARIO] Exécution du sous-élément de type [action] : then
[2023-03-22 13:55:03][SCENARIO] Exécution de la commande [Interfaces][Telegram][XXXXXX] avec comme option(s) : {"background":"0","title":"","message":"Compl\u00e9ment du d\u00e9lestage de production sur piscine (C:0 W\/P: 2460 W)"}
[2023-03-22 13:55:03][SCENARIO] Exécution de la commande [Piscine][Piscine (Panel)][Délestage_ON]
[2023-03-22 13:55:03][SCENARIO] Log : DELESTAGE PISCINE EN COURS ACTUELLEMENT 
Je complète de 10 min
[2023-03-22 13:55:03][SCENARIO] Fin correcte du scénario
------------------------------------
[2023-03-22 14:00:04][SCENARIO] Start : Scenario execute automatiquement sur programmation.
[2023-03-22 14:00:04][SCENARIO] Exécution du sous-élément de type [condition] : if #trigger# == "[Piscine][Piscine (Panel)][Délestage]" AND #[Piscine][Piscine (Panel)][Délestage]# == 0
[2023-03-22 14:00:04][SCENARIO] Evaluation de la condition : ["schedule" == "[Piscine][Piscine (Panel)][Délestage]" AND 1 == 0] = Faux
[2023-03-22 14:00:04][SCENARIO] Exécution du sous-élément de type [action] : else
[2023-03-22 14:00:04][SCENARIO] Exécution du sous-élément de type [condition] : if #trigger# == "schedule" AND #[Eau Chaude][ECS][Ballon full]# == 1 AND #[Piscine][Piscine (Panel)][Délestage]# == 0
[2023-03-22 14:00:04][SCENARIO] Evaluation de la condition : ["schedule" == "schedule" AND 1 == 1 AND 1 == 0] = Faux
[2023-03-22 14:00:04][SCENARIO] Exécution du sous-élément de type [action] : else
[2023-03-22 14:00:04][SCENARIO] Exécution du sous-élément de type [condition] : if #trigger# == "schedule" AND #[Eau Chaude][ECS][Ballon full]# == 1 AND #[Piscine][Piscine (Panel)][Délestage]# == 1
[2023-03-22 14:00:04][SCENARIO] Evaluation de la condition : ["schedule" == "schedule" AND 1 == 1 AND 1 == 1] = Vrai
[2023-03-22 14:00:04][SCENARIO] Exécution du sous-élément de type [action] : then
[2023-03-22 14:00:04][SCENARIO] Exécution d'un bloc élément : 7039
[2023-03-22 14:00:04][SCENARIO] Exécution d'un bloc élément : 7037
[2023-03-22 14:00:04][SCENARIO] Exécution du sous-élément de type [condition] : if #[Energie][Puissance Instantanée][Consommation]# < 100 AND #[Energie][Puissance Instantanée][Production]# > 1200 AND #[Piscine][Piscine (Panel)][Filtration]# == 1
[2023-03-22 14:00:04][SCENARIO] Evaluation de la condition : [0 < 100 AND 2400 > 1200 AND 1 == 1] = Vrai
[2023-03-22 14:00:04][SCENARIO] Exécution du sous-élément de type [action] : then
[2023-03-22 14:00:04][SCENARIO] Exécution de la commande [Interfaces][Telegram][XXXXXX] avec comme option(s) : {"background":"0","title":"","message":"Compl\u00e9ment du d\u00e9lestage de production sur piscine (C:0 W\/P: 2400 W)"}
[2023-03-22 14:00:05][SCENARIO] Exécution de la commande [Piscine][Piscine (Panel)][Délestage_ON]
[2023-03-22 14:00:05][SCENARIO] Log : DELESTAGE PISCINE EN COURS ACTUELLEMENT 
Je complète de 10 min
[2023-03-22 14:00:05][SCENARIO] Fin correcte du scénario
------------------------------------
[2023-03-22 14:01:02][SCENARIO] Start : Scenario execute automatiquement sur evenement venant de : [Piscine][Piscine (Panel)][Delestage] (0).
[2023-03-22 14:01:02][SCENARIO] Exécution du sous-élément de type [condition] : if #trigger# == "[Piscine][Piscine (Panel)][Délestage]" AND #[Piscine][Piscine (Panel)][Délestage]# == 0
[2023-03-22 14:01:02][SCENARIO] Evaluation de la condition : ["[Piscine][Piscine (Panel)][Délestage]" == "[Piscine][Piscine (Panel)][Délestage]" AND 0 == 0] = Vrai
[2023-03-22 14:01:02][SCENARIO] Exécution du sous-élément de type [action] : then
[2023-03-22 14:01:02][SCENARIO] Exécution d'un bloc élément : 7127
[2023-03-22 14:01:02][SCENARIO] Exécution d'un bloc élément : 7128
[2023-03-22 14:01:02][SCENARIO] Exécution du sous-élément de type [action] : action
[2023-03-22 14:01:02][SCENARIO] Exécution de la commande [Piscine][Piscine (Panel)][Filtration_OFF]
[2023-03-22 14:01:42][SCENARIO] Pause de 3 seconde(s)
[2023-03-22 14:01:45][SCENARIO] Exécution de la commande [Interfaces][Telegram][XXXXXX] avec comme option(s) : {"background":"0","title":"","message":"Fin du d\u00e9lestage de production sur piscine (C:0 W\/P: 2460 W)"}
[2023-03-22 14:01:45][SCENARIO] Log : FIN DU DELESTAGE DE PRODUCTION SUR PISCINE
Filtration : 0 - Ballon full : 1
C:0 W/P: 2460 W
[2023-03-22 14:01:45][SCENARIO] Exécution du sous-élément de type [condition] : if #trigger# == "schedule" AND #[Eau Chaude][ECS][Ballon full]# == 1 AND #[Piscine][Piscine (Panel)][Délestage]# == 0
[2023-03-22 14:01:45][SCENARIO] Evaluation de la condition : ["[Piscine][Piscine (Panel)][Délestage]" == "schedule" AND 1 == 1 AND 0 == 0] = Faux
[2023-03-22 14:01:45][SCENARIO] Exécution du sous-élément de type [action] : else
[2023-03-22 14:01:45][SCENARIO] Exécution du sous-élément de type [condition] : if #trigger# == "schedule" AND #[Eau Chaude][ECS][Ballon full]# == 1 AND #[Piscine][Piscine (Panel)][Délestage]# == 1
[2023-03-22 14:01:45][SCENARIO] Evaluation de la condition : ["[Piscine][Piscine (Panel)][Délestage]" == "schedule" AND 1 == 1 AND 0 == 1] = Faux
[2023-03-22 14:01:45][SCENARIO] Exécution du sous-élément de type [action] : else
[2023-03-22 14:01:45][SCENARIO] Fin correcte du scénario
------------------------------------
[2023-03-22 14:05:03][SCENARIO] Start : Scenario execute automatiquement sur programmation.
[2023-03-22 14:05:03][SCENARIO] Exécution du sous-élément de type [condition] : if #trigger# == "[Piscine][Piscine (Panel)][Délestage]" AND #[Piscine][Piscine (Panel)][Délestage]# == 0
[2023-03-22 14:05:03][SCENARIO] Evaluation de la condition : ["schedule" == "[Piscine][Piscine (Panel)][Délestage]" AND 0 == 0] = Faux
[2023-03-22 14:05:03][SCENARIO] Exécution du sous-élément de type [action] : else
[2023-03-22 14:05:03][SCENARIO] Exécution du sous-élément de type [condition] : if #trigger# == "schedule" AND #[Eau Chaude][ECS][Ballon full]# == 1 AND #[Piscine][Piscine (Panel)][Délestage]# == 0
[2023-03-22 14:05:03][SCENARIO] Evaluation de la condition : ["schedule" == "schedule" AND 1 == 1 AND 0 == 0] = Vrai
[2023-03-22 14:05:03][SCENARIO] Exécution du sous-élément de type [action] : then
[2023-03-22 14:05:03][SCENARIO] Exécution d'un bloc élément : 7126
[2023-03-22 14:05:03][SCENARIO] Exécution d'un bloc élément : 7125
[2023-03-22 14:05:03][SCENARIO] Exécution du sous-élément de type [condition] : if #[Energie][Puissance Instantanée][Consommation]# < 100 AND #[Energie][Puissance Instantanée][Production]# > 1700 AND #[Piscine][Piscine (Panel)][Filtration]# == 0 AND #[Piscine][Piscine (Panel)][Niveau]# == 0
[2023-03-22 14:05:03][SCENARIO] Evaluation de la condition : [0 < 100 AND 2400 > 1700 AND 0 == 0 AND 1 == 0] = Faux
[2023-03-22 14:05:03][SCENARIO] Exécution du sous-élément de type [action] : else
[2023-03-22 14:05:03][SCENARIO] Exécution d'un bloc élément : 7038
[2023-03-22 14:05:03][SCENARIO] Exécution d'un bloc élément : 7033
[2023-03-22 14:05:03][SCENARIO] Exécution du sous-élément de type [condition] : if #[Energie][Puissance Instantanée][Consommation]# < 100 AND #[Energie][Puissance Instantanée][Production]# > 1700 AND #[Piscine][Piscine (Panel)][Filtration]# == 0 AND #[Piscine][Piscine (Panel)][Niveau]# == 1
[2023-03-22 14:05:03][SCENARIO] Evaluation de la condition : [0 < 100 AND 2400 > 1700 AND 0 == 0 AND 1 == 1] = Vrai
[2023-03-22 14:05:03][SCENARIO] Exécution du sous-élément de type [action] : then
[2023-03-22 14:05:03][SCENARIO] Exécution de la commande [Interfaces][Telegram][XXXXXX] avec comme option(s) : {"background":"0","title":"","message":"Lancement du d\u00e9lestage de production sur piscine (C:0 W\/P: 2400 W)"}
[2023-03-22 14:05:03][SCENARIO] Log : DELESTAGE DE PRODUCTION POSSIBLE SUR PISCINE
Piscine en ARRET, Cumulus full : 68°C
C:0 W/P: 2460 W
[2023-03-22 14:05:03][SCENARIO] Exécution d'un bloc élément : 7034
[2023-03-22 14:05:03][SCENARIO] Exécution du sous-élément de type [condition] : if #[Piscine][Piscine (Panel)][Délestage]# == 0
[2023-03-22 14:05:03][SCENARIO] Evaluation de la condition : [0 == 0] = Vrai
[2023-03-22 14:05:03][SCENARIO] Exécution du sous-élément de type [action] : then
[2023-03-22 14:05:03][SCENARIO] Exécution de la commande [Piscine][Piscine (Panel)][Délestage_ON]
[2023-03-22 14:05:03][SCENARIO] Pause de 3 seconde(s)
[2023-03-22 14:05:06][SCENARIO] Exécution de la commande [Piscine][Piscine (Panel)][Filtration_ON]
[2023-03-22 14:05:46][SCENARIO] Exécution du sous-élément de type [condition] : if #trigger# == "schedule" AND #[Eau Chaude][ECS][Ballon full]# == 1 AND #[Piscine][Piscine (Panel)][Délestage]# == 1
[2023-03-22 14:05:46][SCENARIO] Evaluation de la condition : ["schedule" == "schedule" AND 1 == 1 AND 1 == 1] = Vrai
[2023-03-22 14:05:46][SCENARIO] Exécution du sous-élément de type [action] : then
[2023-03-22 14:05:46][SCENARIO] Exécution d'un bloc élément : 7039
[2023-03-22 14:05:46][SCENARIO] Exécution d'un bloc élément : 7037
[2023-03-22 14:05:46][SCENARIO] Exécution du sous-élément de type [condition] : if #[Energie][Puissance Instantanée][Consommation]# < 100 AND #[Energie][Puissance Instantanée][Production]# > 1200 AND #[Piscine][Piscine (Panel)][Filtration]# == 1
[2023-03-22 14:05:46][SCENARIO] Evaluation de la condition : [0 < 100 AND 2460 > 1200 AND 1 == 1] = Vrai
[2023-03-22 14:05:46][SCENARIO] Exécution du sous-élément de type [action] : then
[2023-03-22 14:05:46][SCENARIO] Exécution de la commande [Interfaces][Telegram][XXXXXX] avec comme option(s) : {"background":"0","title":"","message":"Compl\u00e9ment du d\u00e9lestage de production sur piscine (C:0 W\/P: 2460 W)"}
[2023-03-22 14:05:46][SCENARIO] Exécution de la commande [Piscine][Piscine (Panel)][Délestage_ON]
[2023-03-22 14:05:46][SCENARIO] Log : DELESTAGE PISCINE EN COURS ACTUELLEMENT 
Je complète de 10 min
[2023-03-22 14:05:46][SCENARIO] Fin correcte du scénario
------------------------------------

Salut,

as-tu activé la répétition de valeur (cf config avancée de l’info)? sans ça je pense que le retour d’état court toujours (meme avec je ne suis pas sur à 100% que ca sera ok)

si ça marche pas, scénario qui déclenche sur 1 avec un bloc DANS pour remettre à 0 (toujours avec répétition de valeur activée sur le virtuel)

edit: après relecture du code je confirme que la répétition de valeur doit être activée pour que le return state soit prolongé

edit2: après si les 2 arrivent à la même minute, il est possible qu’il y ait une embrouille que que ca revienne malgré tout à zéro

@Mips, bien vu. Déjà ce n’était pas le cas. Je viens de le faire.

Je viens de penser que j’utilisais déjà ce principe depuis plusieurs années pour la détection de mouvement avec plusieurs capteurs dans une même zone.

image

Et oui la répétition était activée ;).

EDIT : pour répondre à ton second edit, j’ai volontairement géré cela par le scénario avec la fonction trigger (si arrivée à la même minute). Et ce que j’ai fait, j’ai mis un décalage de +6min alors que le scénario tourne toutes les 5min.

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.