Duree de vie des messages dans la queue

Bonjour @Mips et merci pour ton plugin.

C’est exactement ce que je cherchais. Des queues faciles a mettre en place, avec une gestion des accès concurrents. Fini les messages qui n’arrivent pas car le channel de communication est déjà utilise.

J’aurai 2 suggestions a faire, que je voulais intégrer dans le développement de mon plugin avant que je découvre le tien.
1/ pour un channel de communication (par exemple la Google Home de la cuisine), je ne souhaite pas que les messages restes plus de 5 minutes dans la queue. Si je ne peux pas délivrer le message dans les 5 minutes, ils n’ont plus lieu d’être, donc je voudrais qu’il soit supprimer.
Je pensais donc associer un champ ‹ lifetime › a l’objet (en minutes), et quand dans sendAllMessages qui est appele toutes les minutes, supprimer les messages qui ont ete crees il y a plus que xx minutes.

2/ pour un channel de communication (par exemple la Google Home de la cuisine), je voudrais un garde fou, et être sur que je n’empile pas plus de 10 messages par exemple. Je garderai seulement les derniers, ou les premiers (comme les duplicates).
Je pensais donc associer un champ ‹ max_message › a l’objet (0 = pas de limite) et quand tu insères le message dans la queue, tu vérifies que le nombre de messages dans la queue est inférieur au nombre max.

Merci encore pour le plugin !
Benoit

Bonjour,

  1. Pour le délai d’expiration, j’avais prévu de l’intégrer donc ca va arriver.

  2. concernant le max, je suis pas trop chaud à priori dans le sens où ca va rajouter du code et de la config pour un truc qui ne devrait pas arriver => as-tu déjà eu le cas contrairement ou etait-ce juste « au cas où » ?
    Il y a aussi la question de que faire avec? juste le drop? pas très clean et cela va poser plus de question qu’autre chose à se demander pourquoi tel message n’a pas été reçu etc
    bref ca va apporter trop de complexité pour essayer de résoudre un problème qui n’existe peut-être pas.

Pour le max (2), je n’ai jamais eu le cas, c’etait juste au cas ou. Je pense aussi que ce ne devrait pas arriver. Au pire, on peut utiliser un scenario qui regarde le nombre de message, et purge la queue si on arrive a une valeur qui n’a pas de sens.

et merci pour (1).

Bonjour @Mips je découvre ton plugin qui pourrait je pense remplacer ma gestion par scénarios et empilage de variables.
Par contre à l’inverse de benoit5672 j’ai des messages que je veux répéter tant que je n’ai pas résolu le problème (Actuellement toutes les 2 heures)
Exemple : le trop plein d’un déshumidificateur dans mon sous sol, la disjonction de ma pompe de piscine …
Je gère donc dans mon scénario si le message est unique ou à répéter.
Est ce que cela est gérer dans le plugin ou pourrait l’être dans le futur ?

Bonjour,
Le plugin réessaye d’envoyer le message tant qu’une condition n’est pas remplie.

Par contre si tu veux répéter un envoi de message, il va falloir un élément déclencheur, il me semble que c’est quand même un scénario qui va devoir gérer l’envoi (comme pour le premier message);
mais par contre ca permet de simplifier je pense

par exemple (avec ce que j’ai compris de ce que tu fais):

  • tu auras un scénario très simple, exécution toutes les 2h avec un bloc SI (bac plein) ALORS envoi le message « vider le bac »; rien besoin de plus.
  • Là ou le plugin intervient c’est que tu peux configurer une file avec une condition du style « envoi message seulement si c’est la journée et que je suis présent » et aussi d’ignorer les notification en doublons (par exemple, à définir selon tes besoins);
  • du coup ton scénario envoi « sans réfléchir » son message toutes les 2h vers la file d’attente;
    à ce moment le plugin vérifie d’abord si la notification n’est pas déjà en attente et l’ignore si oui.
    Et dès que tu rentres (ou dès le matin), il t’envoie la notification (une seule car les doublons ont été ignorés)

Hello @Mips
Je vais tenter d’expliquer ma gestion
Si un défaut survient, je positionne une variable dédiée à ce défaut à 1
Si le défaut disparait je positionne à 0
J’ai un scénario déclenché par la présence dans la pièce ou se trouve la Google home (avec un test si on est en journée) qui analyse ma quinzaine de variables dédiées aux défauts.
Si la variable == 1, je l’annonce et je test si c’est un message à répéter ou pas.
Si le message est unique je positionne la variable à 0 sinon je la positionne à 200.
Terminé pour ce premier scénario
J’ai un second scénario programmé toutes les 2 heures
Je rebalaye mes variables et si une variable vaut 200, je la remets à 1. Ce qui fait que mon premier scénario pourras dès détection de présence refaire l’annonce.
Le gros défaut est que pour chaque défaut je dois coder en dur dans les 2 scénarios.

Ok, donc ce que je proposais ci-dessus reste bon pour ton cas « répétition ». Ce n’est pas ce que tu avais implémenté mais tu arrives au même résultat avec un scénario qui déclenche le message (y a pas de secret il en faut un) et plus de variable.
Rajoute simplement (en plus de la programmation toutes les 2h), le ou les triggers sur ton état « défaut »

Pour ton cas « ne pas répéter », tu peux te passer du premier scénario et utiliser les « actions sur valeurs » dans la config avancée de la commande;
tu configure simplement l’appelle à la file du plugin avec ton message.
Les actions sur valeurs ne seront déclenchée que quand ta commande est en « défaut », une seule fois.

Et donc dans l’équipement notificationqueue tu met en condition « présence dans la pièce ».

Bonjour,

La prochaine version en stable de ce jour (devrait être dispo d’ici demain max) permet de configurer un délai d’expiration par queue.

Bonjour @Mips
Il y a la configuration en effet, par contre, j’ai paramètré 30mn mais 40mn après envoyé la notification elle est toujours dans la file d’attente

Edit : je viens de comprendre le fonctionnement, en fait la notification ne disparait pas sans déclenchement de la condition de la file d’attente.

Effectivement, c’était plus simple pour moi et je me suis dit que ça revenait au même à l’utilisation

En effet je comprends c’est plus simple

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