formattage des valeurs MQTT

Forum dédié au protocole MQTT : fonctionnement, intégration ...
Pour les questions concernant le plugin de FlyingDomotic, merci d'utiliser le sous-forum dédié.
SAS-Malko
Messages : 9
Inscription : 26 sept. 2019, 15:48

formattage des valeurs MQTT

Message par SAS-Malko »

Bonjour à Tous,
Je me heurte depuis quelque jours à un problème sans doute assez simple mais la tête dedans je ne trouve pas la solution :(
Je souhaite envoyer à un capteur virtuel de température Domoticz la mesure d'un capteur DHT11, via MQTT.
La température mesurée est stockée dans la variable t.
En utilisant :
StaticJsonDocument<200> doc;
doc["idx"] = 466;
doc["nvalue"] = 0;
doc["svalue"] = t;
NB: l'index de mon capteur est bien 466 ;)
je vois que le message envoyé à MQTT est :
domoticz/in {"idx":466,"nvalue":0,"svalue":20.70000076}
-> Le capteur ne se met pas à jour

En revanche, si je force svalue par :
doc["svalue"] = "23";
par exemple,
je vois que le message envoyé à MQTT est :
domoticz/in {"idx":466,"nvalue":0,"svalue":"23"}
et le capteur virtuel de température se met bien à jour avec 23°

j'en déduis que la valeur envoyée à MQTT, pour être bien interprétée par Domoticz, doit être le contenu de la variable t mise entre des " "

Et je n''arrive pas à trouver comment faire cela

Si quelqu'un peut m'aider sur ce point.
J'ai eu beauchercher dans l'historique du forum je n'ai pas trouvé la solution.

Merci d'avance
Laurent
Flying Domotic
Messages : 772
Inscription : 10 mars 2020, 15:26

Re: formattage des valeurs MQTT

Message par Flying Domotic »

Il faut passer la variable t en string. Ça dépend du langage utilise. En Python, c'est str(t).
Répondre