Page 1 sur 1

Données MQTT domoticz (résolu)

Publié : 11 juin 2019, 10:57
par pataqua
Bonjour,

j'essaye de comprendre le fonctionnement du protocole MQTT, entre un wemos D1 et Domoticz.
Si je n'ai pas de problème pour envoyer un résultat de mesure vers domoticz, je n'arrive pas à lire les infos provenant de domoticz/out.

Code : Tout sélectionner

// D'après http://m2mio.tumblr.com/post/30048662088/a-simple-example-arduino-mqtt-m2mio
void callback(char* topic, byte* payload, unsigned int length) {
   DynamicJsonDocument jsonBuffer( MQTT_MAX_PACKET_SIZE );
   String messageReceived="";
   
   // Affiche le topic entrant - display incoming Topic
   Serial.print("\nEntering MQTT Callback. Message arrived regarding topic [");
   Serial.print(topic);
   Serial.println("]");

   // decode payload message
   for (int i = 0; i < length; i++) {
   messageReceived+=((char)payload[i]); 
   }
   // display incoming message
   Serial.println(messageReceived);
     
si je publie un message avec mosquitto_pub sur domoticz/out, je le reçois bien dans mon eESP, si j'abonne mosquitto_sub à domoticz/out, je vois également les infos dans le terminal, mais jamais dans mon programme.
Avez vous une idée?

Re: Données MQTT domoticz

Publié : 11 juin 2019, 18:39
par Antori91
Bonjour,

Si vous utilisez la librairie pubsub, un problème peut-être similaire et sa solution ici (valeur de MQTT_MAX_PACKET_SIZE )>>> http://domoticz.com/forum/viewtopic.php?f=38&t=21608

Re: Données MQTT domoticz

Publié : 11 juin 2019, 18:54
par pataqua
Merci beaucoup,
La solution était bien la, La longueur des messages de Domoticz est supérieure à 128.
Il a donc suffit de modifier dans le fichier PubSubClient.h la ligne:
#define MQTT_MAX_PACKET_SIZE 128
en #define MQTT_MAX_PACKET_SIZE 1024

et tout rentre dans l'ordre.