Sensor node -> LoRaWAN gateway -> TTN -> ThingSpeak -- how?

You asked for a solution to get your data in ThingSpeak so I suggested one. Currently TTN does not provide integration that pushes data to any other site (work is being done to create them) so running your own client is the only way. That is why I suggested Bluemix, you should be able to run a CPU in the IBM cloud for free.

In addition to MQTT, there is now an HTTP integration feature. Will this HTTP integration make it possible to send (‘POST’) data from The Things Network to ThingSpeak? I can see that a POST request to a defined URL will be executed whenever an uplink from a device has been received by TTN. However, as far as I can see, you cannot influence the parameters and payload definition of the URL. Do I miss something?

I am following this conversation because I am on the same position as you are. But I have seen someone has done it from some tweet I am waiting for his response as how he did it. https://twitter.com/Mi_Wie

Find me at oscarmakori@gmail.com incase you get solution

Maybe this will help out:

1 Like

Any update to this?

I can use the HTTP integration to do a post update but data is missing (I can see the entries number increase in Thingspeak), so I need to work out either

  1. The payload format
  2. the correct endpoint URL format to use or
  3. send the correct payload format from my node (currently a Sodaq Explorer)

cheers
Paul

@oscar1 and @rudiniemeijer

Did you manage to work this out?

Still wanting to do this myself and be able to teach others, so looking for the simplest solution

cheers
Paul

I also tried the HTTP integration with the following settings in TTN:

Access Key = Default Key
URL = https://api.thingspeak.com/update?api_key=[my_api_key]&field1=temperature
Method = Post
Authorization = [my_api_key]

In ThingSpeak I get the write API Key from my channel, which is [my_api_key]. Under the private view, when I export data e.g. in csv, there is the string “temperature” and not the data of temperature.
How do I get the data?

I also tried the %% operator, but I think that just works with the ThingHTTP App. Maybe it doesn’t work in generel to Post data directly into the channel, only with these ThingHTTP App. If that is the case, how do I get the data from this App to a channel in Thingspeak?

Yes I get exactly the same thing happening.

Somehow we need the http integration to be able to grab the payload data out of each message that gets sent to TTN.

That’s the part I am missing

Cheers
Paul

1 Like

Hello all,

indeed to integrate with the thing speak will require more than just a HTTP integration. The HTTP integration is designed to forward the UplinkMessages to the designated URL and is not “aware” of the content.

Thought you might manage by using the IFTTT integration with the makers channel.

Best,
Sylvain

I have got this working now - IBM Bluemix now makes an easy to install a boilerplate app of NodeRED.

Both TTN and Thingspeak run MQTT brokers, you just need something to let them talk, so I am using a free instance of NodeRED on IBM Bluemix - you do have to enter credit card details, but they aren’t charged on the free plan I used.

Then its just a matter of setting up an MQTT input node, do some cleaning up of the output fields to match what Thingspeak needs, then setting up an MQTT output node to Thingspeak.

I am a total novice in this stuff and I got it working so its not too hard. Happy to step through some of the basics if you need it, lots of resources online assume you know stuff, which I didn’t.

Use this info for TTN https://www.thethingsnetwork.org/docs/applications/mqtt/api.html
Use this info for Thingspeak https://au.mathworks.com/help/thingspeak/use-desktop-mqtt-client-to-publish-to-a-channel.html
and this for setting up Node RED https://nodered.org/docs/platforms/bluemix

cheers
Paul

6 Likes

Secondaire manuel on

Reference page

http://aquapoeder.nl/?page_id=285

Can you give a little more information on what you did? I’m new to node-red. not sure how you set it up to receive and relay the MQTT…
Thanks!

I’ll give it a go

image

I send data from a Lora based weather station to both Thingspeak and Weather Underground.

For Thingspeak, each end of the flow has an MQTT, one to subscribe from TTN, and the other to publish to Thingspeak.

The JSON node allows you to parse out the fields from TTN - the FORMAT node “Format for Thingspeak” has a function in it to assign the JSON fields to the Thingspeak fields like this - which then becomes the payload for Thingspeak, exactly how it likes it as per the documentation linked above.

          field1={{payload.payload_fields.Temperature}}&field2={{payload.payload_fields.Humidity}}  etc etc

Temperature and Humidity are produced from my Payload Format in my TTN Application

If you still need help with a specific part, keep asking, happy to help

2 Likes

Thank you! I’ve been playing with node-red a bit and it does seem quite easy once you get started. Your diagram will point me in the right direction. Cheers!

I have prepared simple ttn2ts proxy that solves the same issue using the HTTP Integration:

Cheers, Luka

2 Likes

not work for me, value of variable are not in the final URL

So sorry, the correct URL is:
http://mali.si/ttn2ts/?api_key=MY_TS_WRITE_API_KEY&field1=temperature&field2=humidity

Cheers,
Luka

On PUTSREQ : this is a proxy

paste this code in the Response Builder:

// Build a response
var msg = ‘Hello World’;

if(request.params.name) {
msg = 'Hello ’ + request.params.name;
}

response.body = msg;
// Forward a request
var parsedBody = JSON.parse(request.body);
var myPayload = ‘field1=’+parsedBody.payload_fields.temperature+’&field2=’+parsedBody.payload_fields.humidity;
request.body = parsedBody.payload_fields;
request.request_method=‘GET’;
request.forwardTo = ‘https://api.thingspeak.com/update?api_key=&’+myPayload

https://putsreq.com/ … is really a helpful site to filter and format your request… you can use webhook to test your script

ThingSpeak now offers a custom integration to forward your data from a device in an application into a ThingSpeak channel. For details on how to forward data from your existing The Things Network application to a ThingSpeak channel, see Write Data from The Things Network. There is also a full device example at Collect Agricultural Data over The Things Network

2 Likes