Est il possible de faire du polling sur un certain topic

Bonjour,

Petite question, j’ai jeté un oeil dans la doc mais je ne crois pas trouver la réponse à ma question, et peut être quelqu’un a déjà eu le même soucis.

J’ai un setup basé sur d’un coté une Jeedom dans une VM et de l’autre une VM avec Instance Mosquitto + ZwaveJsUI.

Quand je fais de upgrades sur mon infra il arrive que Jeedom soit down pendant que mon MQTT est encore en train de tourner et des messages sont postés sur la queue.
Je loupe du coup de l’info (comme par exemple mon ZwaveJsUi qui change son status online sur un des topics).

La question : il y a t’il moyen de forcer JMQTT a aller lire un topic pour faire une sorte de force refresh ? J’avais pensé à un mécanisme de polling, mais y a peut etre moyen de s’en sortir mieux ? Avec le QOS ?

Donc en gros, sur la queue le message retained est bien là et mis à jour, mais dans JMQTT j’ai encore la vieille version de l’info (en espérant que ça soit clair quand je le raconte ainsi :stuck_out_tongue: )

Si quelqu’un s’est déjà cassé la tête la dessus, ça m’intéresse :slight_smile:

Merci d’avance :slight_smile:

1 « J'aime »

Salut

Tu as quoi comme paramètres de QoS et retain?

Antoine

Salut,

Sur le topic j’ai un QOS 1 coté JMQTT.

Coté MQTT/ZwaveJsUi j’ai QOS 0 et retain activé (je crois)

Hello @TheMadDotNetDev,

Dis-moi si j’ai bien compris ton besoin :

  • Jeedom est hors ligne,
  • un message (non retained) est publié sur ton Broker,
  • Jeedom revient en ligne,
  • Tu aimerais récupérer le message que tu as loupé.

Si le message est retained, il sera envoyé à tous les clients connectés ET conservé par le Broker pour être envoyé à tous les nouveaux arrivants.

Si un message n’est pas retained, il ne sera pas conservé par le Broker, uniquement envoyé aux clients connectés, puis il n’existera plus.

Il n’y a pas de mécanisme de stockage des messages non retained (c’est le but du retained).

Il n’y a pas non plus en MQTT de conservation des messages retained précédents, juste du dernier état.

Donc si ton client (jMQTT) n’est pas connecté au moment de l’envoi des messages, il ne les aura pas.

EDIT : je précise que :

  • la qos n’est la que pour les clients connectés,
  • ce que tu vois dans MQTT Explorer n’est pas ce qu’il y a dans le Broker, mais ce que MQTT Explorer a vu successivement.

Bad

C’est probablement le soucis que le message n’est pas retained, je vais voir avec les DEV de ZwaveJSUI si ils peuvent changer le réglage (car malheureusement on ne sait pas le changer depuis leurs settings).

Merci pour ta réponse :slight_smile:

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.