Comment repousser l'extinction de la lumière du porche

Bonjour à tous,

J’utilise un scénario Jeedom qui me permet d’allumer la lumière du porche pendant 2 minutes. Ce scénario se déclenche sur les déclencheurs suivant :

  1. Un capteur de mouvement (qui me permet d’allumer la lumière sur détection (lorsqu’on rentre à la maison par exemple).
  2. Ouverture de la porte d’entrée (capteur ouverture)
  3. Ouverture de la porte du garage (capteur ouverture)

Voici mon scénario :

J’aurais aimé que lorsqu’un de mes déclencheur est re-déclenché alors que la lumière est allumé (donc un scénario précédent déjà exécuté) cela prolonge de 2 minutes la durée d’allumage.

Je pensais que Jeedom écrasait les exécutions précédentes automatiquement, mais c’est plutôt l’inverse qui se produit : s’il y a déjà une exécution en cours, les suivantes sont ignorées.

J’ai activé l’option « lancement multiple », ça lance bien plusieurs scénario, mais comme mon premier scénario est déjà en cours d’exécution, ça éteint de toute façon au bout de 2 minutes (même si un autre scénario s’exécute 30 secondes après le début du premier).

J’ai tenté :

  1. d’utiliser une action d’arrêt de scénario dans ce même scénario, mais ça stoppe sa propre exécution ^^
  2. un remove_inat au tout début du scénario, mais je ne suis pas sûr que ça réponde à mon besoin
  3. j’ai cherché une fonction me permettant de savoir s’il y a déjà une exécution en cours au sein du scénario même mais je n’ai pas trouvé

Je pense qu’il doit y avoir une piste avec des variables, mais j’ai le cerveau à l’envers alors j’ai un peu de mal à voir comment faire.

Auriez-vous des pistes svp ? :slight_smile:

Merci d’avance !!

Il ne faut pas utiliser de wait mais un bloc dans. Et la normalement c’est supprimé a chaque execution. Au mieux par sécurité un petit remplacement remove_inat avant le bloc.

1 « J'aime »

Un remove_inat au debut du scénario et un DANS 2 à l’intérieur (à la place du sleep) pour l’extinction.
D’une facon générale, éviter les sleep qui bloque toute exécution.

1 « J'aime »

Trop rapide

Je le gèrerai différemment
Déclencheur :

  • Les capteurs
  • lancement toutes les 2 minutes (ca remplace le sleep)

Avec une variable timer qui s’incrémente si d’autre capteurs sont actionnés entre temps.
Une fois le timer terminé ca s’éteint

Un poil trop compliqué, mise en place de ton timer, par rapport aux propositions précédentes. Mais cela n’engage que moi.

Antoine

1 « J'aime »

Lancement toutes les 2 mn alors que déclencheurs et cron font le taf et ne prennent pas de temps cpu ?
C’est un choix.

Merci à tous pour vos idées ! Je savais bien que je n’utilisais pas le remove_inat correctement :sweat_smile: !!

Merci également pour l’astuce du « DANS », je comprends bien que ça lance un cron et évite de faire tourner un process pour « rien » pendant 2 min.

Voici comment j’ai modifié et ça semble bien fonctionner ! :ok_hand:

Petite mise en garde.
Ton remove_inat devrait précéder le 1er SI.
Si jamais tu déclenches moins de 2mn avant le passage à « journée », tu risques d’avoir une entrée dans la table de cron qui ne pas pas s’effacer.

1 « J'aime »

Bien vu ! Merci :+1:

J’ai modifié comme ceci :

1 « J'aime »

Je ne connaissais pas du tout le remove_inat !!
Si je comprend bien cette commande supprime les entrées « Dans/à » dans un scénario si il est re-déclenché.

En effet je vais donc refaire mes scénarios ou j’avais intégré des timer à la main … avec de cron toutes les 3minutes…

On est bien d’accord que je peux remplacer ça
image

Par ça
image

Si je comprends ton scenario, le timer servait juste à verifier régulièrement l’état de tes détecteurs ?
Si c’est ça, effectivement tu peux supprimer ton timer.
A chaque changement d’état de tes détecteurs, ton remove_inat va supprimer les entrées de la table des cron de ce scénario et réinitier ton compteur avant extinction.

Il servait a ajouter du temps quand on repassait devant les detecteurs pour éviter que cele s’éteigne quand on est là

Oui mais comme en faisant comme ça (avec le remove_inat) tu decales à chaque fois l’extinction, ça devrait faire l’affaire.

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