Thingspeak Talkback Idempotency issue

1 次查看(过去 30 天)
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?

采纳的回答

Christopher Stapels
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 个评论
Zachariah Belding
Zachariah Belding 2021-4-20
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.

请先登录,再进行评论。

更多回答(1 个)

Vinod
Vinod 2021-4-19
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 个评论
Zachariah Belding
Zachariah Belding 2021-4-19
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.

请先登录,再进行评论。

社区

更多回答在  ThingSpeak Community

Community Treasure Hunt

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

Start Hunting!

Translated by