Wiki source code of Notes for TTN
Version 232.1 by Edwin Chen on 2024/01/17 17:06
Show last authors
author | version | line-number | content |
---|---|---|---|
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 | ((( | ||
15 | The Things Network is a global collaborative Internet of Things ecosystem that creates networks, devices and solutions using LoRaWAN. | ||
16 | ))) | ||
17 | |||
18 | ((( | ||
19 | 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. | ||
20 | |||
21 | |||
22 | ))) | ||
23 | |||
24 | === 1.1.2 Login or crate an account === | ||
25 | |||
26 | |||
27 | ((( | ||
28 | [[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. | ||
29 | ))) | ||
30 | |||
31 | ((( | ||
32 | Once you have an account,get started by following steps for adding Gateway,Device and Intergrations. | ||
33 | |||
34 | |||
35 | ))) | ||
36 | |||
37 | === 1.1.3 List the support products and Requirements === | ||
38 | |||
39 | |||
40 | LoRaWAN Gateway model: Existing Gateway | ||
41 | |||
42 | |||
43 | = 2. Gateway Registration for Semtech UDP = | ||
44 | |||
45 | |||
46 | (% style="color:red" %)**Note: Steps 2 and 3 are different connection methods, the user only needs to choose one of them** | ||
47 | |||
48 | |||
49 | == 2.1 Primary LoRaWAN Server == | ||
50 | |||
51 | |||
52 | [[image:image-20220526134633-2.png||_mstalt="430196" height="540" width="1160"]] | ||
53 | |||
54 | Register Gateway | ||
55 | |||
56 | |||
57 | [[image:image-20231121092510-1.png||height="617" width="1157"]] | ||
58 | |||
59 | |||
60 | Put Gateway ID | ||
61 | |||
62 | |||
63 | [[image:image-20231121092543-2.png||height="613" width="1159"]] | ||
64 | |||
65 | |||
66 | Choose Frequency Band | ||
67 | |||
68 | |||
69 | |||
70 | (% style="color:red" %)**Note:** | ||
71 | |||
72 | DRAGINO - Frequency Plan list ~-~-~-~-~-~-~-~-~-~-~-~-~-~-- The Thing Network Frequency Plan List | ||
73 | |||
74 | AS923-1 (920-923) (% style="display:none" %) (%%) ~-~-~-~-~-~-~-~-~-~-~-~-~-~-- Asia 920-923 Mhz | ||
75 | |||
76 | AS923-1 (923-925) ~-~-~-~-~-~-~-~-~-~-~-~-~-~-- Asia 915-928 Mhz (AS923 Group 1)with only default channels | ||
77 | |||
78 | AS923-2 (921.4-922.8) ~-~-~-~-~-~-~-~-~-~-~-~-~-~-- Asia 920-923 Mhz (AS923 Group 2)with only default channels | ||
79 | |||
80 | AS923-3 (916.6-918.2) ~-~-~-~-~-~-~-~-~-~-~-~-~-~-- Asia 915-921 Mhz (AS923 Group 3)with only default channels | ||
81 | |||
82 | AS923-4 (917.3-918.7) ~-~-~-~-~-~-~-~-~-~-~-~-~-~-- Asia 917-920 Mhz (AS923 Group 4)with only default channels | ||
83 | |||
84 | |||
85 | [[image:image-20220726134642-1.png||_mstalt="430287" height="344" width="660"]][[image:image-20220726135827-3.png||_mstalt="432978" height="214" width="394"]][[image:image-20220726135759-2.png||_mstalt="433953" height="218" width="554"]] | ||
86 | |||
87 | [[image:image-20231121092627-3.png||height="617" width="1174"]] | ||
88 | |||
89 | |||
90 | [[image:image-20220526134919-5.png||_mstalt="433602"]] | ||
91 | |||
92 | Show Status | ||
93 | |||
94 | |||
95 | == 2.2 Secondary LoRaWAN Server == | ||
96 | |||
97 | === 2.2.1 Introduction === | ||
98 | |||
99 | |||
100 | The Dragino gateway has supports the Secondary server settings. | ||
101 | |||
102 | |||
103 | === 2.2.2 Below list the support products and Requirements: === | ||
104 | |||
105 | |||
106 | ((( | ||
107 | 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]] | ||
108 | ))) | ||
109 | |||
110 | ((( | ||
111 | 2. Firmware version since : [[lgw~~-~~-build-v5.4.1644658774>>url:http://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LIG16/Firmware/Release/]] | ||
112 | ))) | ||
113 | |||
114 | |||
115 | === 2.2.3 Example === | ||
116 | |||
117 | |||
118 | The following takes Helium as a Secondary LoRaWAN server as an example | ||
119 | |||
120 | |||
121 | === 2.2.4 Step 1: Download and Install the helium gateway-rs === | ||
122 | |||
123 | |||
124 | The users is needing to download and install the helium gateway-rs then click the button of (% style="color:blue" %)**Save&Apply.** | ||
125 | |||
126 | |||
127 | [[image:image-20220526135049-6.png||_mstalt="432432"]] | ||
128 | |||
129 | Download and Install gateway-rs | ||
130 | |||
131 | |||
132 | === 2.2.5 Step 2: Back to Semtech UDP page === | ||
133 | |||
134 | |||
135 | Back to the page of Semtech UDP check the secondary server settings and click the button of (% style="color:blue" %)**Save&Apply.** | ||
136 | |||
137 | |||
138 | [[image:image-20220526135125-7.png||_mstalt="431106"]] | ||
139 | |||
140 | Configuration of helium | ||
141 | |||
142 | |||
143 | = 3. Gateway Registration for Basics Station = | ||
144 | |||
145 | == 3.1 Introduction == | ||
146 | |||
147 | |||
148 | ((( | ||
149 | ((( | ||
150 | 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/]] | ||
151 | |||
152 | (% style="color:red" %)**Note: Steps 2 and 3 are different connection methods, the user only needs to choose one of them** | ||
153 | |||
154 | |||
155 | ))) | ||
156 | ))) | ||
157 | |||
158 | ((( | ||
159 | (% style="color:blue" %)**Below list the support products and Requirements:** | ||
160 | ))) | ||
161 | |||
162 | ((( | ||
163 | ((( | ||
164 | 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]] | ||
165 | ))) | ||
166 | |||
167 | ((( | ||
168 | 2. Firmware version since : [[lgw~~-~~-build-v5.4.1640315898>>url:https://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Release/]] | ||
169 | |||
170 | |||
171 | ))) | ||
172 | ))) | ||
173 | |||
174 | ((( | ||
175 | (% style="color:blue" %)**What do you need to prepare?** | ||
176 | ))) | ||
177 | |||
178 | ((( | ||
179 | ((( | ||
180 | A gateway that can access the internet normally | ||
181 | |||
182 | |||
183 | ))) | ||
184 | ))) | ||
185 | |||
186 | == 3.2 Step 1: Register Gateway == | ||
187 | |||
188 | |||
189 | ((( | ||
190 | ((( | ||
191 | (% style="color:blue" %)**The example for**(%%)** the (% style="color:red" %)EU:(%%)** | ||
192 | ))) | ||
193 | ))) | ||
194 | |||
195 | ((( | ||
196 | ((( | ||
197 | Click the 'Register Gateway' button will get this page to register the gateway from The Thing Network Console gateway page. | ||
198 | |||
199 | [[image:image-20230728144218-7.png||_mstalt="433290" height="128" width="836"]] | ||
200 | ))) | ||
201 | ))) | ||
202 | |||
203 | [[image:image-20230728143449-2.png||_mstalt="433108"]] | ||
204 | |||
205 | Register Gateway | ||
206 | |||
207 | |||
208 | == 3.3 Step 2: Create the API key == | ||
209 | |||
210 | |||
211 | **API Key can be created manually** ~-~--> if users forgot to check the check box or switch to basic station mode from the Semtech UDP mode | ||
212 | |||
213 | |||
214 | |||
215 | |||
216 | **or generate by TTN by checking the check box when registering the gateway** ~-~-->[[image:image-20230728143505-3.png||_mstalt="431132"]] | ||
217 | |||
218 | |||
219 | === **1.) Generated by TTH** === | ||
220 | |||
221 | |||
222 | Users need to download these two key files and fill them into the gateway's TTN Basics Station configuration, | ||
223 | |||
224 | [[image:image-20230728150521-2.png||height="664" width="1019"]] | ||
225 | |||
226 | |||
227 | (% style="color:red" %)**Note:**(%%) The "**Authorization: Bearer** " field should not be entered in the TTN Basics Station configuration of the gateway | ||
228 | |||
229 | [[image:image-20230728151807-3.png||height="423" width="1024"]] | ||
230 | |||
231 | |||
232 | === **2.) Manually create API KEY: ** === | ||
233 | |||
234 | |||
235 | ==== CUPS API KEY ==== | ||
236 | |||
237 | [[image:image-20220526135349-9.png||_mstalt="434460"]] | ||
238 | |||
239 | |||
240 | |||
241 | ==== LNS API KEY ==== | ||
242 | |||
243 | [[image:image-20220526135428-10.png||_mstalt="453791"]] | ||
244 | |||
245 | |||
246 | (% style="color:red" %)**Note: If your API is generated by yourself you have to update the key to the gateway setting.** | ||
247 | |||
248 | |||
249 | ==== Update the gateway setting ==== | ||
250 | |||
251 | |||
252 | In the LoRa Basics Station LNS Authentication Key field, paste the API key you generated in the previous step. | ||
253 | |||
254 | |||
255 | [[image:image-20220526135528-11.png||_mstalt="454480"]] | ||
256 | |||
257 | paste the API key | ||
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||_mstalt="452153"]] | ||
267 | |||
268 | Access the gateway GUI | ||
269 | |||
270 | |||
271 | == 3.6 Step 5: Configure Station == | ||
272 | |||
273 | |||
274 | User need to input Server URI, Server CUPS Key and LNS Key, as well as install CUPS certificate. | ||
275 | |||
276 | |||
277 | (% style="color:blue" %)**just to clarify:** | ||
278 | |||
279 | (% class="box" %) | ||
280 | ((( | ||
281 | CUPS Server URI ~-~-> Server Address, Example: https:~/~/eu1.cloud.thethings.network:443 | ||
282 | CUPS Authorization Key ~-~-> Server CUPS API Key | ||
283 | LNS Authorization Key ~-~-> Server LNS API Key | ||
284 | CUPS certificate ~-~-> Server CA(user can use the button to install the certificate by default) | ||
285 | ))) | ||
286 | |||
287 | [[image:image-20220526135654-13.png||_mstalt="455169"]] | ||
288 | |||
289 | Congfigure Station | ||
290 | |||
291 | |||
292 | == 3.7 Start Station == | ||
293 | |||
294 | |||
295 | ((( | ||
296 | When the user has finished the configuration,Please click Sace&Apply to start station to connect The Things Network. | ||
297 | |||
298 | |||
299 | ))) | ||
300 | |||
301 | == 3.8 Siccessful Connection == | ||
302 | |||
303 | |||
304 | If user completes the above steps,which will see live date in the TTN. | ||
305 | |||
306 | |||
307 | [[image:image-20220526135734-14.png||_mstalt="455208"]] | ||
308 | |||
309 | Station live date | ||
310 | |||
311 | |||
312 | == 3.9 Trouble Shooting == | ||
313 | |||
314 | |||
315 | User can check the station log in the** (% style="color:blue" %)LogRead ~-~-> System Log (%%)**page. | ||
316 | |||
317 | |||
318 | [[image:image-20220526135845-15.png||_mstalt="456560"]] | ||
319 | |||
320 | Station Log | ||
321 | |||
322 | |||
323 | |||
324 | and recode the station log in the** (% style="color:blue" %)LogRead ~-~-> Recode Log(%%)** page. | ||
325 | |||
326 | [[image:image-20220526135940-16.png||_mstalt="455559"]] | ||
327 | |||
328 | Recore Log | ||
329 | |||
330 | |||
331 | = 4. Configure node connection to TTNv3 = | ||
332 | |||
333 | |||
334 | ((( | ||
335 | ((( | ||
336 | Following is an example for how to join the TTN v3 LoRaWAN Network. | ||
337 | ))) | ||
338 | ))) | ||
339 | |||
340 | ((( | ||
341 | ((( | ||
342 | The gateway is already set up to connect to the TTN network, so we now need to configure the TTNv3 server. | ||
343 | ))) | ||
344 | ))) | ||
345 | |||
346 | ((( | ||
347 | ((( | ||
348 | (% style="color:#037691" %)**We take LES01 as an example.** | ||
349 | |||
350 | |||
351 | ))) | ||
352 | ))) | ||
353 | |||
354 | == 4.1 Step 1 == | ||
355 | |||
356 | |||
357 | ((( | ||
358 | ((( | ||
359 | Create a device in TTN with the OTAA keys from LSE01. | ||
360 | ))) | ||
361 | ))) | ||
362 | |||
363 | ((( | ||
364 | ((( | ||
365 | Each LSE01 is shipped with a sticker with the default device EUI as below: | ||
366 | ))) | ||
367 | ))) | ||
368 | |||
369 | ((( | ||
370 | ((( | ||
371 | You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot: | ||
372 | ))) | ||
373 | ))) | ||
374 | |||
375 | [[image:image-20230221135445-1.png||_mstalt="428714" height="356" width="777"]] | ||
376 | |||
377 | First create an application and fill in the custom information in it | ||
378 | |||
379 | [[image:image-20230221135520-2.png||_mstalt="427050" height="52" width="974"]] | ||
380 | |||
381 | [[image:image-20230221135810-3.png||_mstalt="428025" height="400" width="638"]] | ||
382 | |||
383 | |||
384 | Add a node device to the application | ||
385 | |||
386 | |||
387 | [[image:image-20220526140044-18.png||_mstalt="453648"]] | ||
388 | |||
389 | |||
390 | == 4.2 Step 2 == | ||
391 | |||
392 | |||
393 | ((( | ||
394 | ((( | ||
395 | 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. | ||
396 | |||
397 | [[image:image-20230221164809-2.png||_mstalt="430937" height="525" width="617"]] | ||
398 | ))) | ||
399 | ))) | ||
400 | |||
401 | |||
402 | == 4.3 Step 3 == | ||
403 | |||
404 | |||
405 | Add APP EUI in the application: | ||
406 | |||
407 | |||
408 | [[image:image-20230221140131-4.png||_mstalt="425984" height="569" width="674"]] | ||
409 | |||
410 | |||
411 | == 4.4 Step 4 == | ||
412 | |||
413 | |||
414 | **Add APP KEY and DEV EUI:** | ||
415 | |||
416 | |||
417 | [[image:image-20230221140448-6.png||_mstalt="430339" height="535" width="647"]] | ||
418 | |||
419 | |||
420 | = 5. TTN V3 integrated into MQTT server = | ||
421 | |||
422 | == 5.1 Introduction == | ||
423 | |||
424 | |||
425 | ((( | ||
426 | ((( | ||
427 | 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. | ||
428 | |||
429 | |||
430 | ))) | ||
431 | ))) | ||
432 | |||
433 | == 5.2 Create device steps at MQTT == | ||
434 | |||
435 | |||
436 | ((( | ||
437 | ((( | ||
438 | The user creates a new API KEY after creating a device on TTN V3. | ||
439 | ))) | ||
440 | ))) | ||
441 | |||
442 | ((( | ||
443 | ((( | ||
444 | Then copy the password and open MQTT.fx. | ||
445 | ))) | ||
446 | ))) | ||
447 | |||
448 | ((( | ||
449 | ((( | ||
450 | Fill in Broker Address and Broker port. | ||
451 | |||
452 | |||
453 | ))) | ||
454 | ))) | ||
455 | |||
456 | [[image:image-20220526140347-22.png||_mstalt="453700"]] | ||
457 | |||
458 | Fill in the username and password into MQTT. | ||
459 | |||
460 | |||
461 | |||
462 | [[image:image-20220526140420-23.png||_mstalt="451373"]] | ||
463 | |||
464 | |||
465 | The Application Server publishes uplink traffic on the following topics: | ||
466 | |||
467 | (% class="box" %) | ||
468 | ((( | ||
469 | v3/{application id}@{tenant id}/devices/{device id}/join | ||
470 | v3/{application id}@{tenant id}/devices/{device id}/up | ||
471 | v3/{application id}@{tenant id}/devices/{device id}/down/queued | ||
472 | v3/{application id}@{tenant id}/devices/{device id}/down/sent | ||
473 | v3/{application id}@{tenant id}/devices/{device id}/down/ack | ||
474 | v3/{application id}@{tenant id}/devices/{device id}/down/nack | ||
475 | v3/{application id}@{tenant id}/devices/{device id}/down/failed | ||
476 | v3/{application id}@{tenant id}/devices/{device id}/service/data | ||
477 | v3/{application id}@{tenant id}/devices/{device id}/location/solved | ||
478 | ))) | ||
479 | |||
480 | ((( | ||
481 | |||
482 | |||
483 | ((( | ||
484 | (% 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}.** | ||
485 | |||
486 | |||
487 | ))) | ||
488 | ))) | ||
489 | |||
490 | [[image:image-20220526140452-24.png||_mstalt="453401"]] | ||
491 | |||
492 | |||
493 | ((( | ||
494 | ((( | ||
495 | 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. | ||
496 | ))) | ||
497 | ))) | ||
498 | |||
499 | [[image:image-20220526140708-25.png||_mstalt="455117"]] | ||
500 | |||
501 | ((( | ||
502 | ((( | ||
503 | Downlinks can be scheduled by publishing the message to the topic v3/{application id}@{tenant id}/devices/{device id}/down/push. | ||
504 | ))) | ||
505 | ))) | ||
506 | |||
507 | ((( | ||
508 | ((( | ||
509 | |||
510 | |||
511 | (% 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.** | ||
512 | |||
513 | |||
514 | ))) | ||
515 | ))) | ||
516 | |||
517 | ((( | ||
518 | ((( | ||
519 | Instead of /push, you can also use /replace to replace the downlink queue. Replacing with an empty array clears the downlink queue. Example: | ||
520 | ))) | ||
521 | ))) | ||
522 | |||
523 | [[image:image-20220526140856-26.png||_mstalt="456755"]] | ||
524 | |||
525 | ((( | ||
526 | 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: | ||
527 | |||
528 | |||
529 | ))) | ||
530 | |||
531 | ((( | ||
532 | (% style="color:red" %)**Note**: **Use this handy tool to convert hexadecimal to base64.** | ||
533 | |||
534 | |||
535 | ))) | ||
536 | |||
537 | [[image:image-20220526140936-27.png||_mstalt="456794"]] | ||
538 | |||
539 | |||
540 | == 5.3 Send Downlink message == | ||
541 | |||
542 | |||
543 | ((( | ||
544 | How to configure downlink in TTN V3? | ||
545 | ))) | ||
546 | |||
547 | ((( | ||
548 | A few examples: set the transmission interval to 90 seconds. | ||
549 | ))) | ||
550 | |||
551 | ((( | ||
552 | (% style="color:blue" %)**Downlink command: 01 00 00 5A** | ||
553 | |||
554 | |||
555 | ))) | ||
556 | |||
557 | [[image:image-20220526141021-28.png||_mstalt="452647"]] | ||
558 | |||
559 | downlink | ||
560 | |||
561 | |||
562 | |||
563 | After sending, you can view it in live data. | ||
564 | |||
565 | [[image:image-20220526141052-29.png||_mstalt="454337"]] | ||
566 | |||
567 | downlink | ||
568 | |||
569 | |||
570 | |||
571 | ((( | ||
572 | When downlink is successfully sent, the downlink information can be received on the serial port. | ||
573 | ))) | ||
574 | |||
575 | ((( | ||
576 | (% style="color:red" %)**Note**:** If the downlink byte sent is longer, the number of bytes will be displayed.** | ||
577 | |||
578 | |||
579 | ))) | ||
580 | |||
581 | [[image:image-20220526141116-30.png||_mstalt="451672"]] | ||
582 | |||
583 | downlink | ||
584 | |||
585 | |||
586 | ((( | ||
587 | ((( | ||
588 | If you want to get a successful reply to send downlink in TTN v3. You need to set the response level. | ||
589 | ))) | ||
590 | ))) | ||
591 | |||
592 | ((( | ||
593 | ((( | ||
594 | 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** | ||
595 | ))) | ||
596 | ))) | ||
597 | |||
598 | ((( | ||
599 | ((( | ||
600 | 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** | ||
601 | ))) | ||
602 | ))) | ||
603 | |||
604 | ((( | ||
605 | ((( | ||
606 | When the device successfully receives the downlink, the server will receive a confirmation packet of 00. | ||
607 | |||
608 | |||
609 | ))) | ||
610 | ))) | ||
611 | |||
612 | [[image:image-20220526141149-31.png||_mstalt="454038"]] | ||
613 | |||
614 | downlink | ||
615 | |||
616 | |||
617 | = 6. Route TTN data to Node-Red = | ||
618 | |||
619 | |||
620 | 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||_mstmutation="1"]]" | ||
621 | |||
622 | |||
623 | == 6.1 Edit mqtt-broker node == | ||
624 | |||
625 | |||
626 | Users need to configure the TTN MQTT server address and port, Such as: | ||
627 | |||
628 | (% class="box infomessage" %) | ||
629 | ((( | ||
630 | **Server :** eu1.cloud.thethings.network | ||
631 | |||
632 | **Port :** 1883 | ||
633 | ))) | ||
634 | |||
635 | [[image:image-20220829160224-187.jpeg||_mstalt="526292" height="569" width="1128"]] | ||
636 | |||
637 | |||
638 | **Enter Username and Password** | ||
639 | |||
640 | [[image:image-20220829164358-188.png||_mstalt="486174" height="570" width="1130"]] | ||
641 | |||
642 | |||
643 | == 6.2 Debug == | ||
644 | |||
645 | |||
646 | Users can check logs by adding debug. | ||
647 | |||
648 | [[image:image-20220829164652-189.png||_mstalt="485472" height="572" width="1134"]] | ||
649 | |||
650 | |||
651 | == 6.3 Example: Use Local Server TTN and Node-Red in LPS8v2 == | ||
652 | |||
653 | |||
654 | 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: | ||
655 | |||
656 | * LHT65N register on LPS8v2 Built-In TTN server already | ||
657 | * The user is able to see the data on the built-in TTN server device page. | ||
658 | |||
659 | Below are the steps to plot the sensor data on LPS8v2 Node-Red. | ||
660 | |||
661 | |||
662 | === 6.3.1 Link Node-Red to Local TTN === | ||
663 | |||
664 | |||
665 | 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]]** | ||
666 | |||
667 | 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);"]]** | ||
668 | |||
669 | |||
670 | After importing the Input Flow is complete, the user needs to edit the MQTT in the node | ||
671 | |||
672 | |||
673 | (% style="color:blue" %)**1. Change the Topic** | ||
674 | |||
675 | |||
676 | Topic modifies it to the following format: | ||
677 | |||
678 | **v3/(% style="color:red" %)Application ID(%%)/devices/(% style="color:red" %)End device ID(%%)/up** | ||
679 | |||
680 | [[image:image-20221018100743-1.png||_mstalt="427739" height="573" width="1120"]](% style="display:none" %) | ||
681 | |||
682 | |||
683 | |||
684 | (% style="color:blue" %)**2. Enter the MQTT configuration information** | ||
685 | |||
686 | |||
687 | [[image:image-20221018100947-2.png||_mstalt="430079" height="560" width="1123"]](% style="display:none" %) | ||
688 | |||
689 | |||
690 | |||
691 | [[image:image-20221018101102-3.png||_mstalt="425256" height="580" width="1121"]] | ||
692 | |||
693 | (% class="wikigeneratedid" %) | ||
694 | (% style="color:blue" %)**Finally, click "Update" and Deploy** | ||
695 | |||
696 | |||
697 | (% class="wikigeneratedid" %) | ||
698 | "Connected" indicates that the Link Node-red to Local TTN is normal. | ||
699 | |||
700 | (% class="wikigeneratedid" %) | ||
701 | [[image:image-20220914140918-5.png||_mstalt="432523" height="602" width="1121"]] | ||
702 | |||
703 | |||
704 | === 6.3.2 Check result. === | ||
705 | |||
706 | |||
707 | Users can check logs by adding debug. | ||
708 | |||
709 | [[image:image-20220914140841-4.png||_mstalt="430456" height="600" width="1119"]] | ||
710 | |||
711 | |||
712 | 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. | ||
713 | |||
714 | |||
715 | [[image:image-20220914142021-7.png||_mstalt="429000" height="439" width="1143"]](% style="display:none" %) | ||
716 | |||
717 | |||
718 | = 7. Request Remote Support = | ||
719 | |||
720 | |||
721 | ((( | ||
722 | 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. | ||
723 | \\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:** | ||
724 | ))) | ||
725 | |||
726 | * End node is connected to serial port to show the Join frequency and DR. (If possible) | ||
727 | |||
728 | * Gateway (from gateway UI) traffic to show the packet got from end node and receive from Server. (If possible) | ||
729 | |||
730 | * Gateway traffic (from server UI) to shows the data exchange between gateway and server. (Normally possible) | ||
731 | |||
732 | * End Node traffic (from server UI) to shows end node activity in server. (Normally possible) | ||
733 | |||
734 | * 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) | ||
735 | |||
736 | (% style="color:blue" %)**1. End Device Join Screen shot, we can check:** | ||
737 | |||
738 | * If the device is sending join request to server? | ||
739 | |||
740 | * What frequency the device is sending? | ||
741 | |||
742 | [[image:image-20220526141308-33.png||_mstalt="453778"]] | ||
743 | |||
744 | Console Output from End device to see the transmit frequency | ||
745 | |||
746 | |||
747 | User can run (% style="color:blue" %)**AT+CFG **(%%)command to print configuration information. | ||
748 | |||
749 | * 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) | ||
750 | |||
751 | [[image:image-20220526141612-36.png||_mstalt="454142"]] | ||
752 | |||
753 | |||
754 | Console Output from End device to see the transmit frequency | ||
755 | |||
756 | |||
757 | |||
758 | (% style="color:blue" %)**2. Gateway packet traffic in gateway web or ssh. we can check:** | ||
759 | |||
760 | * ((( | ||
761 | If the gateway receive the Join request packet from sensor? (If this fail, check if the gateway and sensor works on the match frequency) | ||
762 | ))) | ||
763 | * ((( | ||
764 | If the gateway gets the Join Accept message from server and transmit it via LoRa? | ||
765 | |||
766 | |||
767 | |||
768 | ))) | ||
769 | |||
770 | [[image:image-20220526141739-37.png||_mstalt="457847"]] | ||
771 | |||
772 | Console Output from Gateway to see packets between end node and server. | ||
773 | |||
774 | |||
775 | |||
776 | (% style="color:blue" %)**3. Gateway Traffic Page in LoRaWAN Server** | ||
777 | |||
778 | * ((( | ||
779 | If the Join Request packet arrive the gateway traffic in server? If not, check the internet connection and gateway LoRaWAN server settings. | ||
780 | ))) | ||
781 | * ((( | ||
782 | 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. | ||
783 | ))) | ||
784 | * ((( | ||
785 | 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. | ||
786 | |||
787 | |||
788 | |||
789 | ))) | ||
790 | |||
791 | [[image:image-20220526141823-38.png||_mstalt="456183" height="501" width="1144"]] | ||
792 | |||
793 | The Traffic for the End node in the server, use TTNv3 as example | ||
794 | |||
795 | |||
796 | |||
797 | [[image:image-20220526141917-39.png||_mstalt="457899"]] | ||
798 | |||
799 | The Traffic for the End node in the server, use TTNv3 as example | ||
800 | |||
801 | |||
802 | |||
803 | (% style="color:blue" %)**4. Data Page in LoRaWAN server** | ||
804 | |||
805 | ((( | ||
806 | ((( | ||
807 | ((( | ||
808 | 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. | ||
809 | |||
810 | |||
811 | [[image:image-20220526141956-40.png||_mstalt="455832"]] | ||
812 | ))) | ||
813 | ))) | ||
814 | ))) | ||
815 | |||
816 | The data for the end device set in server | ||
817 | |||
818 | |||
819 | |||
820 | [[image:image-20220526142033-41.png||_mstalt="452036"]] | ||
821 | |||
822 | Check if OTAA Keys match the keys in device | ||
823 | |||
824 | |||
825 | = 8. FAQ = | ||
826 | |||
827 | == 8.1 How to import devices keys to server. == | ||
828 | |||
829 | |||
830 | **For TTS in LPS8v2** | ||
831 | |||
832 | Open your application and click the button **Import end devices** | ||
833 | |||
834 | [[image:image-20230423154012-1.png||_mstalt="426738" height="472" width="755"]] | ||
835 | |||
836 | |||
837 | Select the **File format** and upload the file (e.g. or ).devices/jsondevices.csv | ||
838 | |||
839 | You can specify **Fallback values** for Frequency plan and LoRaWAN and Regional Parameters version, in case the import file does not specify these settings for the device. | ||
840 | |||
841 | You can also expand the **Advanced claiming and component settings** to set targeted components, and set the claim authentication code to be generated. | ||
842 | |||
843 | Start the import by clicking the **Import end devices** button. | ||
844 | |||
845 | [[image:image-20230423154040-2.png||_mstalt="427401" height="470" width="749"]] | ||
846 | |||
847 | |||
848 | Wait for the end devices to be successfully imported. In case any device fails, you will see a relevant error message in the console. | ||
849 | |||
850 | [[image:image-20230423154105-3.png||_mstalt="428467" height="478" width="763"]] | ||
851 | |||
852 | |||
853 | If the import was successful, your devices are added to the list of end devices in your application. | ||
854 | |||
855 | [[image:image-20230423154125-4.png||_mstalt="429481" height="480" width="766"]] | ||
856 | |||
857 | Devices are now registered on The Things Stack. | ||
858 | |||
859 | |||
860 | === **JSON File Reference** === | ||
861 | |||
862 | |||
863 | The Things Stack allows you to import end devices from V2, ChirpStack and other LoRaWAN networks using a JSON file describing those devices. | ||
864 | |||
865 | Using JSON file with device descriptions, you can migrate end devices with or without their existing sessions. | ||
866 | |||
867 | Here is an example of an OTAA device description in the file:devices.json | ||
868 | |||
869 | {{{{ | ||
870 | "ids": { | ||
871 | "device_id": "my-device", | ||
872 | "dev_eui": "0102030405060708", | ||
873 | "join_eui": "0102030405060708" | ||
874 | }, | ||
875 | "name": "My Device", | ||
876 | "description": "Living room temperature sensor", | ||
877 | "lorawan_version": "MAC_V1_0_2", | ||
878 | "lorawan_phy_version": "PHY_V1_0_2_REV_B", | ||
879 | "frequency_plan_id": "EU_863_870_TTN", | ||
880 | "supports_join": true, | ||
881 | "root_keys": { | ||
882 | "app_key": { | ||
883 | "key": "01020304050607080102030405060708" | ||
884 | } | ||
885 | } | ||
886 | } | ||
887 | }}} | ||
888 | |||
889 | Multiple end devices can also be contained in a single file like so:devices.json | ||
890 | |||
891 | {{{{ | ||
892 | /* device 1 */ | ||
893 | } | ||
894 | { | ||
895 | /* device 2 */ | ||
896 | } | ||
897 | }}} | ||
898 | |||
899 | The format above is considered by the Console and CLI as a JSON stream, processing one object at a time. For more details in how to use the file | ||
900 | |||
901 | |||
902 | === **CSV File Reference** === | ||
903 | |||
904 | |||
905 | The Things Stack has support for importing end devices from CSV (comma-separated values) files. This is useful when batches of end devices are managed in Microsoft Excel or any other spreadsheet or database that can export to CSV file. | ||
906 | |||
907 | The CSV import in The Things Stack uses the following settings: | ||
908 | |||
909 | * Semicolon () as field delimiter. This makes working with Microsoft Excel and other spreadsheets convenient; | ||
910 | |||
911 | * Header row is required | ||
912 | |||
913 | * On each row, the same number of fields as on the header line | ||
914 | |||
915 | * Use quotes to use in a field value; | ||
916 | |||
917 | * Use double quotes to escape quotes | ||
918 | |||
919 | * Unknown header columns are permitted and ignored | ||
920 | |||
921 | * Name and id cannot have capital letters and special characters | ||
922 | |||
923 | * Example column lorawan_phy_version is not needed | ||
924 | |||
925 | (% style="display:none" %) | ||
926 | |||
927 | |||
928 | |||
929 | === **Example** === | ||
930 | |||
931 | |||
932 | Minimal example: | ||
933 | |||
934 | {{{dev_eui;join_eui;frequency_plan_id;lorawan_version;lorawan_phy_version;app_key | ||
935 | 1111111111111111;1111111111111111;EU_863_870_TTN;MAC_V1_0_4;RP002_V1_0_3;11111111111111111111111111111111 | ||
936 | 2222222222222222;2222222222222222;EU_863_870_TTN;MAC_V1_0_4;RP002_V1_0_3;22222222222222222222222222222222 | ||
937 | 3333333333333333;3333333333333333;EU_863_870_TTN;MAC_V1_0_4;RP002_V1_0_3;33333333333333333333333333333333 | ||
938 | }}} | ||
939 | |||
940 | All columns for a LoRaWAN 1.0.4 device: | ||
941 | |||
942 | {{{id;dev_eui;join_eui;name;frequency_plan_id;lorawan_version;lorawan_phy_version;brand_id;model_id;hardware_version;firmware_version;band_id;app_key | ||
943 | test-one;1111111111111111;1111111111111111;Device 1;EU_863_870_TTN;MAC_V1_0_4;RP002_V1_0_3;the-things-industries;generic-node-sensor-edition;1.0.4;1.0;EU_863_870;11111111111111111111111111111111 | ||
944 | test-two;2222222222222222;2222222222222222;Device 2;EU_863_870_TTN;MAC_V1_0_4;RP002_V1_0_3;the-things-industries;generic-node-sensor-edition;1.0.4;1.0;EU_863_870;22222222222222222222222222222222 | ||
945 | test-three;3333333333333333;3333333333333333;Device 3;EU_863_870_TTN;MAC_V1_0_4;RP002_V1_0_3;the-things-industries;generic-node-sensor-edition;1.0.4;1.0;EU_863_870;33333333333333333333333333333333 | ||
946 | }}} | ||
947 | |||
948 | |||
949 | (% style="display:none" %) (%%) | ||
950 | |||
951 | === **Excel Template** === | ||
952 | |||
953 | |||
954 | [[Download the Excel template>>url:https://www.thethingsindustries.com/docs/getting-started/migrating/tts-end-devices-csv-template.xlsx]]. You can remove all columns that are not required (see above). | ||
955 | |||
956 | |||
957 | = 9. Trouble Shooting. = | ||
958 | |||
959 | == 9.1 How to solve the problem of MIC Mismatch? == | ||
960 | |||
961 | |||
962 | Please refer to the link below: | ||
963 | |||
964 | [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/LoRaWAN%20Communication%20Debug/#H9.WhydoIseea22MICMismatch22errormessagefromtheserver3F>>url:http://wiki.dragino.com/xwiki/bin/view/Main/LoRaWAN%20Communication%20Debug/#H9.WhydoIseea22MICMismatch22errormessagefromtheserver3F]] | ||
965 | |||
966 | |||
967 | == 9.2 How to get the log information of the node?(% style="display:none" %) (%%) == | ||
968 | |||
969 | |||
970 | ~1. Get information about a single node | ||
971 | |||
972 | Download this file in the node's live data interface | ||
973 | |||
974 | [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20of%20Dragino%20LoRaWAN%20Packet%20Analyze%20Tool/WebHome/image-20230928163751-2.png?width=1278&height=506&rev=1.1||alt="image-20230928163751-2.png" height="506" width="1278"]] | ||
975 | |||
976 | |||
977 | 2. Get information about the entire Application | ||
978 | |||
979 | Click the "See all activity" button on the main interface of the application | ||
980 | |||
981 | [[image:image-20231019113039-1.png||height="678" width="1312"]] | ||
982 | |||
983 | |||
984 | Download this file in application live data interface | ||
985 | |||
986 | [[image:image-20231019113212-4.png||height="567" width="1277"]] | ||
987 | |||
988 | |||
989 | After the data collection is completed, you can send this file directly to our technical support personnel for analysis. | ||
990 | |||
991 | |||
992 | You can also use the packet analysis tool developed by our company to check it yourself. Please refer to the following [[link>>http://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20of%20Dragino%20LoRaWAN%20Packet%20Analyze%20Tool/#H3.ThethingsNetwork]] to use this tool. | ||
993 | |||
994 | [[image:image-20240117170517-1.png]] | ||
995 | |||
996 |