Un déclencheur provoqué dans un Plugin

Bonjour à tous les développeurs,

Il existe deux types de Déclencheurs dans les scénarios :

  • Un déclencheur provoqué
  • Un déclencheur programmé

Je cherche comment utiliser un déclencheur provoqué (un changement d’état d’une commande info par exemple) dans un plugin.

Je sais faire un déclencheur programmé, plusieurs plugins font cela très bien, mais je cherche, je cherche dans les plugin un exemple de code pour un déclancheur provoqué, impossible, je n’en trouve pas.

Seuls les scénarios font cela, implémentation d’un trigger dans un scénario ne semble pas possible ou je n’ai pas trouvé. Il faut un cron qui teste régulièrement une info mais ce n’est pas ce que je cherche.

Avez vous une piste ou vous êtes déja tous convaincus qu’on ne peut pas le faire, qu’il faut passer par un scénario ?

Merci

Salut,

Tu peux le faire, tu dois utiliser la class listener du core. C’est le pendant de la class cron

Tu dois enregistrer/créer ton listener en donnant les ids des commandes à surveiller et la méthode de ton plug-in à appeler en cas de déclenchement.

Je ne suis pas sur l’ordi pour le moment donc difficile de donner un exemple mais tu verras que ça marche un peu comme les cron.
Et puis si t’as déjà la bonne class il te suffit d’aller voir le code pour mieux comprendre :wink:

Edit: c’est dans ma todo d’écrire la doc dev pour les listeners

edit2: pour un exemple, tu peux regarder par exemple le code de #plugin-alarme dans les plugins officiels si tu l’as ou alors mon plugin #plugin-designimgswitch, le repo est public: https://github.com/Mips2648/jeedom-designImgSwitch

3 « J'aime »

@Mips t’es au top, super, merci !!!

J’ai les deux plugins, je vais donc aller directement voir comment cela a été implémenté.
Je vais me plonger la dedans… la puissance de jeedom me surprendra toujours…

1 « J'aime »

Bonsoir @sigalou
Tu peux également allé voir mon plugin magictrigger pour l’utilisation des listeners

Benoit

Merci @benoit5672

1 « J'aime »

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