Thingspeak Talkback Idempotency issue

3 views (last 30 days)
I use this method to update channels and execute Talkback: https://www.mathworks.com/help/thingspeak/writedataandexecutetalkbackcommand.html
Most of the time this works great, but once and and a while I do not recieve a response from the http Post. This is more than likley due to a weak cellular connection. When this happens, I redo the http Post and usually get a server response the second time. The problem is, the talkback was already executed on the first try that was not recieved. That means the second try does not contain the Talkback. Any ideas on how to overcome this issue?

Accepted Answer

Christopher Stapels
Christopher Stapels on 16 Apr 2021
One possible solution, though possibly expensive in terms of bytes would be to read the command - instead of executing. Then when once you get the command, send the execute command to remove the old from the list but ignore the response.
The get command requires the talkback ID, but you could get all commands and read the last one.
  4 Comments
Zachariah Belding
Zachariah Belding on 19 Apr 2021
Modem: Ublox SARA R410m
MCU: Arduino mega
My sketch does all of the communication with the modem, so I am not using any libraries.
This is probably a long shot, but I'll ask anyway. If I give you my channel ID, are there any logs available on thingspeak's end?
Zachariah Belding
Zachariah Belding on 20 Apr 2021
I am going to move away from Talkback, and instead use an extra channel field to send commands to the device. I will use this method: https://www.mathworks.com/help/thingspeak/readlastfieldentry.html while the socket is still open after updating fields. It will certainly use more data, but at least I won't have to re-open the socket. Also I will be able to guarantee command delivery.
Thank you for your help and idea.

Sign in to comment.

More Answers (1)

Vinod
Vinod on 19 Apr 2021
Out of curiosity, are you using talkbacks as a mechanism for 2 devices to synchronize values/state? If so, rather than a polling model, perhaps you can consider using MQTT publish and subscribe to a topic that is one of the fields on your channel?
  1 Comment
Zachariah Belding
Zachariah Belding on 19 Apr 2021
I am using talkbacks as commands from a human. I have considered Mqtt, but I am not quite sold on it yet.
As far as I know thingspeak mqtt only provides Qos 0. In my mind, I would have some of the same issues. Although, I could probably update more frequently because of the data savings.

Sign in to comment.

Communities

More Answers in the  ThingSpeak Community

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!