Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

Eviter la répetition d'un scenario pendant un certain temps

Réservé à la création de scénarios dans JEEDOM
hal01
Timide
Messages : 24
Inscription : 04 avr. 2015, 09:17

Eviter la répetition d'un scenario pendant un certain temps

Message par hal01 » 22 janv. 2019, 21:25

Bonsoir,
Je cherche mais je trouve pas ... peut être une histoire de mots clefs....

En gros je cherche à éviter que mon scénario (de notification) ne soit relancé (ou alors Stoppe) s'il a été lancé il y à moins de X secondes (30 secondes par ex.)

Pourquoi ?
Car mes capteurs d'ouverture peuvent etre déclenchés 2 fois en temps court, mais qu'il s'agit de la même action à notifier :
Par exemple porte refermée quand il fait froid le temps de sortir prendre le courrier, ou volet de la boite au lettre qui oscille...
du coup j'ai 2, 3 , 4 notifications en qques secondes.

Y'a t'il un moyen de pour faire de : (je cherche des solutions...)
  • * Mettre en désactivation temporaire du stimuli du scénario ... ?
    * Une désactivation temporaire du scénario suivi d'une réactivation automatique
    * De stopper le scénario si sa dernière exécution date de moins de X secondes

Sur Zibase (d'ou je viens) avait une fonction adaptée qui était un bloc attachment=0]2019-01-22_21h02_39.jpg[/attachment]
Merci du coup de main d'avance ....
Pièces jointes
2019-01-22_21h02_39.jpg
2019-01-22_21h02_39.jpg (26.29 Kio) Consulté 1504 fois
Zibase 1 - NAS Xpenology (Chroot) - actioneurs/sondes ,X10, oregon, nabaztag, karotz

Avatar de l’utilisateur
bartounet
Actif
Messages : 2541
Inscription : 14 juil. 2016, 10:09

Re: Eviter la répetition d'un scenario pendant un certain temps

Message par bartounet » 22 janv. 2019, 21:29

Tu as pas mal de facpn de faire
Régler tes détections pour qu'elles se fassent mois souvent

Faire des conditions avec stateduration par exemple

Ou plus simple avec une variable qui sincrementes
Jeedom à jour Debian 9
VM VMWARE ESXi 6.7 ( SSD)
Stick ZWave / FIBARO / Ikea Light / Yeelight / Google Home
Wifi Unifi / PFSENSE / Reverse Proxy DMZ SSL

Passionné de bidouillage informatique en tout genre
Mon blog : http://blog.info16.fr

hal01
Timide
Messages : 24
Inscription : 04 avr. 2015, 09:17

Re: Eviter la répetition d'un scenario pendant un certain temps

Message par hal01 » 23 janv. 2019, 13:37

Merci pour la réponse, j'aurais besoin malgré tout d'un peu plus d'aide pour mettre en oeuvre
bartounet a écrit :
22 janv. 2019, 21:29
Régler tes détections pour qu'elles se fassent mois souvent
Comment on fait cela dans jeedom ?
==> le principe est bien qu'il y a plusieurs detections envoyées par le capteur mais que je ne souhaite qu'une seule notification sur une période
bartounet a écrit :
22 janv. 2019, 21:29
Faire des conditions avec stateduration par exemple
J'ai essaye le calcul suivant
StateDuration(#[Commandes][testcdes][Statut 5]#)
et j'ai un retour à -2 ... je fait quelquechose de mal
bartounet a écrit :
22 janv. 2019, 21:29
Ou plus simple avec une variable qui sincrementes
de type #timestamp# ? avec un calcul en condition de la diffrence entre la variable et l'heure actuelle ?
Ou quel autre moyen ?

Y'a pas juste une fonction simple de desactivation du scenario pendant 60 secondes ... une action timée qui mets le scenario en veille pendant un certain temps ?
Zibase 1 - NAS Xpenology (Chroot) - actioneurs/sondes ,X10, oregon, nabaztag, karotz

Avatar de l’utilisateur
propositionjoe
Timide
Messages : 302
Inscription : 17 févr. 2016, 21:39
Contact :

Re: Eviter la répetition d'un scenario pendant un certain temps

Message par propositionjoe » 23 janv. 2019, 14:35

Salut,
Je plussois à ce qui vient d'être dit,
Y a mille manières de le faire.
Le plus simple à mettre en œuvre étant d'utiliser une variable, couplé avec 2 scénarii:

- le scénario qui se déclenche avec l'ouverture de la porte a un SI en début qui teste la variable:
> SI variable==1 il s'arrête
> SI 0 il continue ; exécute les commandes que tu veux, puis passe la variable à 1 et lance le 2e scénario

Image

- le deuxième scénario a un champs DANS qui repasse la valeur à 0 dans 15 minute(s)

Image

Have fun
Proxmox avec VM jeedom
Zigbee2mqtt, Broadlink, Zwave, Blea, Tasmotta, EspEasy
Mon blog: https://carmagnole.ovh

hal01
Timide
Messages : 24
Inscription : 04 avr. 2015, 09:17

Re: Eviter la répetition d'un scenario pendant un certain temps

Message par hal01 » 23 janv. 2019, 16:28

Merci pour la structure.
Je me demandai si on pouvait mettre le bloc DANS dans le scénario principal pour éviter de creer un autre scenario ?
Ca pourra me servir dans des scenarios multi-declencheurs...


Entre temps j'ai trouvé la solution avec lastChangeStateDuration sur l'élément déclencheur

En gros, Mon scenario est provoqué par un seul capteur que j'ai mis comme seul événement declencheur de mon scenario
#[Entrée][Porte Rue][Statut]#

Et dans la boucle SI je test la durée depuis le dernier changement d'etat vers 0 par la fonction (derniere fois qu'on a fermé la porte) dans la condition, en vérifiant qu'elle est supérieur à 60 (secondes)

Code : Tout sélectionner

LastchangeStateDuration(#[Entrée][Porte Rue][Statut]#,0)>60
Si ca fait plus d'une minute qu'on a fermé la porte alors je fais mes actions sinon... rien

En effet, j'ai testé en mettant le dernier changement vers 1 mais ca fait 0 secondes... car c'est le changement courant qui a déclenché le scénario qui est pris en compte
2019-01-23_16h26_15.jpg
2019-01-23_16h26_15.jpg (44.27 Kio) Consulté 1448 fois
Et ca marche plutot bien

A mon avis c'est plutôt pratique dans des scenarios pas trop complexes

Mais bon petite idée de fonction supplementaire simple (comme sur la zibase) serait d'avoir la derniere execution du scenario. Et non l'execution courante.
Que la fonction lastScenarioExecution puisse aussi servir dans son propre scenario ... et pas que dans un autre
Que la moment de la derniere execution soit mis à jour à la fin de l'execution et non au debut
CF viewtopic.php?t=40393
Zibase 1 - NAS Xpenology (Chroot) - actioneurs/sondes ,X10, oregon, nabaztag, karotz

julien74
Timide
Messages : 213
Inscription : 02 déc. 2015, 15:11

Re: Eviter la répetition d'un scenario pendant un certain temps

Message par julien74 » 25 janv. 2019, 14:16

Moi je passerai par une variable sémaphore:

- condition de declenchement
- puis test si timestamp>variable timestamp + x secondes
- si oui, mettre cette variable à la valeur du timestamp, et faire l'action

Cela n'empeche pas le scenario de se lancer, mais si l'action s'est lancé un instant t, le scenario se lancera et ne fera rien penfant un certain temps.

Je ne sais pas la charge induite par jeedom (lancement d'un scenario, evaluation de condition et fin de scenario) vaut le fait de ne pas gerer 2 scenario avec des disable / enable.

eric.92
Timide
Messages : 22
Inscription : 05 janv. 2019, 06:00

Re: Eviter la répetition d'un scenario pendant un certain temps

Message par eric.92 » 28 juin 2019, 07:32

Que la fonction lastScenarioExecution puisse aussi servir dans son propre scenario ... et pas que dans un autre
Je suis 100% d'accord avec ce souhait ; qu'il y ait beaucoup de façons de faire c'est une chose, mais qu'il y ait une solution intuitive et directe en est une autre. Je continue de penser que dans une certaine mesure la Zibase offrait un meilleur compromis entre "temps passé à configurer" et "fonctionnalités avancées". Il faudrait encapsuler les fonctions les plus utiles en pratique et les mettre plus en avant. Trop de choix ou des mises en oeuvre lourdes pour un besoin simple perdent ou découragent l'utilisateur, et surtout augmentent la quantité de choses à maintenir en parallèle.

julien74
Timide
Messages : 213
Inscription : 02 déc. 2015, 15:11

Re: Eviter la répetition d'un scenario pendant un certain temps

Message par julien74 » 28 juin 2019, 10:00

Une autre facon est d'empecher le meme scenario de se lancer 2x en meme temps
ET
mettre un sleep à la fin.

Comme ca le scenario se lance, fait ce qu'il a à faire, attend x secondes, mais pendant ce temps là il peut pas se lancer en parallele.

Répondre

Revenir vers « Scénarios »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité