je me pose régulièrement la question de la manière la plus propre de gérer l’intervalle mini entre deux déclenchements d’un même scénario.
Le problème se pose dans différents cas : éviter un double appui par erreur sur un interrupteur, espacer les alertes sur des infos qui n’ont pas besoin d’être remontées à chaque mise à jour de l’info, éviter des scénarios déclenchés de manière redondante (deux jeedom en parallèle pour la sécurité et pour couvrir toute la maison), etc.
Il y a de nombreuses possibilités mais je m’interroge sur la manière la plus propre, ou en tout cas la moins pénalisante pour le fonctionnement de jeedom. Je suis d’ailleurs étonné qu’il n’y ait pas cette option dans les propriétés du scénario, ce serait très utile.
Bonjour,
pour les scénarios qui n’ont pas besoin du multi-lacement (typiquement ouvrir le portail, allumé la lumière), je finis mes scénario par un sleep X secondes.
Je sais, certain vont dire les Sleep…
je vais pas rentrer dans le débat ! Je peux juste te dire « finis tout tes scénarios souhaité par un sleep, si tu vois une différence de charge sur une semaine, je te paie une bière ! »
Pour ma part, je test dans le scenario, de quand date le dernier changement de valeur de mon equipement (ou combien de fois a-t-il changé d’etat qu cours des x dernieres minutes). Si ca fait moins de x minutes, je ne lance pas la suite.
Ca me permet, par ex., d’etre notifié une seule fois si qqun sonne a la porte 2 ou 3x en moins d’une minute, mais d’etre notifié quand même une 2eme fois si il insiste encore
Merci pour vos réponses. Mais qu’est ce qui est le moins gourmand en ressources ? Lancer un scénario de nombreuses fois et en ressortir rapidement avec un premier test, ou rester volontairement longtemps dans un scenario avec un sleep ?
J’utilise déjà ces deux méthodes selon les cas de figure, au plus simple, sans aucun souci, car mon jeedom principal est une sur une VM d’un gros serveur où j’ai bien plus de ressources que nécessaire et donc aucun souci de surcharge ni réactivité.
Je viens de mettre un deuxième jeedom en parallèle sur raspberry qui surveille le premier, fait une alarme redondante, étend la couverture rfxcom, etc. Et c’est sur ce système beaucoup plus léger que je veux essayer d’optimiser la manière de travailler.
Je n’ai pas testé, mais le sleep garde le scenario en execution dans un thread, et le nombre de thread est limité… Donc pas une bonne idée à mon avis.
J’ai plus de 400 scenarios qui tournent sur un NUC i5 (dont plusieurs qui exécutent d’autres scenario (pour factoriser)) , très peu de sleep et jamais plus de qq secondes, juste pour espacer certains appels, au rfxcom notamment,
quelques scenarios en multilancement (les notifications )
et ca se passe bien comme ca… mais ca n’est que ma modeste expérience.