Why does ThingSpeak return "0" when more than one data point is routed?

2 views (last 30 days)
I'm having my data routed from Blues Notehub to ThingSpeak and it works fine, as long as there is only one data point being routed. If there are more than one, the rest do not arrive and ThingSpeak returns a response of "0". That sounds suspiciously like a rate limit issue, right? However, I am now on a paid TS plan which should allow me 1 update per second and my Notehub route is rate limited to 1 per 14.3 seconds. According to the Blues folk, evreything is working as intended on their end. See my thread here: https://discuss.blues.com/t/only-one-of-multiple-notes-is-successfully-routed/2884.
Can you please help?

Answers (2)

Ray Berkelmans
Ray Berkelmans on 5 Mar 2025
I think we've got to the bottom of this. In the end it was an incorrect rate-limit issues on the Blues end. See https://discuss.blues.com/t/only-one-of-multiple-notes-is-successfully-routed/2884/9

Vinod
Vinod on 3 Mar 2025
Edited: Vinod on 3 Mar 2025
A zero response value is definitely the server rejecting the point.
As a paid user a channel can be updated at a rate of up to 1Hz. One point that is easy to forget is that the rate limit is at the channel level, not at the field level. I've seen code that is attempets to update one field at a time of a channel and running into the rate limit. If you're updating all 8 fields once every 14.3 seconds, I expect ThingSpeak to see every point.
Can you try posting at 1Hz directly from your device instead of going through Blue Notehub? That can help identify where the issue is.
  3 Comments
Ray Berkelmans
Ray Berkelmans on 4 Mar 2025
Sorry, I meant to add that I am not able to send data direct from my device to ThingSpeak. All data go to Blues who then forward the data via routes.
Christopher Stapels
Christopher Stapels on 4 Mar 2025
Edited: Vinod on 4 Mar 2025
Looking at the thingSpeak instructions at blues I see that they allow multiple fields in a sigle route
here is thier example
{
"api_key":"***REDACTED***",
"field1": body.temp,
"field2": body.humidity,
"field3": tower_location & ', ' & tower_country,
"field4": when
}
If you use this method to update multiple fields in the same channel, you should not run afoul of the rate limit.
If you use multimple routes, you may not be able to control how close together blues is sending the multiple routes.

Sign in to comment.

Communities

More Answers in the  ThingSpeak Community

Categories

Find more on ThingSpeak in Help Center and File Exchange

Tags

Products

Community Treasure Hunt

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

Start Hunting!