Interroger un broker MQTT


#1

Bonjour a tous

j’ai suivi ce sujet SP8266 + DHT22 + MQTT pour apprendre à utiliser le MQTT sous jeedom.

A présent, il est facile d’envoyer une message vers jeedom.

Mon projet aussi inutile qu’indispensable consiste à faire une boite au lettre connectée grâce a un ES8266 alimenté par pile, batterie ou panneau solaire.

Mais en cas de redémarrage de l’ESP, comment récupérer la dernière valeur envoyée ?

Merci


#2

Bonjour,

A mon sens, le plus simple est de stocker la dernière valeur dans l’EEPROM ou dans un fichier, éventuellement en l’horodatant en récupérant la date sur un serveur NTP…


#3

Merci pour ta réponse.

J’ai trouvé mon problème, il est entre la chaise et le clavier.

N’étant pas doué en prog C, j’ai négligé certaines lignes que j’ai fini par comprendre.
/----------------------------------------------------------------------------------------------------------------

if (now - lastRecu > 100 ) {
lastRecu = now;
client.subscribe(“homeassistant/switch1”);
}
}

// Déclenche les actions à la réception d’un message
// D’après http://m2mio.tumblr.com/post/30048662088/a-simple-example-arduino-mqtt-m2mio
void callback(char* topic, byte* payload, unsigned int length) {

int i = 0;
if ( debug ) {
Serial.println(“Message recu => topic: " + String(topic));
Serial.print(” | longueur: " + String(length,DEC));
}
// create character buffer with ending null terminator (string)
for(i=0; i<length; i++) {
message_buff[i] = payload[i];
}
message_buff[i] = ‘\0’;

String msgString = String(message_buff);
if ( debug ) {
Serial.println("Payload: " + msgString);
}

if ( msgString == “ON” ) {
digitalWrite(D2,HIGH);
} else {
digitalWrite(D2,LOW);
}
}
/----------------------------------------------------------------------------------------------------------------

Problème résolu.

Désolé pour le dérangement