Extracting Data from TTN to my Server


(Lora Wansmaru) #1

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


(Celia Garrido-Hidalgo) #2

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


#3

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).


(Lora Wansmaru) #4

Thanks a lot Celia!

Regards,
Zaheen


(Ayarialadin) #5

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 ?


(Celia Garrido-Hidalgo) #6

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


(Ayarialadin) #7

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.


(Celia Garrido-Hidalgo) #8

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


(Lora Wansmaru) #9

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


(Jac Kersing) #10

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.


(Ayarialadin) #11

@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 ?

1)
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)

2) 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


(Celia Garrido-Hidalgo) #12

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


(Ayarialadin) #13

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


(Celia Garrido-Hidalgo) #14

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


(Lora Wansmaru) #15

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


(Lora Wansmaru) #16

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?


(Celia Garrido-Hidalgo) #17

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


#18

meet Celia :blush:


(Lora Wansmaru) #19

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.


(Celia Garrido-Hidalgo) #20

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?