Extracting Data from TTN to my Server

I have successfully integrated my nodes and gateway to TTN and they are now transferring data easily. I need to know how can I extract data from TTN and send the same to my server?
Is there any API provided by TTN?
Kindly help with any information.

Thank you

1 Like

Hi,

As far as I know you can use several MQTT clients provided by TTN. Here I leave you some information on this:

https://www.thethingsnetwork.org/docs/applications/mqtt/

Iā€™m in the same point right now. Iā€™ll use the Node.JS SDK to receive uplink messages in my own server. I hope this is useful for you.

Regards,
Celia

Have a look here: https://www.thethingsnetwork.org/docs/applications/integrations.html.
The HTTP integration might be an option for you as well. It works for me (server with php and mysql).

Thanks a lot Celia!

Regards,
Zaheen

Hi celiagarridoh, can you see the recieved messages on your server ( what you are getting in the frames as payloads sent from the object ), cause thatā€™s my problem, when i see the statu of the gateway, it shows me the number of the forwarded frames to the server but it doesnā€™t show me what the server is recieving as payloads, does your solution solve my problem ?

Hi @ayarialadin,

Iā€™m not sure I understand your problemā€¦ You donā€™t see the messages from your node (application) in your own server, right?

I have a Node.js server running and Iā€™m receiving there the data from my application in TTN, if this is what you want let me know and Iā€™ll help you :slight_smile:

Regards,
Celia

yes @celiagarridoh thatā€™s what i meant, do i have to develop the node.js server or itā€™s already ready and i just have to configure it ?
Thanks for replaying.

Yes, youā€™d have to develop a Node.js server.

  1. Install The Things Network Node.js App SDK (https://github.com/TheThingsNetwork/node-app-sdk), I did it directly in a Raspberry Pi board.

  2. Run the example: https://github.com/TheThingsNetwork/node-app-sdk/blob/master/src/example.js including your own keys.

Donā€™t forget to include the mqtt-ca certificate (https://www.thethingsnetwork.org/docs/applications/mqtt/quick-start.html) in the same folder as your example.js

Then you should have your server running and printing the uplink packets that your node receives in TTN.

Regards,
Celia

1 Like

Thanks All for the help. Now I can extract data from TTN.
One more issue is all my packets are not being received on TTN side, also most of the time I get No_Free_Channel message.
Kindly help

No_free_channel means you are sending data far too frequently. If possible try a higher data rate, if that is not possible send less frequently. Be aware the TTN fair use policy allows 30 seconds of airtime a day. When your module complains about free channels you are exceeding that limit a number of times.

1 Like

@celiagarridoh , thanks a lot, but do i have to install the app in the RPI when itā€™s supposed to be installed in the TTN server cause i wonna see the packets recieved in the server and not in the gateway, do you get me ?

and i have a question, does this means that iā€™m recieving packets in my server from the endnode :
root@debian:/home/administrator/ttn# ./ttnctl gateways status eui-b827ebfffe388da3
INFO Discovering Routerā€¦
INFO Connecting with Routerā€¦
INFO Connected to Router
INFO Received status GatewayID=eui-b827ebfffe388da3

       Last seen: 2017-05-03 12:02:55.932595229 -0400 EDT
       Timestamp: 0
   Reported time: 2017-05-03 12:02:37 -0400 EDT
     Description: gnz @ Denges
        Platform: IMST + Rpi
   Contact email: dylan.collaud@gmail.com
      IP Address: 172.31.1.112
 GPS coordinates: (46.525101 6.538970)
             Rtt: not available
              Rx: (in: 6; ok: 6)
              Tx: (in: 0; ok: 0)
  1. I changed these variables in the exemple js file :
    var region = ā€˜172.31.1.180ā€™;
    var appId = ā€˜omniacom4ā€™;
    var accessKey = ā€˜ttn-account-v2.YlE_Gt-i_kz7Fyio2MopBmbo6d2BPftgE5qVb1ueFp4ā€™;

iā€™ve put the localhost address of the region variable. is that correct cause iā€™m running a local server ?

but an error appears when i try to execute the file :
pi@ttn-gateway:~/node-app-sdk/src $ node .

/home/pi/node-app-sdk/src/index.js:3
const data = require(ā€™./dataā€™);
^^^^^
SyntaxError: Use of const in strict mode.
at Module._compile (module.js:439:25)
at Object.Module._extensionsā€¦js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3

Hi,

I used a different Raspberry for creating the server, it has nothing to do with the one I used for developing the gateway, sorry if I was confusing. For the server I used a Raspberry with Raspbien and Node.js installed.

About the error, try to check if all the required files are in the directory. However, I was referring to the ā€œexample.jsā€ file, not the index.js one.

I think the ā€œregionā€ field is wrong, it should be related to the router TTN is using (for example ā€˜euā€™). Try this and tell me if it helped you.

Regards,
Celia

iā€™m running a TTN server in my localhost, i wonna know if it works as a region cause iā€™m running my own router and not connected to the ttn-handler-eu anymore.

This is my router info :
id: mynetwork-router
tls: true
key-dir: router/
auth-servers:
ttn-account-v2: ā€œhttps://account.thethingsnetwork.orgā€

discovery-address: ā€œlocalhost:1900ā€
auth-token: eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE0OTMwMzg2ODAsImlzcyI6ImxvY2FsIiwibmJmIjoxNDkzMDM4NjgwLCJzdWIiOiJteW5ldHdvcmstcm91dGVyIiwidHlwZSI6InJvdXRlci$

router:
server-address-announce: localhost
skip-verify-gateway-token: true

Hi

Iā€™m sorry, I was referring to extracting data from TTN to your server, but using a TTN router. Iā€™m not sure of how to help you with that, Iā€™m also relatively new with LoRaWAN.

If anyone knows the answer Iā€™d also like to know how to do it :grin:

Regards,
Celia

Celi,

Can you help me how can I get the Gateway EUI ?

Actually I want to register my Gateway on TTN but unable to find the EUI. I have gone through all the manuals and user guide.

Please Help.
And thanks for your previous help, now Iā€™m able to extract data from TTN.

Zaheen

Is there any option to send my data as acknowledgement to LoraModules?

I am using my own server which is getting data regularly from TTN. So I want to send a command(data) to my Lora Devices through TTN. If I use TTN Console I can easily send confirmed message to specific device, is there an API provides this facility so that I can send data from my server?

Hi @LoraWANSMARU,

  1. Sorry for that long time, I didnā€™t have Internet access. Iā€™m not quite sure of where did I find the EUI, Iā€™m going to take a look to see if I find it so I can help you, that shouldnā€™t be a problem I hopeā€¦

  2. Yes, I think thereā€™s a way to do that, but it may not be recommendable to send many downlink messages from your server (using TTN) to your nodes.

According to https://www.thethingsnetwork.org/wiki/LoRaWAN/Limitations:

Downlink messages should be avoided if possible, and if you send downlink, keep the payload small

However, what client are you using in your server?

Regards,
Celia

1 Like

meet Celia :blush:

Hi celiagarridoh,

I did not understand your term ā€˜Clientā€™. I just want to send data to one of my Lora Device through TTN from my server.

How did you implement your server? For example, I used the Node.js client library for that, taking a look at the library youā€™ll see how to send downlink messages, am I right?