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