Thanks for the explanation - yes, that makes loads of sense. I've just added your suggestion of the extra events and published a new module.
The issue is that the MQTT module was only originally designed for QoS 0 (because the TCPIP that's used most of the time basically has its own QoS anyway) and extra QoS levels have been partially tacked on over time to handle specific peoples' use cases...
Yours seems like a great reason for having QoS 1 though.
If someone really does needs QoS 2 then I think we should probably look at adding a new module for it (possibly just using a proper JS library from elsewhere) - I've already had several complaints that the standard MQTT one is too big, leading to https://www.espruino.com/tinyMQTT
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.
Thanks for the explanation - yes, that makes loads of sense. I've just added your suggestion of the extra events and published a new module.
The issue is that the MQTT module was only originally designed for QoS 0 (because the TCPIP that's used most of the time basically has its own QoS anyway) and extra QoS levels have been partially tacked on over time to handle specific peoples' use cases...
Yours seems like a great reason for having QoS 1 though.
If someone really does needs QoS 2 then I think we should probably look at adding a new module for it (possibly just using a proper JS library from elsewhere) - I've already had several complaints that the standard MQTT one is too big, leading to https://www.espruino.com/tinyMQTT