Wiki source code of Notes for ChirpStack

Version 176.1 by Kilight Cao on 2023/09/26 09:32

Show last authors
1 **~ Table of Contents:**
2
3 {{toc/}}
4
5
6
7
8 = 1.  Introduction =
9
10
11 (% style="color:black" %)The ChirpStack open-source LoRaWAN Network Server stack provides open-source components for LoRaWAN networks And the Chirpstack supports the users in building a private LoRaWAN Server. For more info please refer to this [[link>>url:https://www.chirpstack.io/]]
12
13 (((
14 (% style="color:black" %)The dragino gateway can connect the ChirpStack server via Semtech UDP or Semtech Basic Station.
15
16
17 )))
18
19 (% style="color:blue" %)**Prerequisite:**
20
21 **1) Have a Chirstack Server.**
22
23 [[image:image-20230821114047-4.png||height="524" width="990"]]
24
25 ChirpStack home page
26
27
28
29 **2) Gateway model support**
30
31 (% class="box" %)
32 (((
33 (((
34 Semtech UDP : **All Model**
35 Basic Station : [[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]]
36 (% style="color:red" %)**Note** (%%): the firmware needs >[[lgw~~-~~-build-v5.4.1640315898>>url:https://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Release/]]  if use the Bais station
37 )))
38 )))
39
40 = 2.  Node usage introduction =
41
42 == 2.1 Register Node ==
43
44 Step 1: Add application
45
46 [[image:image-20230702094608-1.png||height="537" width="1015"]]
47
48 Step 2:Fill name
49
50 [[image:image-20230702094852-2.png]]
51
52 Step4 :Add device profile
53
54 [[image:image-20230702095114-4.png||height="448" width="1061"]]
55
56
57 Step5 :Configure your device profile
58
59 [[image:image-20230702095557-5.png||height="648" width="1121"]]
60
61 Does node support class-c
62
63 [[image:image-20230702095641-6.png||height="349" width="1114"]]
64
65 Add node's decoder
66
67 [[image:image-20230702095827-7.png||height="490" width="1138"]]
68
69
70 Step6 :add device
71
72 [[image:image-20230702094944-3.png||height="439" width="1153"]]
73
74
75
76 [[image:image-20230702100312-8.png||height="585" width="1176"]]
77
78 [[image:image-20230702100543-10.png||height="313" width="1099"]]
79
80 [[image:image-20230702100930-11.png||height="613" width="1098"]]
81
82
83 = 3.  Semtech UDP for ChirpStack v3 =
84
85 == 3.1  Step 1. Add the Network-servers ==
86
87
88 The network-Servers address varies depending on the ChirpStack server setup environment
89
90 (% class="box" %)
91 (((
92 Windows       ~-~->  Network-server server *  :  localhost:8000
93 Linux  ~-~->  Network-server server *  :  chirpstack-network-server:8000
94 )))
95
96
97 (% style="color:red" %)**If the user cannot add network-Servers, re-check the ChirpStack code or the server building process.**
98
99
100 [[image:image-20220531171609-1.png||height="638" width="1268"]](% style="display:none" %)
101
102 Add the Network-servers
103
104
105 == 3.2  Step 2. Create Gateway-profiles ==
106
107
108 [[image:image-20220531171651-2.png||height="632" width="1264"]](% style="display:none" %)
109
110 Create Gateway-profiles
111
112
113 == 3.3  Step 3. Create Service-profiles ==
114
115
116 [[image:image-20220531171809-3.png||height="761" width="1265"]]
117
118 Create Service-profiles
119
120
121 In Step 3. Create Service-profiles, the above parameters can be set. If necessary, you can set them by yourself. This is only an example.
122
123 (% style="color:red" %)**Note : Before add the gateway, the user needs to complete the preceding three steps.**
124
125 If the user has completed the preceding steps, proceed to the next step.(% style="display:none" %)
126
127
128 == 3.4  Step 4. Add the gateway ==
129
130
131 The example gateway id is: a840411e96744150
132
133 (((
134 (% style="color:red" %)**Note : The Gateway EUI and server addresses must match the ChirpStack configuration.**
135
136
137 )))
138
139 [[image:image-20220531171923-4.png||height="745" width="1253"]](% style="display:none" %)
140
141 Add the gateway
142
143
144
145 [[image:image-20220531172031-5.png]]
146
147 Configure the gateway
148
149
150 == 3.5  Step 5. Checking gateway Status ==
151
152
153 [[image:image-20220531172158-6.png||height="704" width="1167"]](% style="display:none" %)
154
155
156
157 gateway Status
158
159 [[image:image-20220531172304-7.png||height="628" width="1165"]]
160
161 gateway Status
162
163 = 4.  Semtech UDP for ChirpStack v4 =
164
165
166 == 4.1  Step 1. Add the gateway ==
167
168 [[image:image-20230926092907-1.png||height="598" width="1007"]]
169
170
171 [[image:image-20230926093057-2.png||height="541" width="1002"]]
172
173
174 == 4.2  Step 2. Checking gateway Status ==
175
176 [[image:image-20230926093233-3.png||height="581" width="1018"]]
177
178 = 5.  Gateway Registration for Basics Station =
179
180 == 5.1  Introduction ==
181
182
183 The [[Semtech Basic Station>>url:https://doc.sm.tc/station/]] backend implements the [[LNS protocol>>url:https://doc.sm.tc/station/tcproto.html]]. It exposes a WebSocket handler to which Basic Station powered gateways can connect.
184
185 ChirpStack Open-Source LoRaWAN® Network Server needs to set up a configuration that can use Semtech BasicStation.
186
187
188 (% style="color:blue" %)**Below list the support products and Requirements:**
189
190 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]]
191 1. Firmware version since :[[lgw~~-~~-build-v5.4.1651822913>>url:https://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Test_Firmware/lgw--build-v5.4.1651822913-20220506-1543/]]
192
193 (% style="color:blue" %)**How to set up chirpStack Basic Station**
194
195 Users can check out the ChirpStack Basic Station [[link>>https://www.chirpstack.io/gateway-bridge/backends/basic-station/]] and [[forum>>https://forum.chirpstack.io/search?q=basic%20station]]
196
197
198 (% style="color:blue" %)**What do you need to prepare**
199
200 A gateway that can access the internet normally
201
202
203 == 5.2  Add Gateway ==
204
205
206 [[image:image-20220524164205-10.png]]
207
208
209 == 5.3  Access the gateway GUI ==
210
211
212 Access the gateway GUI interface of LoRaWAN~-~->LoRaWAN ~-~- Basic Station
213
214 [[image:image-20220524164319-11.png]]
215
216
217 User need to Choose the ChirpStack/Senet ~-~- Basic Station , input Server URI and Upload the TLS Certificate
218
219 (% class="box" %)
220 (((
221 Service Provider  ~-~->  Choose the ChirpStack/Senet ~-~- Basic Station
222
223 LNS URI  ~-~->  Enter the LNS URI address, For example : wss:~/~/xxxx.chirpstack.com:443 or ws:~/~/xxxx.chirpstack.com:3001
224
225 LNS TLS trust  ~-~->  Upload the TLS Certificate
226 )))
227
228 (% class="wikigeneratedid" %)
229 [[image:image-20220524164341-12.png]]
230
231
232 == 5.4  Start Station ==
233
234
235 When the user has finished the configuration, Please click **Sace&Apply** to start station to connect ChirpStack.
236
237
238 == 5.5  Successful Connection ==
239
240
241 If user completes the above steps, which will see live date in the ChirpStack.
242
243 [[image:image-20220524164448-13.png]]
244
245
246 == 5.6  Trouble Shooting ==
247
248
249 User can check the station log in the logread/system log page.
250
251 [[image:image-20220531172837-8.png]]
252
253
254 and recode the station log in the system/Recode log page.
255
256 [[image:image-20220531172857-9.png]]
257
258
259 = 6.  How the gateway connects to Chirpstack v3 via gateway-bridge =
260
261
262 (% style="color:blue" %)**Below list the support products and Requirements:**
263
264 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]],[[LPS8N>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/200-lps8n.html]],[[LG308N>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/229-lg308n.html]],[[DLOS8N>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/225-dlos8n.html]]
265 1. Firmware version since: [[Chirpstack-Bridge-V3.14.6>>https://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Release/Chirpstack-gateway-bridge/Chirpstack-Bridge-V3.14.6-Bridge--build-v5.4.1679487778-20230322-2024/]]
266
267 (% style="color:blue" %)**How to set up chirpStack Gateway-bridge**
268
269 Users can check out the ChirpStack gateway-bridge v3 [[link>>https://www.chirpstack.io/gateway-bridge/gateway/dragino/]]
270
271
272 (% style="color:blue" %)**What do you need to prepare**
273
274 A gateway that can access the internet normally
275
276
277 The following example does not have configuration certificates:
278
279
280 == 6.1  Configure Packet Forwarder ==
281
282
283 In the Dragino gateway web interface, you need to configure the Packet Forwarder so that it forwards its data to the port. localhost:1700 or 127.0.0.1:1700
284
285 * In the (% style="color:blue" %)**LoRaWAN** (%%)menu, click on (% style="color:blue" %)**LoRaWAN ~-~- Semtech UDP**
286
287 * Make sure the following settings are set:
288 ** **Service Provider:** //~-~-Custom/Private LoRaWAN~-~-//
289 ** **LoRaWAN Server Address:** //localhost or 127.0.0.1//
290 ** **Server port for upstream:** //1700//
291 ** **Server port for downstream:** //1700//
292
293 Click (% style="color:blue" %)**Save & Apply**.
294
295 [[image:image-20221222114220-2.png||height="748" width="931"]]
296
297
298 == 6.2  Configuring gateway frequency ==
299
300
301 (% style="color:red" %)**Note: Gateway frequencies must match**
302
303 [[image:image-20221222134830-3.png||height="408" width="923"]]
304
305
306 == 6.3  Generate and modify the gateway-bridge configuration file ==
307
308
309 **1)Generate the gateway-bridge configuration file**
310
311 By default, the configuration file is not up-to-date,so the user needs to rebuild the gateway-bridge configuration file.
312
313 Users need to access the command line of the gateway through SSH,Then type the following command:
314
315 (% class="box infomessage" %)
316 (((
317 **/opt/chirpstack-gateway-bridge/chirpstack-gateway-bridge configfile > /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml **
318 )))
319
320
321 **2)modify the gateway-bridge configuration file**
322
323 The user needs to modify the server address in line 252 in the configuration file
324
325 (% class="box infomessage" %)
326 (((
327 **vim /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml **
328 )))
329
330 [[image:image-20230415165254-1.png||height="583" width="956"]]
331
332
333 == 6.4  Debug ==
334
335
336 After the above configuration is completed, the user can enter the command to debug the gateway-bridge connection
337
338 (% class="box infomessage" %)
339 (((
340 **/opt/chirpstack-gateway-bridge/chirpstack-gateway-bridge ~-~-config /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml**
341 )))
342
343 If the gateway-bridge connection is normal, the debug log displays **"connected to mqtt broker"**.
344
345 [[image:image-20230415170404-2.png]]
346
347
348 If the debug log shows "**connection error**", check that the server port or server is correct
349
350 [[image:image-20230415170854-3.png]]
351
352
353 More information can be found on the **[[ChirpStack website>>https://www.chirpstack.io/docs/]]**or **[[Forum>>url:https://forum.chirpstack.io/]]**
354
355
356 == 6.5  (Re)start and stop gateway-bridge ==
357
358
359 Use the following commands to (re)start and stop the ChirpStack Gateway Bridge Service:
360
361 (% class="box infomessage" %)
362 (((
363 **# start**
364
365 /etc/init.d/chirpstack-gateway-bridge start
366
367 **# stop**
368
369 /etc/init.d/chirpstack-gateway-bridge stop
370
371 **# restart**
372
373 /etc/init.d/chirpstack-gateway-bridge restart
374 )))
375
376
377 = 7.  How the gateway connects to Chirpstack v4 via gateway-bridge =
378
379
380 (% style="color:blue" %)**Below list the support products and Requirements:**
381
382 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]],[[LPS8N>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/200-lps8n.html]],[[LG308N>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/229-lg308n.html]],[[DLOS8N>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/225-dlos8n.html]]
383 1. Firmware version since: [[Chirpstack-Bridge-V4>>https://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Release/Chirpstack-gateway-bridge/Chirpstack-Bridge-V4--build-v5.4.1670655072-20221210-1452/]]
384
385 (% style="color:blue" %)**How to set up chirpStack Gateway-bridge**
386
387 Users can check out the ChirpStack gateway-bridge v4 [[link>>https://www.chirpstack.io/docs/chirpstack-gateway-bridge/install/dragino.html]]
388
389
390 (% style="color:blue" %)**What do you need to prepare**
391
392 A gateway that can access the internet normally
393
394
395 == 7.1  Configure Packet Forwarder ==
396
397
398 In the Dragino gateway web interface, you need to configure the Packet Forwarder so that it forwards its data to the port. localhost:1700 or 127.0.0.1:1700
399
400 * In the (% style="color:blue" %)**LoRaWAN**(%%) menu, click on (% style="color:blue" %)**LoRaWAN ~-~- Semtech UDP**
401
402 * Make sure the following settings are set:
403 ** **Service Provider:** //~-~-Custom/Private LoRaWAN~-~-//
404 ** **LoRaWAN Server Address:** //localhost or 127.0.0.1//
405 ** **Server port for upstream:** //1700//
406 ** **Server port for downstream:** //1700//
407
408 Click (% style="color:blue" %)**Save & Apply**.
409
410 [[image:image-20221222114220-2.png||height="748" width="931"]]
411
412
413 == 7.2  Configuring gateway frequency ==
414
415
416 (% style="color:red" %)**Note: Gateway frequencies must match**
417
418 [[image:image-20221222134830-3.png||height="408" width="923"]]
419
420
421 == 7.3  Modify the gateway-bridge configuration file ==
422
423
424 Run the gateway command line command to modify the gateway-bridge configuration file:
425
426 (% class="box infomessage" %)
427 (((
428 **root@dragino-1d27d4:~~#  vim /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml **
429 )))
430
431 [[image:image-20221222113302-1.png]]
432
433
434 [[image:image-20221222140203-4.png||height="875" width="806"]]
435
436 [[image:image-20221230094246-1.png||height="768" width="783"]]
437
438 (% class="wikigeneratedid" id="H" %)
439 After the modification, run the following command: **/etc/init.d/chirpstack-gateway-bridge restart**
440
441
442 == 7.4  (Re)start and stop gateway-bridge ==
443
444
445 Use the following commands to (re)start and stop the ChirpStack Gateway Bridge Service:
446
447 (% class="box infomessage" %)
448 (((
449 **# start**
450
451 /etc/init.d/chirpstack-gateway-bridge start
452
453 **# stop**
454
455 /etc/init.d/chirpstack-gateway-bridge stop
456
457 **# restart**
458
459 /etc/init.d/chirpstack-gateway-bridge restart
460 )))
461
462
463 == 7.5  Successful Connection ==
464
465
466 [[image:image-20221222141754-5.png||height="488" width="1150"]]
467
468
469 [[image:image-20221222141830-6.png||height="582" width="1153"]]
470
471
472 = 8.  Downlink =
473
474 == 8.1  Convert HEX to Base64 ==
475
476
477 (% style="color:red" %)**Note: Chirpstack uses base64 to downlink, the end node user manual provides HEX format of the downlink commands. So user needs to convert the HEX to Base64.**
478
479 **[[Online HEX to Base64 Converter>>https://base64.guru/converter/encode/hex]]:**
480
481 [[image:image-20221010193350-1.png]]
482
483
484
485 **[[Online Base64 to Hex converter>>https://base64.guru/converter/decode/hex]]**
486
487 [[image:image-20221010193621-2.png]]
488
489
490 == 8.2  Chirpstack Downlink Note ==
491
492
493 [[image:image-20220601102543-2.png]]
494
495 **Convert the data to Base64**
496
497 (% style="display:none" %) (%%)
498
499
500 [[image:image-20220531173236-10.png||height="597" width="1215"]]
501
502 **Check ChripStack downlink DataRate**
503
504
505
506 [[image:image-20220525101326-11.png]]
507
508 **Make sure the RX2DR is the same in the end node**
509
510
511 == 8.3  Loraserver Downlink Note ==
512
513
514 User can use MQTT to send downlink payload to ChirpStack to perform downstream to LoRaWAN End
515
516 (((
517 **Below is examples:**
518 )))
519
520 (% class="box" %)
521 (((
522 Connect to your server via MQTT:
523 MQTT Client ID: Any   
524 Protocol:mqtt/tcp   Server IP:loraserver_ip:1883
525 User name: User name Password: password
526 )))
527
528 [[image:image-20220531173419-11.png]]
529
530 (((
531 **MQTT Connect to ChirpStack**
532
533
534
535 )))
536
537 (((
538 **After connect**
539 )))
540
541 (% class="box" %)
542 (((
543 Subscribe : Format:application/ID/device/ Device EUI/rx
544 Example: application/7/device/00aedb3da649cb23/rx
545 )))
546
547 (% class="box" %)
548 (((
549 Publish:
550 Format: Top: application/ID/device/ Device EUI/tx
551 Payload: {"confirmed":true or false,"fPort":XX,"data":"xxxx"}
552 Example: Top: application/7/device/00aedb3da649cb23/tx
553 Payload: {"confirmed":true,"fPort":2,"data":"AwEB"}
554 )))
555
556 [[image:image-20220531173519-12.png]]
557
558 **MQTT Connect to ChirpStack**
559
560
561 **If we want to send downstream hex 030101 to end node, the BASE64 payload is AwEB**
562
563 [[image:image-20220531173658-14.png]]
564
565
566 (((
567 Downlink payload encode javescript code: 可以在网站上运行以下Javsscript代码:
568 )))
569
570 (% class="box" %)
571 (((
572 function sha1_to_base64(sha1)
573 {
574 var digits="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
575 var base64_rep = "";
576 var cnt = 0;
577 var bit_arr = 0;
578 var bit_num = 0;
579 \\ for(var n = 0; n < sha1.length; ++n)
580 {
581 if(sha1[n] >= 'A' && sha1[n] <= 'Z')
582 {
583 ascv = sha1.charCodeAt( n ) - 55;
584 }
585 else if(sha1[n] >= 'a' && sha1[n] <= 'z')
586 {
587 ascv = sha1.charCodeAt( n ) - 87;
588 }
589 else
590 {
591 ascv = sha1.charCodeAt( n ) - 48;
592 }
593 \\ bit_arr = (bit_arr << 4) | ascv;
594 bit_num += 4;
595 if(bit_num >= 6)
596 {
597 bit_num -= 6;        
598 base64_rep += digits[bit_arr >>> bit_num];
599 bit_arr &= ~~(-1 << bit_num);
600 }
601 }
602 \\ if(bit_num > 0)
603 {
604 bit_arr <<= 6 - bit_num;
605 base64_rep += digits[bit_arr];
606 }
607 \\ var padding = base64_rep.length % 4;   
608 \\ if(padding > 0)
609 {
610 for(var n = 0; n < 4 - padding; ++n)
611 {
612 base64_rep += "=";
613 }
614 }
615 return base64_rep;
616 }
617 \\console.log(sha1_to_base64("data"));
618 \\data is downlink payload required by end node.
619 e.g console.log(sha1_to_base64("030101"));
620 ​result: AwEB     
621 AwEB is the 0x030101's base 64 Encode.
622 \\​e.g console.log(sha1_to_base64("030000"));
623 ​result: AwAA     
624 AwAA is 0x030000's base 64 Encode.
625 )))
626
627
628 == 8.4  Add the decode function in Chirpstack for the payload ==
629
630
631 User enters the payload code according to the steps.
632
633 Add the node device decoder you are using. The decoder for each node device is different. The decoder is found in this link: **[[decoder for dragino end node>>https://github.com/dragino/dragino-end-node-decoder]]**
634
635 [[image:image-20220531173754-15.png||height="474" width="1334"]]
636
637
638 [[image:image-20220531173856-16.png]]
639
640
641 [[image:image-20220531174120-20.png]]
642
643 [[image:image-20220531174046-19.png]]
644
645
646 = 9.  Multiply Uplink in ChirpStack =
647
648
649 (((
650 nbtrans field is the value to determine the re-transmission time for unconfirmed uplink data.
651 )))
652
653 (((
654 ChirpStack will auto adjust nbtrans according to uplink rssi. [[link to source>>url:https://github.com/brocaar/chirpstack-network-server/blob/master/internal/adr/adr.go]]
655
656
657 )))
658
659 [[image:image-20220526091912-7.png||height="241" width="1336"]]
660
661
662 (((
663 nbtrans is a field of ADR message, in unconfirm mode, it tells end node how many time it needs to transmit for every frame.
664
665
666 )))
667
668 [[image:image-20220525104359-21.png]]
669
670 (((
671 Above behaviour will cause the platform shows below two cases of error:
672
673
674 )))
675
676 (((
677 Error of duplicate Frame Counter
678 )))
679
680 [[image:image-20220525104437-22.png]]
681
682
683
684 **Duplicate transmission in short time**
685
686 [[image:image-20220601102430-1.png||height="598" width="1319"]]
687
688
689 == 9.1  Solution ==
690
691
692 This example uses the Windows version as a template, other versions can refer to this. Similiar reference: [[https:~~/~~/confluence.alitecs.de/plugins/servlet/mobile?contentId=79790102#content/view/79790102>>url:https://confluence.alitecs.de/plugins/servlet/mobile?contentId=79790102#content/view/79790102]]
693
694
695 (((
696 (% style="color:blue" %)**1.  Install the GO compilation environment: Download the corresponding version of the Go compiler at [[https:~~/~~/go.dev/dl/>>url:https://go.dev/dl/]] and install it.**
697
698
699 )))
700
701 [[image:image-20220525104532-24.png]]
702
703
704 **installation path:**
705
706 [[image:image-20220525104554-25.png]]
707
708
709
710 (((
711 (% style="color:blue" %)**2.  Environment variable settings:**
712 )))
713
714 (((
715 1) Open Computer -> Properties -> Advanced System Settings -> Environment Variables and add a "new" system variable:
716 )))
717
718 (((
719 2) Set the variable name GOROOT and the variable value C:\Go\ (installation directory)
720 )))
721
722 [[image:image-20220524165433-33.png]]
723
724
725 3) Modify the system variable Path and add C:\Go\bin\:
726
727 [[image:image-20220524165452-34.png]]
728
729
730 User variable setting file generation directory: D:\go:
731
732 [[image:image-20220524165517-35.png]]
733
734
735
736 (% style="color:blue" %)**3.  Modify the ADR configuration file according to your own needs, adr.setting.go is an example of the ADR configuration file.**
737
738 The name of the plugin: Example ADR plugin:
739
740 [[image:image-20220524165540-36.png]]
741
742 Set Nbtrans: Nbtrans=1 (Nbtrans is the number of retransmissions, if it is 1, no retransmission, it is recommended to be 1). To enable it, you need to uncomment.
743
744 [[image:image-20220524165557-37.png]]
745
746
747
748 (% style="color:blue" %)**4.  Compile the ADR configuration file and generate the exe file.**
749
750 1) Create a folder named adr-setting
751
752 2) Open the adr-setting folder
753
754 3) Put adr.setting.go in this folder.
755
756 4) Open the computer cmd and run the following commands in sequencecd adr-setting
757
758 go mod init adr-setting
759
760 go get github.com/brocaar/chirpstack-network-server/v3/adr
761
762 go get github.com/hashicorp/go-plugin
763
764 go get adr-setting
765
766 go build
767
768 5) Finally generate this file:
769
770 [[image:image-20220524165623-38.png]]
771
772
773
774 (% style="color:blue" %)**5.  Add the plugin and run the plugin.**
775
776 (((
777 The exe file generated in the previous step is placed in the same root directory as chirpstack-network-server.toml, and the ADR plugin is added to the toml file. The location of the addition is as follows:
778 )))
779
780 [[image:image-20220524165641-39.png]]
781
782 (((
783 (((
784 For example: adr_plugins=[“adr-setting”]
785 )))
786 )))
787
788 * (((
789 (((
790 Adding a single plugin format is adr_plugins=["filename"]
791 )))
792 )))
793
794 * (((
795 (((
796 Adding multiple plugins The format is adr_plugins=["file name 1", "file name 2",...]
797 )))
798 )))
799
800 (((
801 (((
802 Finally, re-run chirpstack-network-server.exe, and then select the plugin you just compiled in Device-profiles,
803 )))
804 )))
805
806 [[image:image-20220525104647-26.png]]
807
808 Finish.
809
810
811 = 10.  How to store/get all data traffic for a specific sensor, including raw payload, and uplink/ downlink history. =
812
813
814 All data is published to the MQTT topics. if you want to store/get the data, you would have to create an MQTT handler and store the data yourself.
815
816 This example will be shown how to store/get all the data in two ways:
817
818 (% style="color:blue" %)**//1). Chirpstack ~-~-> Node-red//**
819
820
821 [[image:image-20221012184501-1.png]]
822
823
824 Use MQTT in Nore-red to subscribe to topics published by the chirpstack-application and then continuously write to a file
825
826 [[image:image-20221012174220-2.png]]
827
828
829 [[image:image-20221012184655-3.png||height="395" width="1049"]]
830
831
832 **Each message is continuously logged to a specified file**
833
834 [[image:image-20221012174352-3.png]]
835
836
837 (% style="color:blue" %)**//2). MQTT  Sub//**
838
839 If you don't want to store the information via node-red, you can get the output via the subscribe command.
840
841
842 **If connecting from the same machine, you can use the following command to receive data:**
843
844 (% class="box infomessage" %)
845 (((
846 **mosquitto_sub -h localhost -t "application/#" -v**
847 )))
848
849
850 (% style="color:blue" %)**Different host**
851
852 (% class="box infomessage" %)
853 (((
854 **mosquitto_sub -h IPADDRESS -p 8883 ~-~-insecure ~-~-cafile ca.pem ~-~-cert cert.pem ~-~-key key.pem -t "application/#" -v**
855 )))
856
857 [[image:image-20221012173639-1.png]]
858
859 = 11.  Example: Use Local Server ChirpStack and Node-Red in LPS8v2 =
860
861
862 LPS8v2 includes a local ChirpStack 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:
863
864 * LHT65N register on LPS8v2 Built-In ChirpStack server already
865 * The user is able to see the data on the built-in ChirpStack server device page.
866
867 Below are the steps to plot the sensor data on LPS8v2 Node-Red.
868
869
870 == 11.1 Link Node-Red to Local ChirpStack ==
871
872
873 Users can download the Node-Red decoder from this link and import it into the Node-Red platform:  **[[attach:LHT65N-ChirpStack-node-red.json||target="_blank"]]**
874
875 For more information on importing Input Flow, check out this link: **[[Import Input Flow for Dragino Sensors>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Node-RED/#H3.A0ImportInputFlowforDraginoSensors]]**
876
877 After importing the Input Flow is complete, the user needs to edit the MQTT in the node
878
879
880 (% style="color:blue" %)**1. Change the Topic**
881
882 Topic modifies it to the following format:
883
884 **application/(% style="color:red" %)Application ID(%%)/device/(% style="color:red" %)End device ID(%%)/event/up**
885
886 Reference link: [[**Node-RED integration** >>https://www.chirpstack.io/docs/guides/node-red-integration.html]]
887
888 [[image:image-20230527143923-1.png||height="588" width="1132"]]
889
890
891
892 (% style="color:blue" %)**2. Enter the MQTT configuration information**
893
894 [[image:image-20230527144206-2.png||height="590" width="1136"]]
895
896
897 (% style="color:blue" %)3. **Finally, click "Update" and Deploy**
898
899 "Connected" indicates that the Link Node-red to Local Chirpstack is normal.
900
901 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/Notes%20for%20TTN/WebHome/image-20220914140918-5.png?width=1121&height=602&rev=1.1||alt="image-20220914140918-5.png"]]
902
903
904 == 11.2 Check result. ==
905
906
907 Users can check logs by adding debug.
908
909 Browser access: **Node-Red-Server-Address:1880/ui**
910
911 [[image:image-20230529150923-1.png||height="424" width="1118"]]
912
913
914 = 12.  Trouble Shooting =
915
916 == 12.1  MIC Mismatch or MIC Failed ==
917
918
919 (((
920 When the device is registered or the device is working normally, the problem of MIC mismatch and MIC failed occurs.
921 )))
922
923 (((
924 Under normal circumstances, users need to change the APPKEY to solve this problem.
925
926
927 == 12.2  The node is very close to the gateway, but the signal is poor ==
928
929 If you are using US915 or AU915, you found the frequency points of different subband ranges in your uplink
930
931 Like that:Both 905.1Mhz and 902.3Mhz appear on uplink
932 But they belong to Subband1 and Subband2 of US915 respectively
933
934 Cause: The server and the gateway use different frequency bands (the server uses Subband1, and the gateway uses Subband2)
935
936 In server side, it shows the frequency is 905.1Mhz, which is sub-band2. But the RSSI is very low, Because this is not a signal in 905.1Mhz, it is on 902.3Mhz, the signal is too strong and appear a noise in 905.1Mhz.
937
938 How to check the frequency band used by the server:
939
940 You can view the information sent by the server: ch_mask in Unconfirmdedatadown
941
942 [[image:image-20230821113255-1.png]]
943
944 According to lorawan's protocol, your first ch_mask is 7 for ChMaskCntl = 7 then 125 kHz channels are disabled. Simultaneously the channels 64 to 71 are set according to the ChMask bit mask.
945
946 [[image:image-20230821113539-2.png]]
947
948 In the second message, the channel 0~~7 is true, which means that your server is using subband2.
949
950 [[image:image-20230821113618-3.png]]
951
952 Note:lorawan's protocol link——[[LoRaWAN® Regional Parameters v1.0.3revA (lora-alliance.org)>>url:https://resources.lora-alliance.org/document/lorawan-regional-parameters-v1-0-3reva]]
953 )))
Copyright ©2010-2024 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0