[Tuto] jMQTT + Mosquitto + ZWave-JS-UI (anciennement ZWaveJS2MQTT)

Peut être un truc à essayer avec le flag retain. Est-ce que tu as coché la case retain en face de la commande de slider ?

Edit :

Bof non ça doit pas aider.

Peut être en regardant le timestamp pour déterminer si oui on non le module a reçu la dernière information…

Exact, avec un retain ça feraitmon affaire :smiley:
image

Saut que je n’arrive pas à la lire la valeur du set (23) :sleepy:

Je n’ai pas compris ?Je reprends les valeurs de ta capture pour exemple.

Ca va correspondre à la valeur du slider le 23 donc pourquoi aller la lire ? C’est toi qui l’a défini. J’avais compris que tu voulais que la valeur info reste à 24 le temps que le module se réveil, non ?

En fait j’utilise un widget code sur mes têtes thermo qui affiche la consigne réglée (consigne pending).
Si la consigne en action sur la tête est différente, la valeur s’affiche en rouge.
Mais il faut bien 3 choses pour que ça fonctionne:

  • la commande (slider)
  • la consigne pending (en gros c’est la valeur du slider qui est en attente d’envoi à la tête)
  • la consigne appliquée (différente de la consigne pending tant que la tête ne s’est pas réveillée)

La « consigne pending » correspondrait à « set » (23)

image

1 « J'aime »

Et bien du coup ça devrait le faire non ?

  • La commande d’action slider qui fait le /set
  • Une commande info (a créé) qui reprend la valeur du slider donc la consigne pending
  • la commande info qui est le …{value} et qui correspond à la consigne appliquée

Sinon désolé je dois rater qqchose d’évident pour toi :smile:

Celle là je ne vois justement pas comment faire :sweat_smile:

Et bien ne rien mettre dans la commande consigne (elle est liée au slider).

Et créer une commande info « consigne appliquée » avec l’actuel contenu de ce que tu as mis dans la commande info consigne.

Si je ne renseigne rien dans un topic (ton carré rouge):

Et c’est le slider qui prend la valeur de la consigne non? pas l’inverse?

Ah j’avais jamais essayé de ne rien mettre.

Tente de faire un virtuel du coup :slightly_smiling_face:.

La commande slider passe au Broker l’instruction de faire le /set donc de modifier la consigne de la tête thermostatique, elle ne récupère rien.

Donc je ferai :
Équipement jMQTT :

  • commande action slider sans lien avec une commande info
  • commande info « consigne appliquée » avec le {value} du cadre rouge

Équipement virtuel :

  • commande action qui appelle la commande action de jMQTT et lié à la commande info consigne
  • commande info consigne vide
  • commande info « consigne appliquée » qui appelle la commande info de jMQTT

Si je peux faire sans un virtuel j’aimerais autant mais si pas le choix tant pis…

  • commande action slider sans lien avec une commande info

Sauf erreur de ma part, ce qui est entouré en rouge permet au slider de prendre la valeur de la commande « consigne » (ici le slider prend 22 au repos) sinon le slider ne sait pas quelle est sa valeur actuelle avant qu’on ne le modifie.

  • commande action qui appelle la commande action de jMQTT et lié à la commande info consigne
  • commande info consigne vide

Même remarque que précédemment si info « consigne » vide, ce n’est pas en liant la « commande » action que info « consigne » changera de valeur, c’est l’inverse…

Au final ça fonctionne avec ça:


image

Je ne sais pas pourquoi ça ne fonctionnait pas avant!

1 « J'aime »

Ah, ben voilà, cool :partying_face:

1 « J'aime »

Alors, ton objet répercute la consigne sur le topic au moment du réveil, et pas avant, comme attendu, et à l’inverse des modules de @Mael
La seule différence c’est le module à pile, zwavejs attend son réveil avant de publier le topic de confirmation dans ce cas. Ce n’est pas un retour d’état.

Salut,

Pour info, il est possible de rafraîchir isolément les valeurs, pour récupérer seulement celles dont on a besoin sans surcharger le réseau.

Il faut créer une commande avec comme topic : zwave/_CLIENTS/ZWAVE_GATEWAY-zwavejs2mqtt_RPi/api/refreshCCValues/set
(à modifier en fonction du nom sous lequel zwavejs2mqtt communique avec le broker mqtt)

Et comme valeur : {"args": [4, 38, 1]} où 4 représente le node et 38, 1 le topic mqtt. Pour référence, voici la commande info concernée : zwave/salon/jalousie_2/38/1/currentValue{value}

Voilà toujours une chose qui marchait bien avec openzwave, qu’il est finalement possible de faire avec zwavejs2mqtt ! Par contre, il n’est pas possible d’utiliser des templates pour automatiser la création de ces commandes avec jmqtt.

J’ai vu qu’en redémarrant le client MQTT concerné les informations non rafraichies mais présentent en « retained » dans le topic remontent.

Ok merci pour l’information, le but est donc de forcer une remontée d’information sans attendre un report ou un changement de valeur naturelle d’un module c’est ça ?

C’est ça. Ça permet de forcer le retour d’état lorsqu’il ne se fait pas correctement, pour une raison ou pour une autre. Je m’en sers pour des modules volets roulants qui ne signalent pas toujours les mouvements commandés par les interrupteurs.

Hello,
Est-ce qu’il est possible d’empêcher la lecture de certains sous-topics? Ou de ne lire que 2 ou 3 sous-topics pour un même équipement?
Par exemple ma sirène AeonLabs Siren Gen5 DSD31 remonte 255 « Scene activation » si je lit tout avec zwave/Sirène_garage/#

Je n’ai pas vu cette possibilité sur jMQTT.

Peut être un sujet à ouvrir pour demander aux développeurs mais bon s’il y a un vrai besoin tu pourrais créer un nouvel équipement pour ton sous-topic.

Enfin je ne pense pas que le jeu en vaille la chandelle mais les développeurs de jMQTT aurons peut être une autre analyse :laughing:.

Bonsoir

Une fois que tu a ajouter tes commandes en automatique et décortiqué les json
comme tu l’a fait décoche l’ajout automatique de commandes
puis supprime toutes les commandes dot tu n’a pas besoin.