Comportement étrange MQTT Sub - Attention au type de données

Bonjour, je note un comportement étrange de MQTT Sub.
J’ai un capteur qui envoie dans un topic du genre maison/lieu/temperature, je vois bien les publications dans MQTT Explorer, dans Node-Red,… Je souscris à ce topic dans la V5 mais il n’est pas mis à jour.
Par contre, si je publie dans ce même topic exactement la même valeur avec MQTT Explorer, alors la V5 se met à jour, je ne vois vraiment pas à quoi cela peut être dû :-/

En fait, je viens de trouver, je poste quand même si cela peut servir à d’autres. Mes capteurs publient les valeurs en string, et je convertis dans Node-Red avant archivage dans influxdb.
Mon topic MQTT Sub voit donc bien des données mais au format String32. Et quand je remettais la même valeur dans MQTT Explorer, c’était un float d’où la prise en compte.

Ma question est donc devenue: est-il possible dans la V5 de convertir du texte en float ? Sinon je passerai également par Node-Red ou je modifierai le code de mes capteurs :-/

EDIT: autre remarque, le champ texte ne se met pas à jour automatiquement sur le Dashboard, il faut rafraichir la page, est-ce normal?

EDIT2: finalement, j’ai créé un topic dédié sur mosquito ou tout est converti en float avant envoi, et je ne récupère toujours rien, tant avec un MQTT subscribe qu’avec un MQTT All.

Bonjour, j’ai profité d’une journée de RTT pour me coller au problème, il s’agissait donc d’un problème de décimales, le MQTT subscribe était réglé en ANA16, format REAL avec 2 décimales en sortie et la conversion dans NodeRed envoyait les 5 décimales du capteur ce qui rendait le subscribe inopérant. J’ai résolu le problème avec une conversion dans NodeRed avec 2 décimales (toFixed(2) en JS), tout fonctionne à merveille maintenant.
C’est quand même dommage que la conversion ne soit pas automatique au niveau de l’IPX.

Au fait, je n’ai pas vérifié, toujours rien de neuf du côté des true/false, 0/1, … Il me semblait qu’un ticket était ouvert sur cette problématique de sortie de parser vers IO.

@Thierry_59

Cool…si tu peut partager ton expérience utilisateur en partageant ton flow, ça peut inspirer d’autres en montrant la voie :star_struck: :wink:

J’intercale juste cette fonction dans NodeRed pour maitriser le nombre de décimales

var temp = parseFloat(msg.payload).toFixed(2);
msg.payload = temp
return msg;

Comme ça j’ai toujours deux décimales, ce qu’attend le MQTT subscribe de la V5 (Real, 2 décimales).

1 « J'aime »