Extracting Data from TTN to my Server

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?

@celiagarridoh

I have implemented HTTP integration in my application. But the only thing I want to use from this integration is to schedule downlink messages to my devices.

Can you please help what do I need to enter in the fields such as
Process ID: As far as I think, it is user defined.
URL; what would be the endpoint url(I am unable to understand here what does it mean by endpoint url)
Method: POST
Authorization : I guess this is also user defined.

I am a bit confused what is the Endpoint url here.

The main motive for me to use this integration is to independently use this integration and schedule downlink messages to devices, using my own web application.

@celiagarridoh
Continuation from the above question:

I am using the following URL to schedule downlink messages:
https://integrations.thethingsnetwork.org/ttn/api/v2/down/my-app-id/my-process-id?key=ttn-account-v2.secret
I have entered my-app-id/my-process-id and secret key, but in response I always get 502 Bad Gateway/ nginx/1.11.10

Hi,

I had never tried to implement the HTTP integration, but I tried yesterday to see how it works. As far as I know, you’re right, the Process ID is user-defined and the Authorization is optional. However, I’m not sure about the field URL.

I tried what you were trying to do, and I also got the “502 Bad Gateway” error. Then, I tried to use the URL of a Channel I created some months ago in ThingSpeak (https://thingspeak.com/), and it sends data from TTN to Thingspeak via HTTP (however, you were interested in downlink). Finally I tried to introduce the IP address of a server I created (http://xxx.xxx.xxx.xxx:8080/) in the URL field and it works, I receive a JSON from TTN and I suppose that sending downlink data to end-devices would not be a problem.

I’m also starting with TTN and so on, I hope these options can help you. Anyway, I’m sure some other people know the answer :wink:

Regards,
Celia

1 Like

Hi again, this tool may be useful for inspecting your HTTP requests:

https://requestb.in/

Celia