I'm using TinyMQTT in a home automation project on a Pico + ESP8266.
About 20% of the time when handling new messages to subscribed topics, my message events fire but do not contain the topic or message, meaning I am unable to handle the message properly.
Subscribing using mosquitto_sub to check what is going on shows that the messages are definitely there and look normal, so this is an issue on the Pico side.
As a workaround I am sending an error back in the case of a null topic so that the UI can ask the user to try again but this is not satisfactory.
The fact it happens only a proportion of the time for identical messages suggests to me that it might be some kind of latency issue reading the data.
Anyone seen anything like this before with TinyMQTT? I am loth to switch to the much heavier MQTT, although I haven't tried it to see if it behaves better yet.
function MQTTmessage(msg) {
console.log("MQTT message " + msg.topic + ":" + msg.message);
if (msg.topic.endsWith("/topic1")) {
//doSomething();
}
if (msg.topic.endsWith("/topic2")) {
//doSomethingElse();
}
if (msg.topic == "" || msg.topic == null) {
//in this case msg.message is also empty
throwError(null, "null message received - please try again", false);
}
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
I'm using TinyMQTT in a home automation project on a Pico + ESP8266.
About 20% of the time when handling new messages to subscribed topics, my message events fire but do not contain the topic or message, meaning I am unable to handle the message properly.
Subscribing using mosquitto_sub to check what is going on shows that the messages are definitely there and look normal, so this is an issue on the Pico side.
As a workaround I am sending an error back in the case of a null topic so that the UI can ask the user to try again but this is not satisfactory.
The fact it happens only a proportion of the time for identical messages suggests to me that it might be some kind of latency issue reading the data.
Anyone seen anything like this before with TinyMQTT? I am loth to switch to the much heavier MQTT, although I haven't tried it to see if it behaves better yet.