Wiki source code of Notes for TTN

Version 199.1 by Xiaoye on 2023/03/09 13:44

Show last authors
1 **~ Table of Contents:**
2
3 {{toc/}}
4
5
6
7 = 1. The Things Network-V3 =
8
9
10 == 1.1  Introduction ==
11
12
13 === 1.1.1  What is The Things Network ===
14
15
16 (((
17 The Things Network is a global collaborative Internet of Things ecosystem that creates networks, devices and solutions using LoRaWAN.
18 )))
19
20 (((
21 The Things Network runs The Things Stack Community Edition, which is a crowdsourced, open and decentralized LoRaWAN network. This network is a great way to get started testing devices, applications, and integrations, and get familiar with LoRaWAN.
22
23
24
25 )))
26
27 === 1.1.2  Login or crate an account ===
28
29
30 (((
31 [[Login or create an account>>url:https://console.cloud.thethings.network/]] to get started with The Things Network and start using The Things Stack Console.
32 )))
33
34 (((
35 Once you have an account,get started by following steps for adding Gateway,Device and Intergrations.
36
37
38
39 )))
40
41 === 1.1.3  List the support products and Requirements ===
42
43
44 LoRaWAN Gateway model: Existing Gateway
45
46
47
48 = 2.  Gateway Registration for Semtech UDP =
49
50
51 (% style="color:red" %)**Note: Steps 2 and 3 are different connection methods, the user only needs to choose one of them**
52
53 == 2.1  Primary LoRaWAN Server ==
54
55
56 [[image:image-20220526134633-2.png||height="616" width="1323"]]
57
58 Register Gateway
59
60
61
62 [[image:image-20220526134826-4.png]]
63
64 Put Gateway ID
65
66
67
68 [[image:image-20220526134759-3.png]]
69
70 Choose Frequency Band
71
72
73
74 (% style="color:red" %)**Note:**
75
76 DRAGINO - Frequency Plan list  ~-~-~-~-~-~-~-~-~-~-~-~-~-~--  The Thing Network Frequency Plan List
77
78 AS923-1 (920-923)  ~-~-~-~-~-~-~-~-~-~-~-~-~-~--  Asia 920-923 Mhz
79
80 AS923-1 (923-925)  ~-~-~-~-~-~-~-~-~-~-~-~-~-~--  Asia 915-928 Mhz (AS923 Group 1)with only default channels
81
82 AS923-2 (921.4-922.8)  ~-~-~-~-~-~-~-~-~-~-~-~-~-~--  Asia 920-923 Mhz (AS923 Group 2)with only default channels
83
84 AS923-3 (916.6-918.2)  ~-~-~-~-~-~-~-~-~-~-~-~-~-~--  Asia 915-921 Mhz (AS923 Group 3)with only default channels
85
86 AS923-4 (917.3-918.7)  ~-~-~-~-~-~-~-~-~-~-~-~-~-~--  Asia 917-920 Mhz (AS923 Group 4)with only default channels
87
88
89 [[image:image-20220726134642-1.png||height="344" width="660"]][[image:image-20220726135827-3.png||height="214" width="394"]][[image:image-20220726135759-2.png||height="218" width="554"]]
90
91
92
93 [[image:image-20220526134919-5.png]]
94
95 Show Status
96
97
98
99 == 2.2  Secondary LoRaWAN Server ==
100
101
102 === 2.2.1  Introduction ===
103
104
105 The Dragino gateway has supports the Secondary server settings.
106
107
108
109 === 2.2.2  Below list the support products and Requirements: ===
110
111
112 (((
113 1.  LoRaWAN Gateway model:  [[LIG16>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/171-lig16.html]], [[LG308>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/140-lg308.html]], [[DLOS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/160-dlos8.html]] [[LPS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/148-lps8.html]]
114 )))
115
116 (((
117 2.  Firmware version since :  [[lgw~~-~~-build-v5.4.1644658774>>url:http://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LIG16/Firmware/Release/]]
118 )))
119
120
121
122 === 2.2.3  Example ===
123
124
125 The following takes Helium as a Secondary LoRaWAN server as an example
126
127
128
129 === 2.2.4  Step 1: Download and Install the helium gateway-rs ===
130
131
132 The users is needing to download and install the helium gateway-rs then click the button of (% style="color:blue" %)**Save&Apply.**
133
134
135 [[image:image-20220526135049-6.png]]
136
137 Download and Install gateway-rs
138
139
140
141 === 2.2.5  Step 2: Back to Semtech UDP page ===
142
143
144 Back to the page of Semtech UDP check the secondary server settings and click the button of (% style="color:blue" %)**Save&Apply.**
145
146
147 ​​​​[[image:image-20220526135125-7.png]]
148
149 Configuration of helium
150
151
152
153 = 3.  Gateway Registration for Basics Station =
154
155
156 == 3.1  Introduction ==
157
158
159 (((
160 (((
161 The LoRa Basics™ Station protocol simplifies the management of large-scale LoRaWAN networks. LoRa Basics™ Station is the preferred way of connecting Gateways to The Things Stack. [[The LoRa Basics Station doc>>url:https://www.thethingsindustries.com/docs/gateways/lora-basics-station/]]
162
163 (% style="color:red" %)**Note: Steps 2 and 3 are different connection methods, the user only needs to choose one of them**
164
165
166 )))
167 )))
168
169 (((
170 (% style="color:blue" %)**Below list the support products and Requirements:**
171 )))
172
173 (((
174 (((
175 1. LoRaWAN Gateway model:  [[LIG16>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/171-lig16.html]], [[LG308>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/140-lg308.html]], [[DLOS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/160-dlos8.html]] [[LPS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/148-lps8.html]]
176 )))
177
178 (((
179 2.  Firmware version since :  [[lgw~~-~~-build-v5.4.1640315898>>url:https://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Release/]]
180
181
182 )))
183 )))
184
185 (((
186 (% style="color:blue" %)**What do you need to prepare**
187 )))
188
189 (((
190 (((
191 A gateway that can access the internet normally
192
193
194
195 )))
196 )))
197
198 == 3.2  Step 1: Add Gateway ==
199
200
201 (((
202 (((
203 (% style="color:blue" %)**The example for**(%%)** (% style="color:red" %)EU:(%%)**
204 )))
205 )))
206
207 (((
208 (((
209 User can add your gateway into The Things Network V3 according to the previous step
210 )))
211 )))
212
213 (((
214 (((
215 Following picture is the successful added.
216
217
218 )))
219 )))
220
221 [[image:image-20220526135316-8.png]]
222
223 Add Gateway
224
225
226
227 == 3.3  Step 2: Create the API key ==
228
229
230 user need to create the CUPS API key and LNS API key.
231
232
233 [[image:image-20220526135349-9.png]]
234
235 Create CUPS API key
236
237
238
239 [[image:image-20220526135428-10.png]]
240
241 Create LNS API key
242
243
244 (% style="color:red" %)**Note: Please copy the API key.**
245
246
247
248 == 3.4  Step 3: Update the gateway setting ==
249
250
251 In the LoRa Basics Station LNS Authentication Key field, paste the API key you generated in the previous step.
252
253
254 [[image:image-20220526135528-11.png]]
255
256 paste the API key
257
258
259
260 == 3.5  Step 4: Access the gateway GUI ==
261
262
263 User need to update the API key and install the Certificate
264
265
266 [[image:image-20220526135601-12.png]]
267
268 Access the gateway GUI
269
270
271
272 == 3.6  Step 5: Configure Station ==
273
274
275 User need to input Server URI, Server CUPS Key and LNS Key, as well as install CUPS certificate.
276
277
278 (% style="color:blue" %)**just to clarify:**
279
280 (% class="box" %)
281 (((
282 CUPS Server URI  ~-~->  Server Adress
283 CUPS Authorization Key         ~-~->  Server CUPS API Key
284 LNS Authorization Key  ~-~->  Server LNS API Key
285 CUPS certificate  ~-~->  Server CA(user can use the button to install the certificate by default)
286 )))
287
288 [[image:image-20220526135654-13.png]]
289
290 Congfigure Station
291
292
293
294 == 3.7  Start Station ==
295
296
297 (((
298 When the user has finished the configuration,Please click Sace&Apply to start station to connect The Things Network.
299
300
301
302 )))
303
304 == 3.8  Siccessful Connection ==
305
306
307 If user completes the above steps,which will see live date in the TTN.
308
309
310 [[image:image-20220526135734-14.png]]
311
312 Station live date
313
314
315
316 == 3.9  Trouble Shooting ==
317
318
319 User can check the station log in the** (% style="color:blue" %)LogRead ~-~-> System Log (%%)**page.
320
321
322 [[image:image-20220526135845-15.png]]
323
324 Station Log
325
326
327
328 and recode the station log in the** (% style="color:blue" %)LogRead  ~-~->  Recode Log(%%)** page.
329
330 [[image:image-20220526135940-16.png]]
331
332 Recore Log
333
334
335
336 = 4.  Configure node connection to TTNv3 =
337
338
339 (((
340 (((
341 Following is an example for how to join the TTN v3 LoRaWAN Network.
342 )))
343 )))
344
345 (((
346 (((
347 The gateway is already set up to connect to the TTN network, so we now need to configure the TTNv3 server.
348 )))
349 )))
350
351 (((
352 (((
353 (% style="color:#037691" %)**We take LES01 as an example.**
354
355
356
357 )))
358 )))
359
360 == 4.1  Step 1 ==
361
362
363 (((
364 (((
365 Create a device in TTN with the OTAA keys from LSE01.
366 )))
367 )))
368
369 (((
370 (((
371 Each LSE01 is shipped with a sticker with the default device EUI as below:
372 )))
373 )))
374
375 (((
376 (((
377 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
378 )))
379 )))
380
381 [[image:image-20230221135445-1.png||height="356" width="777"]]
382
383 First create an application and fill in the custom information in it
384
385 [[image:image-20230221135520-2.png||height="52" width="974"]]
386
387 [[image:image-20230221135810-3.png||height="400" width="638"]]
388
389
390 Add a node device to the application
391
392
393 [[image:image-20220526140044-18.png]]
394
395
396
397 == 4.2  Step 2 ==
398
399
400 (((
401 (((
402 There are all our nodes in the repository. Users can choose the corresponding brand, model, firmware version and frequency.The decoder and configuration information of the node are pre-configured.Users do not need to configure them.
403
404 [[image:image-20230221164809-2.png||height="525" width="617"]]
405 )))
406 )))
407
408
409
410
411 == 4.3  Step 3 ==
412
413
414 Add APP EUI in the application:
415
416
417 [[image:image-20230221140131-4.png||height="569" width="674"]]
418
419
420
421 == 4.4  Step 4 ==
422
423
424 **Add APP KEY and DEV EUI:**
425
426
427 [[image:image-20230221140448-6.png||height="535" width="647"]]
428
429
430
431 = 5.  TTN V3 integrated into MQTT server =
432
433
434 == 5.1  Introduction ==
435
436
437 (((
438 (((
439 The Application Server exposes an MQTT server to work with streaming events. In order to use the MQTT server you need to create a new API key, which will function as connection password. You can also use an existing API key, as long as it has the necessary rights granted.
440
441
442
443 )))
444 )))
445
446 == 5.2  Create device steps at MQTT ==
447
448
449 (((
450 (((
451 The user creates a new API KEY after creating a device on TTN V3.
452 )))
453 )))
454
455 (((
456 (((
457 Then copy the password and open MQTT.fx.
458 )))
459 )))
460
461 (((
462 (((
463 Fill in Broker Address and Broker port.
464
465
466 )))
467 )))
468
469 [[image:image-20220526140347-22.png]]
470
471 Fill in the username and password into MQTT.
472
473
474
475 [[image:image-20220526140420-23.png]]
476
477
478 The Application Server publishes uplink traffic on the following topics:
479
480 (% class="box" %)
481 (((
482 v3/{application id}@{tenant id}/devices/{device id}/join
483 v3/{application id}@{tenant id}/devices/{device id}/up
484 v3/{application id}@{tenant id}/devices/{device id}/down/queued
485 v3/{application id}@{tenant id}/devices/{device id}/down/sent
486 v3/{application id}@{tenant id}/devices/{device id}/down/ack
487 v3/{application id}@{tenant id}/devices/{device id}/down/nack
488 v3/{application id}@{tenant id}/devices/{device id}/down/failed
489 v3/{application id}@{tenant id}/devices/{device id}/service/data
490 v3/{application id}@{tenant id}/devices/{device id}/location/solved
491 )))
492
493 (((
494
495
496 (((
497 (% style="color:red" %)**Note**: **Remember that the format of these topics for The Things Stack Open Source would contain {application id} instead of {application id}@{tenant id}.**
498
499
500 )))
501 )))
502
503 [[image:image-20220526140452-24.png]]
504
505
506 (((
507 (((
508 While you could subscribe to all of these topics separately, for the simplicity of this tutorial we use # to subscribe to all topics, i.e. to receive all uplink traffic.
509 )))
510 )))
511
512 [[image:image-20220526140708-25.png]]
513
514 (((
515 (((
516 Downlinks can be scheduled by publishing the message to the topic v3/{application id}@{tenant id}/devices/{device id}/down/push.
517 )))
518 )))
519
520 (((
521 (((
522
523
524 (% style="color:red" %)**Note**: **Remember that the format of this topic for The Things Stack Open Source deployment would be v3/{application id}/devices/{device id}/down/push.**
525
526
527 )))
528 )))
529
530 (((
531 (((
532 Instead of /push, you can also use /replace to replace the downlink queue. Replacing with an empty array clears the downlink queue. Example:
533 )))
534 )))
535
536 [[image:image-20220526140856-26.png]]
537
538 (((
539 To send an unconfirmed downlink message to the device dev1 in application app1 in tenant tenant1 with the hexadecimal payload BE EF on FPort 15 with normal priority, use the topic v3/app1@tenant1/devices/dev1/down/push with the following contents:
540
541
542 )))
543
544 (((
545 (% style="color:red" %)**Note**: **Use this handy tool to convert hexadecimal to base64.**
546
547
548 )))
549
550 [[image:image-20220526140936-27.png]]
551
552
553
554 == 5.3  Send Downlink message ==
555
556
557 (((
558 How to configure downlink in TTN V3?
559 )))
560
561 (((
562 A few examples: set the transmission interval to 90 seconds.
563 )))
564
565 (((
566 (% style="color:blue" %)**Downlink command: 01 00 00 5A**
567
568
569 )))
570
571 [[image:image-20220526141021-28.png]]
572
573 downlink
574
575
576
577 After sending, you can view it in live data.
578
579 [[image:image-20220526141052-29.png]]
580
581 downlink
582
583
584
585 (((
586 When downlink is successfully sent, the downlink information can be received on the serial port.
587 )))
588
589 (((
590 (% style="color:red" %)**Note**:** If the downlink byte sent is longer, the number of bytes will be displayed.**
591
592
593 )))
594
595 [[image:image-20220526141116-30.png]]
596
597 downlink
598
599
600 (((
601 (((
602 If you want to get a successful reply to send downlink in TTN v3. You need to set the response level.
603 )))
604 )))
605
606 (((
607 (((
608 If the equipment uses (% style="color:blue" %)**CLASS A**(%%). You can set (% style="color:red" %)**AT+RPL=2** (%%)or send the downlink command: (% style="color:red" %)**2102**
609 )))
610 )))
611
612 (((
613 (((
614 If the equipment uses (% style="color:blue" %)**CLASS C**(%%). You can set** (% style="color:red" %)AT+RPL=4(%%)** or send the downlink command: (% style="color:red" %)**2104**
615 )))
616 )))
617
618 (((
619 (((
620 When the device successfully receives the downlink, the server will receive a confirmation packet of 00.
621
622
623 )))
624 )))
625
626 [[image:image-20220526141149-31.png]]
627
628 downlink
629
630
631
632 = 6.  Route TTN data to Node-Red =
633
634
635 Users can create an MQTT integration by following the steps described in "[[5.TTN V3 Integrated into MQTT Server>>http://wiki.dragino.com/xwiki/bin/view/Main/Notes%20for%20TTN/#H5.A0TTNV3integratedintoMQTTserver]]"
636
637
638
639 == 6.1  Edit mqtt-broker node ==
640
641
642 Users need to configure the TTN MQTT server address and port, Such as:
643
644 (% class="box infomessage" %)
645 (((
646 **Server :** eu1.cloud.thethings.network
647
648 **Port  :** 1883
649 )))
650
651 [[image:image-20220829160224-187.jpeg||height="569" width="1128"]]
652
653
654 **Enter Username and Password**
655
656 [[image:image-20220829164358-188.png||height="570" width="1130"]]
657
658
659
660 == 6.2  Debug ==
661
662
663 Users can check logs by adding debug.
664
665 [[image:image-20220829164652-189.png||height="572" width="1134"]]
666
667
668
669 == 6.3  Example: Use Local Server TTN and Node-Red in LPS8v2 ==
670
671
672 LPS8v2 includes a local TTN Server and Node-Red. This example shows how to configure LHT65N to use with the local Node-Red server. This example assumes users already have:
673
674 * LHT65N register on LPS8v2 Built-In TTN server already
675 * The user is able to see the data on the built-in TTN server device page.
676
677 Below are the steps to plot the sensor data on LPS8v2 Node-Red.
678
679
680
681 === 6.3.1  Link Node-Red to Local TTN ===
682
683
684 Users can download the Node-Red decoder from this link and import it into the Node-Red platform:  **[[dragino-end-node-decoder/LHT65N.json (github.com)>>url:https://github.com/dragino/dragino-end-node-decoder/blob/main/Node-RED/LHT65N.json]]**
685
686 For more information on importing Input Flow, check out this link: **[[Import Input Flow for Dragino Sensors>>http://wiki.dragino.com/xwiki/bin/view/Main/Node-RED/#H3.A0ImportInputFlowforDraginoSensors||style="background-color: rgb(255, 255, 255);"]]**
687
688
689 After importing the Input Flow is complete, the user needs to edit the MQTT in the node
690
691
692 (% style="color:blue" %)**1. Change the Topic**
693
694
695 Topic modifies it to the following format:
696
697 **v3/(% style="color:red" %)Application ID(%%)/devices/(% style="color:red" %)End device ID(%%)/up**
698
699 [[image:image-20221018100743-1.png]]
700
701
702
703 (% style="color:blue" %)**2. Enter the MQTT configuration information**
704
705
706 [[image:image-20221018100947-2.png]]
707
708
709
710 [[image:image-20221018101102-3.png]]
711
712 (% class="wikigeneratedid" %)
713 (% style="color:blue" %)**Finally, click "Update" and Deploy**
714
715
716 (% class="wikigeneratedid" %)
717 "Connected" indicates that the Link Node-red to Local TTN is normal.
718
719 (% class="wikigeneratedid" %)
720 [[image:image-20220914140918-5.png||height="602" width="1121"]]
721
722
723
724 === 6.3.2 Check result. ===
725
726
727 Users can check logs by adding debug.
728
729 [[image:image-20220914140841-4.png||height="600" width="1119"]]
730
731
732
733 In addition,Users can access the lps8v2 gateway's built-in as server of **Node-Red Chart UI **via the URL((% style="background-color:yellow" %)__**//http:~/~/<hostname>:1880/ui or http:~/~/<local-IPV4-address>:1880/ui//**__(%%)) in your browser.
734
735
736
737 [[image:image-20220914142021-7.png||height="517" width="1346"]]
738
739
740
741 = 7.  Request Remote Support =
742
743
744 (((
745 These pages are useful to check what is wrong on the Join process. Below shows the four steps that we can check the Join Process.
746 \\If problem not solve, and you need dragino remote support, please follow to this document: [[TTN Support instruction>>url:https://www.dragino.com/downloads/index.php?dir=&file=TTNv3_Support_Guide.pdf]](% style="color:red" %) **If user has checked below steps and still can't solve the problem, please send us (support @ dragino.com) the screenshots for each step to check. They include:**
747 )))
748
749 * End node is connected to serial port to show the Join frequency and DR. (If possible)
750 * Gateway (from gateway UI) traffic to show the packet got from end node and receive from Server. (If possible)
751 * Gateway traffic (from server UI) to shows the data exchange between gateway and server. (Normally possible)
752 * End Node traffic (from server UI) to shows end node activity in server. (Normally possible)
753 * End Node Keys screen shot shows in end node and server. so we can check if the keys are correct. (In most case, we found keys doesn't match, especially APP EUI)
754
755 (% style="color:blue" %)**1. End Device Join Screen shot, we can check:**
756
757 * If the device is sending join request to server?
758 * What frequency the device is sending?
759
760 [[image:image-20220526141308-33.png]]
761
762 Console Output from End device to see the transmit frequency
763
764
765 User can run (% style="color:blue" %)**AT+CFG **(%%)command to print configuration information.
766
767 * Is the device in OTAA mode or ABP mode? (% style="color:red" %)**AT+NJM=1** (%%)(OTAA mode), (% style="color:red" %)**AT+NJM=0**(%%) (ABP mode)
768
769 [[image:image-20220526141612-36.png]]
770
771
772 Console Output from End device to see the transmit frequency
773
774
775
776 (% style="color:blue" %)**2. Gateway packet traffic in gateway web or ssh. we can check:**
777
778 * (((
779 If the gateway receive the Join request packet from sensor? (If this fail, check if the gateway and sensor works on the match frequency)
780 )))
781 * (((
782 If the gateway gets the Join Accept message from server and transmit it via LoRa?
783
784
785
786 )))
787
788 [[image:image-20220526141739-37.png]]
789
790 Console Output from Gateway to see packets between end node and server.
791
792
793
794 (% style="color:blue" %)**3. Gateway Traffic Page in LoRaWAN Server**
795
796 * (((
797 If the Join Request packet arrive the gateway traffic in server? If not, check the internet connection and gateway LoRaWAN server settings.
798 )))
799 * (((
800 If the server send back a Join Accept for the Join Request? if not, check if the keys from the device match the keys you put in the server, or try to choose a different server route for this end device.
801 )))
802 * (((
803 If the Join Accept message are in correct frequency? If you set the server to use US915 band, and your end node and gateway is EU868, you will see the Join Accept message are in US915 band so no possible to Join success.
804
805
806
807 )))
808
809 [[image:image-20220526141823-38.png||height="501" width="1144"]]
810
811 The Traffic for the End node in the server, use TTNv3 as example
812
813
814
815 [[image:image-20220526141917-39.png]]
816
817 The Traffic for the End node in the server, use TTNv3 as example
818
819
820
821 (% style="color:blue" %)**4. Data Page in LoRaWAN server**
822
823 (((
824 (((
825 (((
826 If this data page shows the Join Request message from the end node? If not, most properly you have wrong settings in the keys. Keys in the server doesn't match the keys in End Node.
827
828
829 [[image:image-20220526141956-40.png]]
830 )))
831 )))
832 )))
833
834 The data for the end device set in server
835
836
837
838 [[image:image-20220526142033-41.png]]
839
840 Check if OTAA Keys match the keys in device