Newbie first question regarding end devices.


Hello All,
This is my first post here so I hope its in the right place,
I have built myself a GW consisting of a RAK2245 concentrator and a Raspberry Pi, Also an Arduino end device from this link https://tum-gis-sensor-nodes.readthedocs.io/en/latest/dragino_lora_arduino_shield/README.html
Both projects work fine and connect to TTN whereby packets of data from the end device can be seen in the TTN console.
I now want to create a Webhook in TTN for Thingspeak which would hopefull allow me to see Temperature , Humidity etc in graphical form.
My question, does thingspeak support homebuilt devices or is it focused on comercially built devices ?
I have spent many hours trying to find data hosting site that is comepletely free for a few devices and not to complicated to setup as some seem to be a nightmare. Thanks for any support .
Christopher Stapels
Christopher Stapels on 12 Feb 2026 at 13:50 (Edited on 18 Feb 2026 at 14:37)
Thingspeak is definetely one of the easiest IoT sites to get going on and it also has free tier for non commmercial use. ThingSpeak definitely supports almost any kind of device that can comminicate on a network via HttP or MQTT.
The Get Started tutorial can help you get to posting data in a short time, and there are many examples available for different platforms. Here is the full API reference.
Steve
Steve on 18 Feb 2026 at 14:08
Hi Christopher,
Thanks for your reply,
I have setup my Thingspeak channel and also created the webhook in TTN but I am getting a constant error regarding the webhook.
The info I get back is "Status Code 400" and "Error_Bad_Request" which suggests I have misconfigured something somewhere, Would you be in a position to advise if I were to provide more info on how I have set things up ,please..
Kind regards
Christopher Stapels
Christopher Stapels on 18 Feb 2026 at 14:38 (Edited on 18 Feb 2026 at 14:39)
Yes, put your webhook details here and ill check it out. (but redact the write API key please)
I used to have a demo video up about TTN webhooks to ThingSpeak but they change their interface so often, its hard to keep up.
Steve
Steve on 18 Feb 2026 at 15:11
I created the Webhook from the TTN template and just completed the 3 fields , Channel ID API and a name for the webhook, I have set up the channels in Thingspeake with the names of temperature, humidity and vbattery from the payload.
The end device is working with TTN and the payload decoder appears to be good also the GPS data from the device looks good, I have a webhook to TTN mapper which works fine, shame it will soon be obsolete .
Steve
Steve on 18 Feb 2026 at 15:00
Thankyou, below is the data from the webhook, I you need more info, please let me know. its very much appreciated .
{
"name": "as.webhook.fail",
"time": "2026-02-18T14:49:18.168843118Z",
"identifiers": [
{
"device_ids": {
"device_id": "arduino-gps",
"application_ids": {
"application_id": "seismet-arduino"
},
"dev_eui": "000000000000007",
"dev_addr": "26011351"
}
}
],
"data": {
"@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
"namespace": "pkg/applicationserver/io/web/sink",
"name": "request",
"message_format": "request",
"attributes": {
"status_code": 400,
"url": "https://api.thingspeak.com/things_network/v3/update/",
"webhook_id": "arduinodehook"
},
"correlation_id": "78f0fa2f0cd046ca8b12111facff4ef7",
"code": 14,
"details": [
{
"@type": "type.googleapis.com/google.protobuf.Struct",
"value": {
"body": "error_bad_request"
}
}
]
},
"correlation_ids": [
"gs:uplink:01KHRKM59VKQNF4KB9YRWQX54X"
],
"origin": "ip-10-100-7-33.eu-west-1.compute.internal",
"context": {
"tenant-id": "CgN0dG4="
},
"visibility": {
"rights": [
"RIGHT_APPLICATION_TRAFFIC_READ"
]
},
"unique_id": "01KHRKM5JRNFTG8RVGNVPHN90G"
}
Christopher Stapels
Christopher Stapels on 19 Feb 2026 at 15:28
The url endpoint looks fine, so im surprised by the 400. If the api key was wrong, Id expect a 401. I havent set up a TTN integration since v2, but I suspect it is still similar. Im looking into the issue with some others, hope to get back to you soon.
Christopher Stapels
Christopher Stapels on 19 Feb 2026 at 18:33
herer are a few possibilities to look at
  • Missing channelid header in the TTN webhook config
  • Missing authorization header with the Write API Key
  • No payload decoder configured in TTN, so decoded_payload is empty/missing
  • Trailing slash in URL (/update/ vs /update) — the route expects no trailing slash
Steve
Steve on 20 Feb 2026 at 10:14 (Edited on 20 Feb 2026 at 10:18)
Morning Christopher,
Thanks for the info, I have checked over the points you mention and all "seem" ok but I may be missing something .
I setup a webhook checker and got this response in the attached "Webhook info.png" .
The decoded payload in TTN was checked and attached in "decoded payload.txt"
The TTN webhook page has been included in "SS1 and SS2",
Maybe you can spot something which is eluding me ?
Many thanks ...
Christopher Stapels
Christopher Stapels on 20 Feb 2026 at 22:25
Looking at the old instructions (which are admittedly a little bit out of date) it seems you will need a payload formatter to change the data from ttn into the format thingspeak expects. The endpoint for thingspeak expects the same JSON that you would normally send to the regular (non TTN) update endpoint. Your payload doesnt seem to have the right format. It should look something like this.
field1: var1,
field2: var2,
field3: var3,
field4: var4,
field5: var5,
field6: var6,
field7: var7,
field8: var8,
latitude: lat,
longitude: lon,
elevation: elev
Is there a way to add a payload formatter? I see "filter path" in your ss1.png photo, that doesnt sound right but its the closest I can find.

Tags

No tags entered yet.