Wiki source code of Notes for TTN

Version 99.8 by Xiaoling on 2022/07/25 08:39

Show last authors
1 **~ Table of Contents:**
2
3 {{toc/}}
4
5
6
7 = 1. The Things Network-V3 =
8
9 == 1.1 Introduction ==
10
11 === 1.1.1 What is The Things Network ===
12
13 (((
14 The Things Network is a global collaborative Internet of Things ecosystem that creates networks, devices and solutions using LoRaWAN.
15 )))
16
17 (((
18 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.
19
20
21 )))
22
23 === 1.1.2 Login or crate an account ===
24
25 (((
26 [[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.
27 )))
28
29 (((
30 Once you have an account,get started by following steps for adding Gateway,Device and Intergrations.
31
32
33 )))
34
35 === 1.1.3 List the support products and Requirements ===
36
37 LoRaWAN Gateway model: Existing Gateway
38
39
40 = 2. Gateway Registration for Semtech UDP =
41
42 == 2.1 Primary LoRaWAN Server ==
43
44 [[image:image-20220526134633-2.png||height="616" width="1323"]]
45
46 Register Gateway
47
48
49 [[image:image-20220526134826-4.png]]
50
51 Put Gateway ID
52
53
54
55 [[image:image-20220526134759-3.png]]
56
57 Choose Frequency Band
58
59
60 [[image:image-20220526134919-5.png]]
61
62 Show Status
63
64
65 == 2.2 Secondary LoRaWAN Server ==
66
67 === 2.2.1 Introduction ===
68
69 The Dragino gateway has supports the Secondary server settings.
70
71
72 === 2.2.2 Below list the support products and Requirements: ===
73
74 (((
75 ~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]]
76 )))
77
78 (((
79 2. Firmware version since :[[lgw~~-~~-build-v5.4.1644658774>>url:http://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LIG16/Firmware/Release/]]
80 )))
81
82
83 === 2.2.3 Example ===
84
85 The following takes Helium as a Secondary LoRaWAN server as an example
86
87
88 === 2.2.4 Step 1: Download and Install the helium gateway-rs ===
89
90 The users is needing to download and install the helium gateway-rs then click the button of Save&Apply
91
92 [[image:image-20220526135049-6.png]]
93
94 Download and Install gateway-rs
95
96
97 === 2.2.5 Step 2: Back to Semtech UDP page ===
98
99 Back to the page of Semtech UDP check the secondary server settings and click the button of Save&Apply
100
101 ​​​​[[image:image-20220526135125-7.png]]
102
103 Configuration of helium
104
105
106 = 3. Gateway Registration for Basics Station =
107
108 == 3.1 Introduction ==
109
110 (((
111 (((
112 The LoRa Basics™ Station protocol simplifies 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/]]
113 )))
114 )))
115
116 (((
117 **Below list the support products and Requirements:**
118 )))
119
120 (((
121 (((
122 ~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]]
123 )))
124
125 (((
126 2. Firmware version since :[[lgw~~-~~-build-v5.4.1640315898>>url:https://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Release/]]
127 )))
128 )))
129
130 (((
131 **What do you need to prepare**
132 )))
133
134 (((
135 (((
136 A gateway that can access the internet normally
137
138
139 )))
140 )))
141
142 == 3.2 Step 1. Add Gateway ==
143
144 (((
145 (((
146 The example for **EU**
147 )))
148 )))
149
150 (((
151 (((
152 User can add your gateway into The Things Network V3 according to the previous step
153 )))
154 )))
155
156 (((
157 (((
158 Following picture is the successful added.
159 )))
160 )))
161
162 [[image:image-20220526135316-8.png]]
163
164 Add Gateway
165
166
167 == 3.3 Step 2. Create the API key ==
168
169 user need to create the CUPS API key and LNS API key.
170
171 [[image:image-20220526135349-9.png]]
172
173 Create CUPS API key
174
175
176 [[image:image-20220526135428-10.png]]
177
178 Create LNS API key
179
180 (% style="color:red" %)**Note : Please copy the API key.**
181
182
183 == 3.4 Step 3. Update the gateway setting ==
184
185 In the LoRa Basics Station LNS Authentication Key field, paste the API key you generated in the previous step.
186
187 [[image:image-20220526135528-11.png]]
188
189 paste the API key
190
191
192 == 3.5 Step 4. Access the gateway GUI ==
193
194 User need to update the API key and install the Certificate
195
196 [[image:image-20220526135601-12.png]]
197
198 Access the gateway GUI
199
200
201 == 3.6 Step 5. Configure Station ==
202
203 User need to input Server URI, Server CUPS Key and LNS Key, as well as install CUPS certificate.
204
205 **just to clarify.**
206
207 (% class="box" %)
208 (((
209 CUPS Server URI  ~-~-> Server Adress
210 CUPS Authorization Key         ~-~-> Server CUPS API Key
211 LNS Authorization Key  ~-~-> Server LNS API Key
212 CUPS certificate  ~-~-> Server CA(user can use the button to install the certificate by default)
213 )))
214
215 [[image:image-20220526135654-13.png]]
216
217 Congfigure Station
218
219
220 == 3.7 Start Station ==
221
222 (((
223 When the user has finished the configuration,Please click Sace&Apply to start station to connect The Things Network.
224
225
226 )))
227
228 == 3.8 Siccessful Connection ==
229
230 If user completes the above steps,which will see live date in the TTN.
231
232 [[image:image-20220526135734-14.png]]
233
234 Station live date
235
236
237 == 3.9 Trouble Shooting ==
238
239 User can check the station log in the logread/system log page.
240
241 [[image:image-20220526135845-15.png]]
242
243 Station Log
244
245
246 and recode the station log in the system/Recode log page.
247
248 [[image:image-20220526135940-16.png]]
249
250 Recore Log
251
252
253 = 4. Configure node connection to TTNv3 =
254
255 (((
256 (((
257 Following is an example for how to join the TTN v3 LoRaWAN Network.
258 )))
259 )))
260
261 (((
262 (((
263 The gateway is already set up to connect to the TTN network, so we now need to configure the TTNv3 server.
264 )))
265 )))
266
267 (((
268 (((
269 We take LES01 as an example.
270
271
272 )))
273 )))
274
275 == 4.1 Step1 ==
276
277 (((
278 (((
279 Create a device in TTN with the OTAA keys from LSE01.
280 )))
281 )))
282
283 (((
284 (((
285 Each LSE01 is shipped with a sticker with the default device EUI as below:
286 )))
287 )))
288
289 (((
290 (((
291 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
292 )))
293 )))
294
295 [[image:image-20220526140015-17.png]]
296
297 [[image:image-20220526140044-18.png]]
298
299
300 == 4.2 Step2 ==
301
302 (((
303 (((
304 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.
305 )))
306 )))
307
308 [[image:image-20220526140132-19.png]]
309
310
311 == 4.3 Step3 ==
312
313 Add APP EUI in the application:
314
315 [[image:image-20220526140205-20.png]]
316
317
318 == 4.4 Step4 ==
319
320 Add APP KEY and DEV EUI:
321
322 [[image:image-20220526140251-21.png]]
323
324
325 = 5. TTN V3 integrated into MQTT server =
326
327 == 5.1 Introduction ==
328
329 (((
330 (((
331 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.
332
333
334 )))
335 )))
336
337 == 5.2 Create device steps at MQTT ==
338
339 (((
340 (((
341 The user creates a new API KEY after creating a device on TTN V3.
342 )))
343 )))
344
345 (((
346 (((
347 Then copy the password and open MQTT.fx.
348 )))
349 )))
350
351 (((
352 (((
353 Fill in Broker Address and Broker port.
354 )))
355 )))
356
357 [[image:image-20220526140347-22.png]]
358
359 Fill in the username and password into MQTT.
360
361
362 [[image:image-20220526140420-23.png]]
363
364 The Application Server publishes uplink traffic on the following topics:
365
366 (% class="box" %)
367 (((
368 v3/{application id}@{tenant id}/devices/{device id}/join
369 v3/{application id}@{tenant id}/devices/{device id}/up
370 v3/{application id}@{tenant id}/devices/{device id}/down/queued
371 v3/{application id}@{tenant id}/devices/{device id}/down/sent
372 v3/{application id}@{tenant id}/devices/{device id}/down/ack
373 v3/{application id}@{tenant id}/devices/{device id}/down/nack
374 v3/{application id}@{tenant id}/devices/{device id}/down/failed
375 v3/{application id}@{tenant id}/devices/{device id}/service/data
376 v3/{application id}@{tenant id}/devices/{device id}/location/solved
377 )))
378
379 (((
380 (((
381 **Note**: Remember that the format of these topics for The Things Stack Open Source would contain {application id} instead of {application id}@{tenant id}.
382 )))
383 )))
384
385 [[image:image-20220526140452-24.png]]
386
387 (((
388 (((
389 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.
390 )))
391 )))
392
393 [[image:image-20220526140708-25.png]]
394
395 (((
396 (((
397 Downlinks can be scheduled by publishing the message to the topic v3/{application id}@{tenant id}/devices/{device id}/down/push.
398 )))
399 )))
400
401 (((
402 (((
403 **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.
404 )))
405 )))
406
407 (((
408 (((
409 Instead of /push, you can also use /replace to replace the downlink queue. Replacing with an empty array clears the downlink queue. Example:
410 )))
411 )))
412
413 [[image:image-20220526140856-26.png]]
414
415 (((
416 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:
417 )))
418
419 (((
420 **Note**: Use this handy tool to convert hexadecimal to base64.
421 )))
422
423 [[image:image-20220526140936-27.png]]
424
425
426 == 5.3 Send Downlink message ==
427
428 (((
429 How to configure downlink in TTN V3?
430 )))
431
432 (((
433 A few examples: set the transmission interval to 90 seconds.
434 )))
435
436 (((
437 Downlink command:01 00 00 5A
438 )))
439
440 [[image:image-20220526141021-28.png]]
441
442 downlink
443
444
445 After sending, you can view it in live data.
446
447 [[image:image-20220526141052-29.png]]
448
449 downlink
450
451
452 (((
453 When downlink is successfully sent, the downlink information can be received on the serial port.
454 )))
455
456 (((
457 **Note**: If the downlink byte sent is longer, the number of bytes will be displayed.
458 )))
459
460 [[image:image-20220526141116-30.png]]
461
462 downlink
463
464
465 (((
466 (((
467 If you want to get a successful reply to send downlink in TTN v3. You need to set the response level.
468 )))
469 )))
470
471 (((
472 (((
473 If the equipment uses CLASS A. You can set **AT+RPL=2** or send the downlink command: **2102**
474 )))
475 )))
476
477 (((
478 (((
479 If the equipment uses CLASS C. You can set** AT+RPL=4** or send the downlink command: **2104**
480 )))
481 )))
482
483 (((
484 (((
485 When the device successfully receives the downlink, the server will receive a confirmation packet of 00.
486 )))
487 )))
488
489 [[image:image-20220526141149-31.png]]
490
491 downlink
492
493
494 = 6. Request Remote Support =
495
496 (((
497 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.
498 \\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:**
499 )))
500
501 * End node is connected to serial port to show the Join frequency and DR. (If possible)
502 * Gateway (from gateway UI) traffic to show the packet got from end node and receive from Server. (If possible)
503 * Gateway traffic (from server UI) to shows the data exchange between gateway and server. (Normally possible)
504 * End Node traffic (from server UI) to shows end node activity in server. (Normally possible)
505 * 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)
506
507 **~1. End Device Join Screen shot, we can check:**
508
509 * If the device is sending join request to server?
510 * What frequency the device is sending?
511
512 [[image:image-20220526141308-33.png]]
513
514 Console Output from End device to see the transmit frequency
515
516 User can run **AT+CFG **command to print configuration information.
517
518 * Is the device in OTAA mode or ABP mode? **AT+NJM=1** (OTAA mode), **AT+NJM=0** (ABP mode)
519
520 [[image:image-20220526141612-36.png]]
521
522
523 Console Output from End device to see the transmit frequency
524
525
526 **2. Gateway packet traffic in gateway web or ssh. we can check:**
527
528 * (((
529 If the gateway receive the Join request packet from sensor? (If this fail, check if the gateway and sensor works on the match frequency)
530 )))
531 * (((
532 If the gateway gets the Join Accept message from server and transmit it via LoRa?
533 )))
534
535 [[image:image-20220526141739-37.png]]
536
537 Console Output from Gateway to see packets between end node and server.
538
539
540 **3. Gateway Traffic Page in LoRaWAN Server**
541
542 * (((
543 If the Join Request packet arrive the gateway traffic in server? If not, check the internet connection and gateway LoRaWAN server settings.
544 )))
545 * (((
546 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.
547 )))
548 * (((
549 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.
550 )))
551
552 [[image:image-20220526141823-38.png||height="501" width="1144"]]
553
554 The Traffic for the End node in the server, use TTNv3 as example
555
556
557 [[image:image-20220526141917-39.png]]
558
559 The Traffic for the End node in the server, use TTNv3 as example
560
561
562 **4. Data Page in LoRaWAN server**
563
564 (((
565 (((
566 (((
567 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.
568
569 [[image:image-20220526141956-40.png]]
570 )))
571 )))
572 )))
573
574 The data for the end device set in server
575
576
577 [[image:image-20220526142033-41.png]]
578
579 Check if OTAA Keys match the keys in device