Thingspeak Talkback Idempotency issue

조회 수: 2 (최근 30일)
Zachariah Belding
Zachariah Belding 2021년 4월 16일
댓글: Zachariah Belding 2021년 4월 20일
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
Christopher Stapels 2021년 4월 16일
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월 19일
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 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 커뮤니티

카테고리

Help CenterFile Exchange에서 REST API에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by