Page 1 sur 1

formattage des valeurs MQTT

Publié : 30 oct. 2022, 00:02
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

Re: formattage des valeurs MQTT

Publié : 03 nov. 2022, 23:40
par Flying Domotic
Il faut passer la variable t en string. Ça dépend du langage utilise. En Python, c'est str(t).