Scenario en boucle avec délai à l'intérieur, quelle méthode?

Bonjour le communauté !
Aujourd’hui je souhaite programmer un petit scenario tout simple pour vérifier périodiquement que mes capteur Aqara de Xiaomi fonctionnent. En effet il arrive que la communication se perde et je ne m’en rend pas forcement compte de suite, ce qui peut être problématique dans la gestion de mes automatisme.

J’ai donc crée un scenario qui enregistre la valeur de la température des sondes dans une variable puis quelques minutes plus tard (que j’appellerais ici le délai de vérification) je compare cette valeur avec la valeur actuel. Si c’est exactement la même y a un risque que ma sonde ne communique plus.

En pratique j’ai deux options :

1- Je paramètre mon scenario pour qu’il s’active toute les X minutes
2- Je lance qu’une fois le scenario mais à la fin de celui ci je demande un redémarrage du scenario

Dans la solution 1 j’ai peur de deux choses :
-Que le délai CRON du scenario + le délais de vérification s’additionnent
-Et que la relance du scenario ne s’effectue pas correctement puisque le délai de vérification n’est pas terminé. Par exemple le scenario se lance toute les 15minutes puis le délai de vérification dans le scenario va durer 15minutes également, si ce délai interne n’est pas terminé le scénario ne se relancera pas à l’issu du CRON (sauf multi-lancement activé mais ça ne semble pas souhaitable) donc je risque d’avoir des délais de vérification de mes sondes très variables.

Dans la solution 2 je pensai lancer une fois le scenario par jour à minuit et laisser ce scenario tourner en boucle de manière autonome mais je ne sais pas si c’est « élégant » en terme de gestion des ressources.

Je me tourne vers vous pour savoir quel serait la meilleur solution car je suis souvent confronté à ce type de scénario (et j’utilise souvent la solution 2), merci de m’avoir lu !

J’avais fait quelques chose de similaire.

La première question à ce poser c’est : As tu vraiment besoin de vérifier sur un courte période la cohérence de ton relevé ?
Concrètement tu peut exécuté ton scénario (1er solution) puis un cron de 30 minutes voir 1 heure puis de comparer la variable de ta température relevé.
Dans ton scénario tu fait un truc comme ça :

1-Si variable(température_relevé) =! #temperature#
2-enregistre dans ta variable la température actuel
3-prochaine exécution de ton scénario

et si 1 variable(température_relevé) =! #temperature# et que tu retourne un false c’est que tu a peut être un souci

Bonjour,

Aucune des deux méthodes, ce n’est pas du tout une bonne idée, surtout avec des variables

Pourquoi ne pas utiliser la fonction fournie par le core?
config avancée de l’équipement, alertes de communication
image

1 « J'aime »

J’ai déjà eu le cas (notamment avec des smart implant) que le module remonte des informations mais plus la valeur des sondes.
Dans ce cas il n’est pas en alerte de communication.
Encore une fois je parle de mon expérience, ce n’est pas une généralité.

Dans l’idée ca serait absolument la solution idéal, une fois paramétrée comment l’alerte peut elle être utilisée ? Par exemple je me sert de « Push Bullet » pour recevoir une notification sur mon smartphone est-ce possible ?

En espérant que cela fonctionne car souvent les modules sont pleinement opérationnels dans l’onglet santé du plugin Zigate (LQI élevé, statut OK, batterie OK…) bien qu’aucune remontée d’info ne soit présente sur la température et ce sur plusieurs jours (et ce jusqu’à ré-inclusion, c’est la seule solution)

Les alertes de non-communication arrivent dans le centre de messages; de là il est possible de configurer des actions dans la config jeedom, onglet logs

1 « J'aime »

J’ai configuré ainsi, y a plus qu’à attendre les premiers messages d’alerte pour voir si ça fonctionne


Bon par contre je sens que ça va être « pollué » par des message de warning récurent de certains plugins… :neutral_face: