Hello,
I have an application that sends data points to Ubidots via MQTT. Initially, we used QoS 0, but we noticed occasional missing data points, which we attributed to poor TCP connections.
However, as these data points have now become critical, we cannot afford to lose them. Therefore, we switched to QoS 1 to ensure that the broker acknowledges each published message (PUBACK).
Currently, the Ubidots MQTT broker does acknowledge the messages, but the data points do not consistently appear in the device variables. We are still experiencing occasional missing data points, with 1-3 data points missing intermittently.
Please see the attached picture, which shows the interval between two data points that should typically be less than or equal to 1.
I have also attached a log sample from the device to show the acknowledgement
rtt:~$ [03:37:49.655,334] <inf> main: Resolved: 3.139.145.194
rtt:~$ [03:37:49.855,499] <dbg> main: sending_thread_handler: About to Send
rtt:~$ [03:37:49.855,529] <dbg> main: sending_thread_handler: In Send
rtt:~$ [03:37:50.264,678] <inf> net_mqtt: Connect completed
rtt:~$ [03:37:50.620,330] <dbg> main: mqtt_event_cb: MQTT event: CONNACK [0] result: 0
rtt:~$ [03:37:50.620,361] <inf> main: MQTT client connected!
rtt:~$ rtt:~$ [03:37:50.620,971] <dbg> main: publish: [publish] Buffer: {"sample1":"3.513","sample2":"206.737","timestamp":"1724780164000","mr":1}
rtt:~$ [03:37:50.652,130] <inf> main: PUBLISHED on topic "/v2.0/devices/xxxx" [ id: 221 qos: 1 ], payload: 240 B
rtt:~$ rtt:~$ [03:37:50.847,991] <dbg> main: mqtt_event_cb: MQTT event: PUBACK [3] result: 0
rtt:~$ [03:37:50.848,022] <inf> main: PUBACK: Message Acknownledged
rtt:~$ [03:37:50.854,766] <inf> net_mqtt_sock_tcp: Closing socket 0
rtt:~$ [03:37:50.854,949] <dbg> main: mqtt_event_cb: MQTT event: DISCONNECT [1] result: 0
rtt:~$ [03:37:50.854,980] <inf> main: MQTT client disconnected 0
The log above is similar for all the points including the missing dots.
Kindly advice on how to proceed.
Best regards