Proposition d'amélioration jmqtt pour gestion des valeurs au format texte

Bonjour;

Je suis occupé de bascuer tout mon réseau zwave vers zwavejs2mqtt (50 nœuds, dont 5 ou 6 restent à migrer basculés en une grosse nuit, aucun n’a du être réinclus au niveau zwave, zwavejs a absolument tout récupéré de la clé à l’identique), le tout dans une vm spécifique incluant le brocker, service Ebusd2mqtt pour ma chaudière, portainer, et les futurs autres protocoles que je basculerais en MQTT.

Tout est bien isolé, chacun dans son petit container sous docker (avec docker-compose) et tourne à merveille depuis hier.

Tout d’abords bravo pour l’évolution faite sur le plugin jmqtt ces dernières années, je l’utilise en effet depuis aout 2017 lorsque j’ai domotisé ma chaudière et qu’il me fallait utiliser le protocole Ebusd et MQTT pour pouvoir tout interfacer avec jeedom, j’avais d’ailleurs fait un post qui s’est transformé en tuto à l’époque : (https://forum.jeedom.com/viewtopic.php?t=34225)

A cette époque j’ai participé aux bêtatests des toutes premières évolutions de jmqtt avec son développeur qui partait à la base d’un fork du plugin mqtt de lunarok … car pour ebusd il fallait absolument pouvoir parser les topicss json pour en extraire les valeurs voulues et le plugin originel mqtt ne le permettait absolument pas …

J’ai donc fait toute ma config de communication avec ma chaudière à cette époque, c’était assez lourd et long pour parser correctement les topics en json dans les premières versions de jmqtt mais je n’ai ensuite absolument jamais plus du remettre les mains dans le plugin jmqtt car Il ne me servait qu’à ça jusqu’à hier et il a toujours tourné comme une horloge.

Aucune mise à jour n’est venue casser ce que j’avais créé et configuré dans ce plugin il y a plus de 4 ans !!!
Et ça c’est assez remarquable pour le souligner, vraiment bravo aux DEV !

Du coup j’y ai seulement remis les mains hier et j’ai donc découvert d’un coup avec grand étonnement toutes les nouvelles fonctionnalités et toutes les améliorations de ce plugin sur 4 ans, et je reste stupéfait que malgré les évolutions colossales tous les équipements que j’y avais créés pour ma chaudière sont restés parfaitement fonctionnels au fil des années, vraiment bravo !

Donc pour en revenir au sujet, serait-il possible d’intégrer une gestion de « liste de valeurs texte » pour des topics integers par exemple ?

J’ai en effet des vannes spirtiz par exemple et le mode actif renvoyé par le plugin z-wave était un string genre « off, chauffage, pleine chauffe, eco, … » et suite au passage sous zwavejs j’ai maintenant uniquement la valeur numérique correspondante du côté MQTT, donc (0 pour off, 1 pour chauffe, 11 pour eco, 15 pour pleine chauffe, …).
Ca ne pose pas fondamentalement de problème mais dans mes scénarios de gestion de thermostats j’avais utilisé cette infos au format text vu que c’étais la seule dispo et j’ai donc du les adapter. Heureusement j’avais prévu le coup et ces string spécifiques à l’équipement étaient mises en paramètre dans des variables pour pouvoir les modifier d’un coup partout en cas de changement de matériel et donc il ne m’a fallu que quelques secondes pour aller remplacer les textes par leurs équivalences numérique dans mes variables pour que tous mes scénarios soient à nouveaux opérationnels.

Mais bon je me suis ensuite dis que ça pourrait être hyper intéressent de pouvoir définir une commande info de type « liste » et de pouvoir lui donner en paramètre une liste de correspondance integer/texte pour récupérer directement un texte en valeur.
Ca éviterait de devoir passer par le widget ou un virtuel pour obtenir une valeur humainement lisible. Et même parfois rendre un scenario qui utilise ce type de valeur plus lisible aussi qu’avec un entier …

Il me semble que le plugin Hue (que je n’ai plus sur ma machine) et le plugin googlecast permettent d’avoir des infos ou même des actions de type liste.

Alors ça serait envisageable comme évolution ? Avec tous les équipements qu’on va faire de plus en plus passer par MQTT pour moi ça deviendra quasi indispensable de pouvoir à un moment retransformer simplement une donnée numérique en son equivalent texte et inversément.

@+

1 « J'aime »

J’ai jeté un oeil, mais ce genre de mécanique existe pour les commandes actions (sous-type Liste) et pas pour les commandes infos.
J’y vois aussi un interêt mais je ne me represente pas encore quelle interface utilisateur est possible pour adresser cette configuration.
Comment était-ce représenté dans les plugins que tu as cité?

En effet on le retrouve seulement au niveau des actions, possible dans un virtuel par exemple.
Mais même là on ne peut pas faire de correspondance entre une valeur et un texte de toute façon.

Il faudrait donc intégrer ça dans un mécanisme totalement propre au plugin ou alors adapter le core pour rendre cette fonctionnalité disponible partout …
A mon sens ça manque à jeedom et souvent il faut jouer soit avec un virtuel ou un scenario ou encore le widget si c’est que pour de l’affichage alors que ça serait tellement plus simple de pouvoir mettre ça directement au niveau de la commande action ou info.

Je vais une fois me pencher sur « Formule de calcul » de la page configuration des commandes pour voir si on peut pas y jouer avec du PHP pour obtenir ce fonctionnement.

Je l’ai déjà fait aussi dans des virtuels en faisant du « str_replace » directement dans la valeur d’une info genre :

str_replace("1","Auto",str_replace("2","Confort",str_replace("3","Eco",str_replace("4","Eté",#[Global][Chaudière][Mode]#))))

Mais c’est lourd et faisable que dans un virtuel.

Edit :
« Formule de calcul » de la page configuration n’est dispo que pour des commandes de type numérique donc pas possible de jouer avec du PHP pour y faire du str_replace et remplacer la valeur numérique par un texte dans une commande de type « Autre » …

Bonjour,

Le plugin « mode » permet de gérer une liste d’actions, et du coup l’info (enfin la commande info du plugin) c’est effectivement une liste de valeurs au format texte. Mais tu ne le sais pas quand tu reçoit l’information et ce n’est pas une information envoyée dans l’information. Et d’ailleurs, il n’y a aucun remplacement, l’info n’est que la valeur texte, pas de valeur numérique correspondante.

J’ai demandé d’avoir un type générique de type « liste » aussi mais pour l’instant ça n’existe pas et c’est pas possible… Quoique la v4.2 propose aux plugins de gérer leur propre type générique, c’est peut être une piste.