<
From version < 108.8 >
edited by Xiaoling
on 2022/07/23 14:06
To version < 208.1 >
edited by Mengting Qiu
on 2024/01/17 17:50
>
Change comment: Uploaded new attachment "image-20240117175058-4.png", version {1}

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.Xiaoling
1 +XWiki.ting
Content
... ... @@ -20,7 +20,7 @@
20 20  
21 21  **1) Have a Chirstack Server.**
22 22  
23 -[[image:image-20220525100058-1.png]]
23 +[[image:image-20230821114047-4.png||height="524" width="990"]]
24 24  
25 25  ChirpStack home page
26 26  
... ... @@ -38,12 +38,58 @@
38 38  )))
39 39  
40 40  
41 += 2.  Node usage introduction =
41 41  
42 -= 2.  Semtech UDP =
43 +== 2.1 Register Node ==
43 43  
44 -== 2.1  Step 1. Add the Network-servers ==
45 45  
46 +**Step 1: Add application**
46 46  
48 +[[image:image-20230702094608-1.png||height="537" width="1015"]]
49 +
50 +
51 +**Step 2:Fill name**
52 +
53 +[[image:image-20230702094852-2.png]]
54 +
55 +
56 +**Step3 :Add device profile**
57 +
58 +[[image:image-20230702095114-4.png||height="448" width="1061"]]
59 +
60 +
61 +**Step4 :Configure your device profile**
62 +
63 +[[image:image-20230702095557-5.png||height="648" width="1121"]]
64 +
65 +Does node support class-c
66 +
67 +[[image:image-20230702095641-6.png||height="349" width="1114"]]
68 +
69 +Add node's decoder
70 +
71 +[[image:image-20230702095827-7.png||height="490" width="1138"]]
72 +
73 +
74 +**Step5 :add device**
75 +
76 +[[image:image-20230702094944-3.png||height="439" width="1153"]]
77 +
78 +
79 +[[image:image-20230702100312-8.png||height="550" width="1106"]]
80 +
81 +
82 +[[image:image-20230702100543-10.png||height="313" width="1099"]]
83 +
84 +
85 +[[image:image-20230702100930-11.png||height="613" width="1098"]]
86 +
87 +
88 += 3.  Semtech UDP for ChirpStack v3 =
89 +
90 +== 3.1  Step 1. Add the Network-servers ==
91 +
92 +
47 47  The network-Servers address varies depending on the ChirpStack server setup environment
48 48  
49 49  (% class="box" %)
... ... @@ -55,27 +55,24 @@
55 55  
56 56  (% style="color:red" %)**If the user cannot add network-Servers, re-check the ChirpStack code or the server building process.**
57 57  
104 +[[image:image-20220531171609-1.png||height="638" width="1268"]](% style="display:none" %)
58 58  
59 -[[image:image-20220531171609-1.png]]
60 -
61 61  Add the Network-servers
62 62  
63 63  
109 +== 3.2  Step 2. Create Gateway-profiles ==
64 64  
65 -== 2.2  Step 2. Create Gateway-profiles ==
66 66  
112 +[[image:image-20220531171651-2.png||height="632" width="1264"]](% style="display:none" %)
67 67  
68 -[[image:image-20220531171651-2.png]]
69 -
70 70  Create Gateway-profiles
71 71  
72 72  
117 +== 3.3  Step 3. Create Service-profiles ==
73 73  
74 -== 2.3  Step 3. Create Service-profiles ==
75 75  
120 +[[image:image-20220531171809-3.png||height="761" width="1265"]]
76 76  
77 -[[image:image-20220531171809-3.png]]
78 -
79 79  Create Service-profiles
80 80  
81 81  
... ... @@ -86,51 +86,59 @@
86 86  If the user has completed the preceding steps, proceed to the next step.(% style="display:none" %)
87 87  
88 88  
132 +== 3.4  Step 4. Add the gateway ==
89 89  
90 -== 2.4  Step 4. Add the gateway ==
91 91  
92 -
93 93  The example gateway id is: a840411e96744150
94 94  
95 95  (((
96 96  (% style="color:red" %)**Note : The Gateway EUI and server addresses must match the ChirpStack configuration.**
97 -
98 -
99 99  )))
100 100  
101 -[[image:image-20220531171923-4.png]](% style="display:none" %)
141 +[[image:image-20220531171923-4.png||height="745" width="1253"]](% style="display:none" %)
102 102  
103 103  Add the gateway
104 104  
105 105  
106 -
107 107  [[image:image-20220531172031-5.png]]
108 108  
109 109  Configure the gateway
110 110  
111 111  
151 +== 3.5  Step 5. Checking gateway Status ==
112 112  
113 -== 2.5  Step 5. Checking gateway Status ==
114 114  
154 +[[image:image-20220531172158-6.png||height="704" width="1167"]](% style="display:none" %)
115 115  
116 -[[image:image-20220531172158-6.png]](% style="display:none" %)
117 117  
118 118  
119 -
120 120  gateway Status
121 121  
122 -[[image:image-20220531172304-7.png]]
160 +[[image:image-20220531172304-7.png||height="628" width="1165"]]
123 123  
124 124  gateway Status
125 125  
126 126  
165 += 4.  Semtech UDP for ChirpStack v4 =
127 127  
128 -= 3. Gateway Registration for Basics Station =
167 +== 4. Step 1. Add the gateway ==
129 129  
130 130  
131 -== 3.1 Introduction ==
170 +[[image:image-20230926092907-1.png||height="598" width="1007"]]
132 132  
133 133  
173 +[[image:image-20230926093057-2.png||height="541" width="1002"]]
174 +
175 +
176 +== 4.2  Step 2. Checking gateway Status ==
177 +
178 +[[image:image-20230926093233-3.png||height="581" width="1018"]]
179 +
180 += 5.  Gateway Registration for Basics Station =
181 +
182 +== 5.1  Introduction ==
183 +
184 +
134 134  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.
135 135  
136 136  ChirpStack Open-Source LoRaWAN® Network Server needs to set up a configuration that can use Semtech BasicStation.
... ... @@ -141,9 +141,6 @@
141 141  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]]
142 142  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/]]
143 143  
144 -
145 -
146 -
147 147  (% style="color:blue" %)**How to set up chirpStack Basic Station**
148 148  
149 149  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]]
... ... @@ -154,18 +154,20 @@
154 154  A gateway that can access the internet normally
155 155  
156 156  
205 +== 5.2  Add Gateway ==
157 157  
158 -== 3.2 Add Gateway ==
159 159  
160 160  [[image:image-20220524164205-10.png]]
161 161  
162 162  
163 -== 3.3 Access the gateway GUI ==
211 +== 5.3  Access the gateway GUI ==
164 164  
213 +
165 165  Access the gateway GUI interface of LoRaWAN~-~->LoRaWAN ~-~- Basic Station
166 166  
167 167  [[image:image-20220524164319-11.png]]
168 168  
218 +
169 169  User need to Choose the ChirpStack/Senet ~-~- Basic Station , input Server URI and Upload the TLS Certificate
170 170  
171 171  (% class="box" %)
... ... @@ -172,7 +172,7 @@
172 172  (((
173 173  Service Provider  ~-~->  Choose the ChirpStack/Senet ~-~- Basic Station
174 174  
175 -LNS URI  ~-~->  Enter the LNS URI address, For example : wss:~/~/xxxx.chirpstack.com:433 or ws:~/~/xxxx.chirpstack.com:3001
225 +LNS URI  ~-~->  Enter the LNS URI address, For example : wss:~/~/xxxx.chirpstack.com:443 or ws:~/~/xxxx.chirpstack.com:3001
176 176  
177 177  LNS TLS trust  ~-~->  Upload the TLS Certificate
178 178  )))
... ... @@ -181,20 +181,23 @@
181 181  [[image:image-20220524164341-12.png]]
182 182  
183 183  
184 -== 3.4 Start Station ==
234 +== 5.4  Start Station ==
185 185  
186 -When the user has finished the configuration, Please click Sace&Apply to start station to connect ChirpStack
187 187  
237 +When the user has finished the configuration, Please click **Sace&Apply** to start station to connect ChirpStack.
188 188  
189 -== 3.5 Successful Connection ==
190 190  
240 +== 5.5  Successful Connection ==
241 +
242 +
191 191  If user completes the above steps, which will see live date in the ChirpStack.
192 192  
193 193  [[image:image-20220524164448-13.png]]
194 194  
195 195  
196 -== 3.6 Trouble Shooting ==
248 +== 5.6  Trouble Shooting ==
197 197  
250 +
198 198  User can check the station log in the logread/system log page.
199 199  
200 200  [[image:image-20220531172837-8.png]]
... ... @@ -205,31 +205,259 @@
205 205  [[image:image-20220531172857-9.png]]
206 206  
207 207  
208 -= 4. Downlink =
261 += 6.  How the gateway connects to Chirpstack v3 via gateway-bridge =
209 209  
210 -== 4.1 Chirpstack Downlink Note ==
211 211  
212 -[[image:image-20220601102543-2.png]]
264 +(% style="color:blue" %)**Below list the support products and Requirements:**
213 213  
214 -Convert the data to Base64
266 +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]]
267 +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/]]
215 215  
269 +(% style="color:blue" %)**How to set up chirpStack Gateway-bridge**
216 216  
217 -[[image:image-20220531173236-10.png]]
271 +Users can check out the ChirpStack gateway-bridge v3 [[link>>https://www.chirpstack.io/gateway-bridge/gateway/dragino/]]
218 218  
219 -Check ChripStack downlink DataRate
220 220  
274 +(% style="color:blue" %)**What do you need to prepare**
221 221  
276 +A gateway that can access the internet normally
277 +
278 +
279 +The following example does not have configuration certificates:
280 +
281 +
282 +== 6.1  Configure Packet Forwarder ==
283 +
284 +
285 +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
286 +
287 +* In the (% style="color:blue" %)**LoRaWAN** (%%)menu, click on (% style="color:blue" %)**LoRaWAN ~-~- Semtech UDP**
288 +
289 +* Make sure the following settings are set:
290 +** **Service Provider:** //~-~-Custom/Private LoRaWAN~-~-//
291 +** **LoRaWAN Server Address:** //localhost or 127.0.0.1//
292 +** **Server port for upstream:** //1700//
293 +** **Server port for downstream:** //1700//
294 +
295 + Click (% style="color:blue" %)**Save & Apply**.
296 +
297 +[[image:image-20221222114220-2.png||height="748" width="931"]]
298 +
299 +
300 +== 6.2  Configuring gateway frequency ==
301 +
302 +
303 +(% style="color:red" %)**Note: Gateway frequencies must match**
304 +
305 +[[image:image-20221222134830-3.png||height="408" width="923"]]
306 +
307 +
308 +== 6.3  Generate and modify the gateway-bridge configuration file ==
309 +
310 +
311 +**1)Generate the gateway-bridge configuration file**
312 +
313 +By default, the configuration file is not up-to-date,so the user needs to rebuild the gateway-bridge configuration file.
314 +
315 +Users need to access the command line of the gateway through SSH,Then type the following command:
316 +
317 +(% class="box infomessage" %)
318 +(((
319 +**/opt/chirpstack-gateway-bridge/chirpstack-gateway-bridge configfile > /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml **
320 +)))
321 +
322 +
323 +**2)modify the gateway-bridge configuration file**
324 +
325 +The user needs to modify the server address in line 252 in the configuration file
326 +
327 +(% class="box infomessage" %)
328 +(((
329 +**vim /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml **
330 +)))
331 +
332 +[[image:image-20230415165254-1.png||height="583" width="956"]]
333 +
334 +
335 +== 6.4  Debug ==
336 +
337 +
338 +After the above configuration is completed, the user can enter the command to debug the gateway-bridge connection
339 +
340 +(% class="box infomessage" %)
341 +(((
342 +**/opt/chirpstack-gateway-bridge/chirpstack-gateway-bridge ~-~-config /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml**
343 +)))
344 +
345 +If the gateway-bridge connection is normal, the debug log displays **"connected to mqtt broker"**.
346 +
347 +[[image:image-20230415170404-2.png]]
348 +
349 +
350 +If the debug log shows "**connection error**", check that the server port or server is correct
351 +
352 +[[image:image-20230415170854-3.png]]
353 +
354 +
355 +More information can be found on the **[[ChirpStack website>>https://www.chirpstack.io/docs/]]**or **[[Forum>>url:https://forum.chirpstack.io/]]**
356 +
357 +
358 +== 6.5  (Re)start and stop gateway-bridge ==
359 +
360 +
361 +Use the following commands to (re)start and stop the ChirpStack Gateway Bridge Service:
362 +
363 +(% class="box infomessage" %)
364 +(((
365 +**# start**
366 +
367 +/etc/init.d/chirpstack-gateway-bridge start
368 +
369 +**# stop**
370 +
371 +/etc/init.d/chirpstack-gateway-bridge stop
372 +
373 +**# restart**
374 +
375 +/etc/init.d/chirpstack-gateway-bridge restart
376 +)))
377 +
378 +
379 += 7.  How the gateway connects to Chirpstack v4 via gateway-bridge =
380 +
381 +
382 +(% style="color:blue" %)**Below list the support products and Requirements:**
383 +
384 +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]]
385 +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/]]
386 +
387 +(% style="color:blue" %)**How to set up chirpStack Gateway-bridge**
388 +
389 +Users can check out the ChirpStack gateway-bridge v4 [[link>>https://www.chirpstack.io/docs/chirpstack-gateway-bridge/install/dragino.html]]
390 +
391 +
392 +(% style="color:blue" %)**What do you need to prepare**
393 +
394 +A gateway that can access the internet normally
395 +
396 +
397 +== 7.1  Configure Packet Forwarder ==
398 +
399 +
400 +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
401 +
402 +* In the (% style="color:blue" %)**LoRaWAN**(%%) menu, click on (% style="color:blue" %)**LoRaWAN ~-~- Semtech UDP**
403 +
404 +* Make sure the following settings are set:
405 +** **Service Provider:** //~-~-Custom/Private LoRaWAN~-~-//
406 +** **LoRaWAN Server Address:** //localhost or 127.0.0.1//
407 +** **Server port for upstream:** //1700//
408 +** **Server port for downstream:** //1700//
409 +
410 + Click (% style="color:blue" %)**Save & Apply**.
411 +
412 +[[image:image-20221222114220-2.png||height="748" width="931"]]
413 +
414 +
415 +== 7.2  Configuring gateway frequency ==
416 +
417 +
418 +(% style="color:red" %)**Note: Gateway frequencies must match**
419 +
420 +[[image:image-20221222134830-3.png||height="408" width="923"]]
421 +
422 +
423 +== 7.3  Modify the gateway-bridge configuration file ==
424 +
425 +
426 +Run the gateway command line command to modify the gateway-bridge configuration file:
427 +
428 +(% class="box infomessage" %)
429 +(((
430 +**root@dragino-1d27d4:~~#  vim /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml **
431 +)))
432 +
433 +[[image:image-20221222113302-1.png]]
434 +
435 +
436 +[[image:image-20221222140203-4.png||height="875" width="806"]]
437 +
438 +
439 +[[image:image-20221230094246-1.png||height="768" width="783"]]
440 +
441 +(% class="wikigeneratedid" id="H" %)
442 +After the modification, run the following command: **/etc/init.d/chirpstack-gateway-bridge restart**
443 +
444 +
445 +== 7.4  (Re)start and stop gateway-bridge ==
446 +
447 +
448 +Use the following commands to (re)start and stop the ChirpStack Gateway Bridge Service:
449 +
450 +(% class="box infomessage" %)
451 +(((
452 +**# start**
453 +
454 +/etc/init.d/chirpstack-gateway-bridge start
455 +
456 +**# stop**
457 +
458 +/etc/init.d/chirpstack-gateway-bridge stop
459 +
460 +**# restart**
461 +
462 +/etc/init.d/chirpstack-gateway-bridge restart
463 +)))
464 +
465 +
466 +== 7.5  Successful Connection ==
467 +
468 +
469 +[[image:image-20221222141754-5.png||height="488" width="1150"]]
470 +
471 +
472 +[[image:image-20221222141830-6.png||height="582" width="1153"]]
473 +
474 +
475 += 8.  Downlink =
476 +
477 +
478 +=== 8.1 Chirpstack Downlink Note ===
479 +
480 +
481 +==== Select HEX format for downlink ====
482 +
483 +
484 +(% style="color:red" %)**Note: The end node user manual provides HEX format of the downlink commands, so users can directly select HEX format downlink.**
485 +
486 +
487 +[[image:image-20231108171112-5.png||height="629" width="1117"]]
488 +
489 +
490 +[[image:image-20231108171145-6.png||height="497" width="1101"]]
491 +
492 +
493 +
494 +
495 +
496 +[[image:image-20220531173236-10.png||height="597" width="1215"]]
497 +
498 +**Check ChripStack downlink DataRate**
499 +
500 +
501 +
222 222  [[image:image-20220525101326-11.png]]
223 223  
224 -Make sure the RX2DR is the same in the end node
504 +**Make sure the RX2DR is the same in the end node**
225 225  
226 226  
227 -== 4.2 Loraserver Downlink Note ==
507 +== 8. Loraserver Downlink Note ==
228 228  
509 +
229 229  User can use MQTT to send downlink payload to ChirpStack to perform downstream to LoRaWAN End
230 230  
231 231  (((
232 -Below is examples:
513 +**Below is examples:**
233 233  )))
234 234  
235 235  (% class="box" %)
... ... @@ -243,13 +243,14 @@
243 243  [[image:image-20220531173419-11.png]]
244 244  
245 245  (((
246 -MQTT Connect to ChirpStack
527 +**MQTT Connect to ChirpStack**
247 247  
529 +
248 248  
249 249  )))
250 250  
251 251  (((
252 -After connect
534 +**After connect**
253 253  )))
254 254  
255 255  (% class="box" %)
... ... @@ -269,24 +269,14 @@
269 269  
270 270  [[image:image-20220531173519-12.png]]
271 271  
272 -MQTT Connect to ChirpStack
554 +**MQTT Connect to ChirpStack**
273 273  
274 274  
275 -(((
276 -(% style="color:red" %)Note: Chirpstack use base64 to downlink, so need to convert the downlink payload from HEX to base64 [[https:~~/~~/base64.us/>>url:https://base64.us/]]
277 -)))
278 278  
279 -[[image:image-20220531173601-13.png]]
280 -
281 -Choose to Use Hex for Encode
282 -
283 -
284 -If we want send downstream hex 030101 to end node, the BASE64 payload is AwEB
285 -
286 -[[image:image-20220531173658-14.png]]
287 -
288 288  (((
289 -Downlink payload encode javescript code: 可以在网站上运行以下Javsscript代码:
559 +Downlink payload encode javescript code.
560 +
561 +We can run the following Javsscript code on the site:
290 290  )))
291 291  
292 292  (% class="box" %)
... ... @@ -302,15 +302,15 @@
302 302   {
303 303   if(sha1[n] >= 'A' && sha1[n] <= 'Z')
304 304   {
305 - ascv = sha1.charCodeAt(n) - 55;
577 + ascv = sha1.charCodeAt( n ) - 55;
306 306   }
307 307   else if(sha1[n] >= 'a' && sha1[n] <= 'z')
308 308   {
309 - ascv = sha1.charCodeAt(n) - 87;
581 + ascv = sha1.charCodeAt( n ) - 87;
310 310   }
311 311   else
312 312   {
313 - ascv = sha1.charCodeAt(n) - 48;
585 + ascv = sha1.charCodeAt( n ) - 48;
314 314   }
315 315  \\ bit_arr = (bit_arr << 4) | ascv;
316 316   bit_num += 4;
... ... @@ -347,13 +347,16 @@
347 347  )))
348 348  
349 349  
350 -== 4.3 Add the decode function in Chirpstack for the payload ==
622 +== 8. Add the decode function in Chirpstack for the payload ==
351 351  
624 +
352 352  User enters the payload code according to the steps.
353 353  
354 -[[image:image-20220531173754-15.png]]
627 +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]]**
355 355  
629 +[[image:image-20220531173754-15.png||height="474" width="1334"]]
356 356  
631 +
357 357  [[image:image-20220531173856-16.png]]
358 358  
359 359  
... ... @@ -362,8 +362,9 @@
362 362  [[image:image-20220531174046-19.png]]
363 363  
364 364  
365 -= 5. Multiply Uplink in ChirpStack =
640 += 9.  Multiply Uplink in ChirpStack =
366 366  
642 +
367 367  (((
368 368  nbtrans field is the value to determine the re-transmission time for unconfirmed uplink data.
369 369  )))
... ... @@ -370,12 +370,17 @@
370 370  
371 371  (((
372 372  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]]
649 +
650 +
373 373  )))
374 374  
375 -[[image:image-20220526091912-7.png]]
653 +[[image:image-20220526091912-7.png||height="241" width="1336"]]
376 376  
655 +
377 377  (((
378 378  nbtrans is a field of ADR message, in unconfirm mode, it tells end node how many time it needs to transmit for every frame.
658 +
659 +
379 379  )))
380 380  
381 381  [[image:image-20220525104359-21.png]]
... ... @@ -382,6 +382,8 @@
382 382  
383 383  (((
384 384  Above behaviour will cause the platform shows below two cases of error:
666 +
667 +
385 385  )))
386 386  
387 387  (((
... ... @@ -391,29 +391,32 @@
391 391  [[image:image-20220525104437-22.png]]
392 392  
393 393  
394 -Duplicate transmission in short time
395 395  
396 -[[image:image-20220601102430-1.png]]
678 +**Duplicate transmission in short time**
397 397  
680 +[[image:image-20220601102430-1.png||height="508" width="1120"]]
398 398  
399 -== 5.1 Solution ==
400 400  
683 +== 9.1  Solution ==
684 +
685 +
401 401  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]]
402 402  
403 403  (((
404 -~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.
689 +(% 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.**
405 405  )))
406 406  
407 407  [[image:image-20220525104532-24.png]]
408 408  
409 409  
410 -installation path:
695 +**installation path:**
411 411  
412 412  [[image:image-20220525104554-25.png]]
413 413  
414 414  
700 +
415 415  (((
416 -2. Environment variable settings:.
702 +(% style="color:blue" %)**2.  Environment variable settings:**
417 417  )))
418 418  
419 419  (((
... ... @@ -421,13 +421,13 @@
421 421  )))
422 422  
423 423  (((
424 -2)Set the variable name GOROOT and the variable value C:\Go\ (installation directory)
710 +2) Set the variable name GOROOT and the variable value C:\Go\ (installation directory)
425 425  )))
426 426  
427 427  [[image:image-20220524165433-33.png]]
428 428  
429 429  
430 -3)Modify the system variable Path and add C:\Go\bin\:
716 +3) Modify the system variable Path and add C:\Go\bin\:
431 431  
432 432  [[image:image-20220524165452-34.png]]
433 433  
... ... @@ -437,8 +437,9 @@
437 437  [[image:image-20220524165517-35.png]]
438 438  
439 439  
440 -3. Modify the ADR configuration file according to your own needs, adr.setting.go is an example of the ADR configuration file.
441 441  
727 +(% 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.**
728 +
442 442  The name of the plugin: Example ADR plugin:
443 443  
444 444  [[image:image-20220524165540-36.png]]
... ... @@ -448,8 +448,9 @@
448 448  [[image:image-20220524165557-37.png]]
449 449  
450 450  
451 -4. Compile the ADR configuration file and generate the exe file.
452 452  
739 +(% style="color:blue" %)**4.  Compile the ADR configuration file and generate the exe file.**
740 +
453 453  1) Create a folder named adr-setting
454 454  
455 455  2) Open the adr-setting folder
... ... @@ -473,8 +473,9 @@
473 473  [[image:image-20220524165623-38.png]]
474 474  
475 475  
476 -5. Add the plugin and run the plugin.
477 477  
765 +(% style="color:blue" %)**5.  Add the plugin and run the plugin.**
766 +
478 478  (((
479 479  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:
480 480  )))
... ... @@ -510,14 +510,205 @@
510 510  Finish.
511 511  
512 512  
513 -= 6. Trouble Shooting =
802 += 10.  How to store/get all data traffic for a specific sensor, including raw payload, and uplink/ downlink history. =
514 514  
515 -== 6.1 MIC Mismatch or MIC Failed ==
516 516  
805 +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.
806 +
807 +This example will be shown how to store/get all the data in two ways:
808 +
809 +(% style="color:blue" %)**//1). Chirpstack ~-~-> Node-red//**
810 +
811 +
812 +[[image:image-20221012184501-1.png||height="608" width="1041"]]
813 +
814 +
815 +Use MQTT in Nore-red to subscribe to topics published by the chirpstack-application and then continuously write to a file
816 +
817 +[[image:image-20221012174220-2.png]]
818 +
819 +
820 +[[image:image-20221012184655-3.png||height="395" width="1049"]]
821 +
822 +
823 +**Each message is continuously logged to a specified file**
824 +
825 +[[image:image-20221012174352-3.png]]
826 +
827 +
828 +(% style="color:blue" %)**//2). MQTT  Sub//**
829 +
830 +If you don't want to store the information via node-red, you can get the output via the subscribe command.
831 +
832 +
833 +**If connecting from the same machine, you can use the following command to receive data:**
834 +
835 +(% class="box infomessage" %)
517 517  (((
837 +**mosquitto_sub -h localhost -t "application/#" -v**
838 +)))
839 +
840 +
841 +(% style="color:blue" %)**Different host**
842 +
843 +(% class="box infomessage" %)
844 +(((
845 +**mosquitto_sub -h IPADDRESS -p 8883 ~-~-insecure ~-~-cafile ca.pem ~-~-cert cert.pem ~-~-key key.pem -t "application/#" -v**
846 +)))
847 +
848 +[[image:image-20221012173639-1.png||height="273" width="1206"]]
849 +
850 +
851 += 11.  How to use Chirpstack API to batch register Sensor Node/Gateway in Chistapstack Server =
852 +
853 +The following example is based on the built-in ChirpStack server for LPS8V2
854 +
855 +[[image:image-20231201174640-1.png||height="584" width="1148"]]
856 +
857 +
858 +== **11.1 Generate API Tokens** ==
859 +
860 +Access the built-in chirpstack , click "**API Key**" and "**Add API Key**".
861 +
862 +[[image:image-20231201175118-2.png||height="597" width="1156"]]
863 +
864 +**Save the generated API Tokens**
865 +
866 +[[image:image-20231201175648-3.png||height="596" width="1155"]]
867 +
868 +[[image:image-20231204104802-1.png]]
869 +
870 +
871 +== **11.2 Template file** ==
872 +
873 +
874 +Click on **"Template File Download"**, the user will download a **register.csv** template file,
875 +
876 +[[image:image-20231204105201-2.png]]
877 +
878 +
879 +Before registering in batches, the user needs to add an **Application** and **Device profile**, If  you have already added them, you do not need to add them again,
880 +
881 +Open the corresponding **Application** and **Device profile** and copy their IDs
882 +
883 +[[image:image-20231204110902-5.png||height="618" width="1197"]]
884 +
885 +[[image:image-20231204111116-7.png||height="619" width="1199"]]
886 +
887 +[[image:image-20231204111834-9.png||height="273" width="1205"]]
888 +
889 +[[image:image-20231204112107-10.png||height="621" width="1203"]]
890 +
891 +
892 +
893 +== **11.3 Batch Register** ==
894 +
895 +[[image:image-20231204113136-11.png||height="362" width="1062"]]
896 +
897 +
898 +**Check whether the batch registration is successful**
899 +
900 +[[image:image-20231204113212-12.png]]
901 +
902 +[[image:image-20231204113237-13.png||height="558" width="1081"]]
903 +
904 +
905 +
906 += 12.  Example: Use Local Server ChirpStack and Node-Red in LPS8v2 =
907 +
908 +
909 +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:
910 +
911 +* LHT65N register on LPS8v2 Built-In ChirpStack server already
912 +* The user is able to see the data on the built-in ChirpStack server device page.
913 +
914 +Below are the steps to plot the sensor data on LPS8v2 Node-Red.
915 +
916 +
917 +== 12.1 Link Node-Red to Local ChirpStack ==
918 +
919 +
920 +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"]]**
921 +
922 +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]]**
923 +
924 +After importing the Input Flow is complete, the user needs to edit the MQTT in the node
925 +
926 +
927 +(% style="color:blue" %)**1. Change the Topic**
928 +
929 +Topic modifies it to the following format:
930 +
931 +**application/(% style="color:red" %)Application ID(%%)/device/(% style="color:red" %)End device ID(%%)/event/up**
932 +
933 +Reference link: [[**Node-RED integration** >>https://www.chirpstack.io/docs/guides/node-red-integration.html]]
934 +
935 +[[image:image-20230527143923-1.png||height="588" width="1132"]]
936 +
937 +
938 +
939 +(% style="color:blue" %)**2. Enter the MQTT configuration information**
940 +
941 +[[image:image-20230527144206-2.png||height="590" width="1136"]]
942 +
943 +
944 +(% style="color:blue" %)**3.** **Finally, click "Update" and Deploy**
945 +
946 +"Connected" indicates that the Link Node-red to Local Chirpstack is normal.
947 +
948 +[[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"]]
949 +
950 +
951 +== 12.2 Check result. ==
952 +
953 +
954 +Users can check logs by adding debug.
955 +
956 +Browser access: **Node-Red-Server-Address:1880/ui**
957 +
958 +[[image:image-20230529150923-1.png||height="424" width="1118"]]
959 +
960 +
961 += 13.  Trouble Shooting =
962 +
963 +== 13.1  MIC Mismatch or MIC Failed ==
964 +
965 +
966 +(((
518 518  When the device is registered or the device is working normally, the problem of MIC mismatch and MIC failed occurs.
519 519  )))
520 520  
521 521  (((
522 522  Under normal circumstances, users need to change the APPKEY to solve this problem.
972 +
973 +
974 +== 13.2  The node is very close to the gateway, but the signal is poor ==
975 +
976 +
977 +If you are using US915 or AU915, you found the frequency points of different subband ranges in your uplink
978 +
979 +Like that:Both 905.1Mhz and 902.3Mhz appear on uplink
980 + But they belong to Subband1 and Subband2 of US915 respectively
981 +
982 +Cause: The server and the gateway use different frequency bands (the server uses Subband1, and the gateway uses Subband2)
983 +
984 + 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.
985 +
986 +How to check the frequency band used by the server:
987 +
988 +You can view the information sent by the server: ch_mask in Unconfirmdedatadown
989 +
990 +[[image:image-20230821113255-1.png]]
991 +
992 +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.
993 +
994 +[[image:image-20230821113539-2.png]]
995 +
996 +In the second message, the channel 0~~7 is true, which means that your server is using subband2.
997 +
998 +[[image:image-20230821113618-3.png]]
999 +
1000 +**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]]**
1001 +
1002 +
523 523  )))
LHT65N-ChirpStack-node-red.json
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +18.9 KB
Content
... ... @@ -1,0 +1,721 @@
1 +[
2 + {
3 + "id": "0f8b93c6ce9ba9bd",
4 + "type": "tab",
5 + "label": "流程 1",
6 + "disabled": false,
7 + "info": "",
8 + "env": []
9 + },
10 + {
11 + "id": "11ea7050721f9df5",
12 + "type": "mqtt in",
13 + "z": "0f8b93c6ce9ba9bd",
14 + "name": "LHT65N",
15 + "topic": "application/43b0fd94-75be-4a80-a78c-c9381fe23b05/device/a84041c8b1824695/event/up",
16 + "qos": "0",
17 + "datatype": "auto-detect",
18 + "broker": "862a790de52f4ea4",
19 + "nl": false,
20 + "rap": true,
21 + "rh": 0,
22 + "inputs": 0,
23 + "x": 100,
24 + "y": 140,
25 + "wires": [
26 + [
27 + "034db5cd68129249",
28 + "6e4c3938ccd21838",
29 + "d20a25c0a12cad04",
30 + "38136d7454e138e5",
31 + "239852361ed7c91d"
32 + ]
33 + ]
34 + },
35 + {
36 + "id": "6e4c3938ccd21838",
37 + "type": "debug",
38 + "z": "0f8b93c6ce9ba9bd",
39 + "name": "",
40 + "active": true,
41 + "tosidebar": true,
42 + "console": false,
43 + "tostatus": false,
44 + "complete": "false",
45 + "statusVal": "",
46 + "statusType": "auto",
47 + "x": 490,
48 + "y": 140,
49 + "wires": []
50 + },
51 + {
52 + "id": "034db5cd68129249",
53 + "type": "function",
54 + "z": "0f8b93c6ce9ba9bd",
55 + "name": "",
56 + "func": "var data = msg.payload[\"deviceInfo\"]\nvar decode = msg.payload[\"object\"]\nif (decode[\"Ext_sensor\"] == \"Temperature Sensor\"){\nvar f_port = msg.payload[\"fPort\"]\nvar f_cnt = msg.payload[\"fCnt\"]\nvar data2 = decode\nvar bat =data2[\"BatV\"]\nvar bat_status=data2[\"Bat_status\"]\nvar ext_sensor=data2[\"Ext_sensor\"]\nvar hum_SHT=data2[\"Hum_SHT\"]\nif (\"TempC_DS\" in data2){\n var tempC_DS=data2[\"TempC_DS\"]\n}\nelse {\ntempC_DS=data2[\"TempC_TMP117\"]\n}\nvar tempC_SHT=data2[\"TempC_SHT\"]\nvar a1={payload:f_port},a2={payload:f_cnt},a3={payload:bat},a4={payload:bat_status},a5={payload:ext_sensor},\n a6={payload:hum_SHT},a7={payload:tempC_DS},a8={payload:tempC_SHT}\nreturn [a1,a2,a3,a4,a5,a6,a7,a8];\n}",
57 + "outputs": 9,
58 + "noerr": 0,
59 + "initialize": "",
60 + "finalize": "",
61 + "libs": [],
62 + "x": 470,
63 + "y": 260,
64 + "wires": [
65 + [
66 + "054041c1f8ad740a"
67 + ],
68 + [
69 + "11286fbcb9419c65"
70 + ],
71 + [
72 + "6f74bac1ba605862"
73 + ],
74 + [
75 + "c9f618cca24db5e1"
76 + ],
77 + [
78 + "7f2fc42c4bcc6ff9"
79 + ],
80 + [
81 + "980646824d0c5239"
82 + ],
83 + [
84 + "a2ed445e50c952ea"
85 + ],
86 + [
87 + "13394b6f113fe555"
88 + ],
89 + []
90 + ]
91 + },
92 + {
93 + "id": "054041c1f8ad740a",
94 + "type": "ui_text",
95 + "z": "0f8b93c6ce9ba9bd",
96 + "group": "6c8dcef19b33b1ab",
97 + "order": 0,
98 + "width": 0,
99 + "height": 0,
100 + "name": "f_port",
101 + "label": "f_port",
102 + "format": "{{msg.payload}}",
103 + "layout": "row-spread",
104 + "className": "",
105 + "x": 770,
106 + "y": 160,
107 + "wires": []
108 + },
109 + {
110 + "id": "11286fbcb9419c65",
111 + "type": "ui_text",
112 + "z": "0f8b93c6ce9ba9bd",
113 + "group": "9d9e40253fa3a62f",
114 + "order": 0,
115 + "width": 0,
116 + "height": 0,
117 + "name": "f_cunt",
118 + "label": "f_cunt",
119 + "format": "{{msg.payload}}",
120 + "layout": "row-spread",
121 + "className": "",
122 + "x": 770,
123 + "y": 200,
124 + "wires": []
125 + },
126 + {
127 + "id": "6f74bac1ba605862",
128 + "type": "ui_chart",
129 + "z": "0f8b93c6ce9ba9bd",
130 + "name": "bat",
131 + "group": "b24db75b1499c15f",
132 + "order": 0,
133 + "width": 0,
134 + "height": 0,
135 + "label": "bat",
136 + "chartType": "line",
137 + "legend": "false",
138 + "xformat": "HH:mm:ss",
139 + "interpolate": "linear",
140 + "nodata": "",
141 + "dot": false,
142 + "ymin": "",
143 + "ymax": "",
144 + "removeOlder": 1,
145 + "removeOlderPoints": "",
146 + "removeOlderUnit": "3600",
147 + "cutout": 0,
148 + "useOneColor": false,
149 + "useUTC": false,
150 + "colors": [
151 + "#1f77b4",
152 + "#aec7e8",
153 + "#ff7f0e",
154 + "#2ca02c",
155 + "#98df8a",
156 + "#d62728",
157 + "#ff9896",
158 + "#9467bd",
159 + "#c5b0d5"
160 + ],
161 + "outputs": 1,
162 + "useDifferentColor": false,
163 + "className": "",
164 + "x": 770,
165 + "y": 240,
166 + "wires": [
167 + []
168 + ]
169 + },
170 + {
171 + "id": "c9f618cca24db5e1",
172 + "type": "ui_text",
173 + "z": "0f8b93c6ce9ba9bd",
174 + "group": "758898c4bead5e6f",
175 + "order": 6,
176 + "width": 0,
177 + "height": 0,
178 + "name": "Bat_status",
179 + "label": "Bat_status",
180 + "format": "{{msg.payload}}",
181 + "layout": "row-spread",
182 + "className": "",
183 + "x": 790,
184 + "y": 280,
185 + "wires": []
186 + },
187 + {
188 + "id": "7f2fc42c4bcc6ff9",
189 + "type": "ui_text",
190 + "z": "0f8b93c6ce9ba9bd",
191 + "group": "a8f02d8f9b3e80a1",
192 + "order": 0,
193 + "width": 0,
194 + "height": 0,
195 + "name": "Ext_sensor",
196 + "label": "Ext_sensor",
197 + "format": "{{msg.payload}}",
198 + "layout": "row-spread",
199 + "className": "",
200 + "x": 790,
201 + "y": 320,
202 + "wires": []
203 + },
204 + {
205 + "id": "980646824d0c5239",
206 + "type": "ui_chart",
207 + "z": "0f8b93c6ce9ba9bd",
208 + "name": "Hum_SHT",
209 + "group": "a9ef53ea130e5557",
210 + "order": 6,
211 + "width": 0,
212 + "height": 0,
213 + "label": "Hum_SHT",
214 + "chartType": "line",
215 + "legend": "false",
216 + "xformat": "HH:mm:ss",
217 + "interpolate": "linear",
218 + "nodata": "",
219 + "dot": false,
220 + "ymin": "",
221 + "ymax": "",
222 + "removeOlder": 1,
223 + "removeOlderPoints": "",
224 + "removeOlderUnit": "3600",
225 + "cutout": 0,
226 + "useOneColor": false,
227 + "useUTC": false,
228 + "colors": [
229 + "#1f77b4",
230 + "#aec7e8",
231 + "#ff7f0e",
232 + "#2ca02c",
233 + "#98df8a",
234 + "#d62728",
235 + "#ff9896",
236 + "#9467bd",
237 + "#c5b0d5"
238 + ],
239 + "outputs": 1,
240 + "useDifferentColor": false,
241 + "className": "",
242 + "x": 790,
243 + "y": 360,
244 + "wires": [
245 + []
246 + ]
247 + },
248 + {
249 + "id": "a2ed445e50c952ea",
250 + "type": "ui_chart",
251 + "z": "0f8b93c6ce9ba9bd",
252 + "name": "TempC_sensor",
253 + "group": "1558cd7a030388f7",
254 + "order": 6,
255 + "width": 0,
256 + "height": 0,
257 + "label": "TempC_sensor",
258 + "chartType": "line",
259 + "legend": "false",
260 + "xformat": "HH:mm:ss",
261 + "interpolate": "linear",
262 + "nodata": "",
263 + "dot": false,
264 + "ymin": "",
265 + "ymax": "",
266 + "removeOlder": 1,
267 + "removeOlderPoints": "",
268 + "removeOlderUnit": "3600",
269 + "cutout": 0,
270 + "useOneColor": false,
271 + "useUTC": false,
272 + "colors": [
273 + "#1f77b4",
274 + "#aec7e8",
275 + "#ff7f0e",
276 + "#2ca02c",
277 + "#98df8a",
278 + "#d62728",
279 + "#ff9896",
280 + "#9467bd",
281 + "#c5b0d5"
282 + ],
283 + "outputs": 1,
284 + "useDifferentColor": false,
285 + "className": "",
286 + "x": 800,
287 + "y": 400,
288 + "wires": [
289 + []
290 + ]
291 + },
292 + {
293 + "id": "13394b6f113fe555",
294 + "type": "ui_chart",
295 + "z": "0f8b93c6ce9ba9bd",
296 + "name": "TempC_SHT",
297 + "group": "f523098714ee6cd6",
298 + "order": 6,
299 + "width": 0,
300 + "height": 0,
301 + "label": "TempC_SHT",
302 + "chartType": "line",
303 + "legend": "false",
304 + "xformat": "HH:mm:ss",
305 + "interpolate": "linear",
306 + "nodata": "",
307 + "dot": false,
308 + "ymin": "",
309 + "ymax": "",
310 + "removeOlder": 1,
311 + "removeOlderPoints": "",
312 + "removeOlderUnit": "3600",
313 + "cutout": 0,
314 + "useOneColor": false,
315 + "useUTC": false,
316 + "colors": [
317 + "#1f77b4",
318 + "#aec7e8",
319 + "#ff7f0e",
320 + "#2ca02c",
321 + "#98df8a",
322 + "#d62728",
323 + "#ff9896",
324 + "#9467bd",
325 + "#c5b0d5"
326 + ],
327 + "outputs": 1,
328 + "useDifferentColor": false,
329 + "className": "",
330 + "x": 790,
331 + "y": 440,
332 + "wires": [
333 + []
334 + ]
335 + },
336 + {
337 + "id": "d20a25c0a12cad04",
338 + "type": "function",
339 + "z": "0f8b93c6ce9ba9bd",
340 + "name": "",
341 + "func": "var data = msg.payload[\"deviceInfo\"]\nvar decode = msg.payload[\"object\"]\nif (decode[\"Work_mode\"]==\"Interrupt Sensor send\"){\nvar f_port = msg.payload[\"fPort\"]\nvar f_cnt = msg.payload[\"fCnt\"]\nvar data2 = decode\nvar bat =data2[\"BatV\"]\nvar bat_status=data2[\"Bat_status\"]\nvar work_mode=data2[\"Work_mode\"]\nvar exti_pin_level=data2[\"Exti_pin_level\"]\nvar exti_status=data2[\"Exti_status\"]\nvar hum_SHT=data2[\"Hum_SHT\"]\nvar tempC_SHT=data2[\"TempC_SHT\"]\nvar a1={payload:f_port},a2={payload:f_cnt},a3={payload:bat},a4={payload:bat_status},a5={payload:work_mode},\na6={payload:exti_pin_level},a7={payload:exti_status},a8={payload:hum_SHT},a9={payload:tempC_SHT}\nreturn [a1,a2,a3,a4,a5,a6,a7,a8,a9];\n}",
342 + "outputs": 9,
343 + "noerr": 0,
344 + "initialize": "",
345 + "finalize": "",
346 + "libs": [],
347 + "x": 470,
348 + "y": 440,
349 + "wires": [
350 + [
351 + "054041c1f8ad740a"
352 + ],
353 + [
354 + "11286fbcb9419c65"
355 + ],
356 + [
357 + "6f74bac1ba605862"
358 + ],
359 + [
360 + "c9f618cca24db5e1"
361 + ],
362 + [
363 + "7f2fc42c4bcc6ff9"
364 + ],
365 + [
366 + "0513bcb70cd63787"
367 + ],
368 + [
369 + "10eed06366dc18c4"
370 + ],
371 + [
372 + "980646824d0c5239"
373 + ],
374 + [
375 + "13394b6f113fe555"
376 + ]
377 + ]
378 + },
379 + {
380 + "id": "0513bcb70cd63787",
381 + "type": "ui_text",
382 + "z": "0f8b93c6ce9ba9bd",
383 + "group": "b1dc3cad430eb5b7",
384 + "order": 0,
385 + "width": 0,
386 + "height": 0,
387 + "name": "Exti_pin_level",
388 + "label": "Exti_pin_level",
389 + "format": "{{msg.payload}}",
390 + "layout": "row-spread",
391 + "className": "",
392 + "x": 780,
393 + "y": 560,
394 + "wires": []
395 + },
396 + {
397 + "id": "10eed06366dc18c4",
398 + "type": "ui_text",
399 + "z": "0f8b93c6ce9ba9bd",
400 + "group": "4184be11e1179998",
401 + "order": 0,
402 + "width": 0,
403 + "height": 0,
404 + "name": "Exti_status",
405 + "label": "Exti_status",
406 + "format": "{{msg.payload}}",
407 + "layout": "row-spread",
408 + "className": "",
409 + "x": 770,
410 + "y": 600,
411 + "wires": []
412 + },
413 + {
414 + "id": "38136d7454e138e5",
415 + "type": "function",
416 + "z": "0f8b93c6ce9ba9bd",
417 + "name": "",
418 + "func": "var data = msg.payload[\"deviceInfo\"]\nvar decode = msg.payload[\"object\"]\nif (decode[\"Work_mode\"]==\"Interrupt Sensor count\"){\nvar f_port = msg.payload[\"fPort\"]\nvar f_cnt = msg.payload[\"fCnt\"]\nvar data2 = decode\nvar bat =data2[\"BatV\"]\nvar bat_status=data2[\"Bat_status\"]\nvar work_mode=data2[\"Work_mode\"]\nvar exit_count=data2[\"Exit_count\"]\nvar hum_SHT=data2[\"Hum_SHT\"]\nvar tempC_SHT=data2[\"TempC_SHT\"]\nvar a1={payload:f_port},a2={payload:f_cnt},a3={payload:bat},a4={payload:bat_status},a5={payload:work_mode},\na6={payload:exit_count},a8={payload:hum_SHT},a9={payload:tempC_SHT}\nreturn [a1,a2,a3,a4,a5,a6,a8,a9];\n}",
419 + "outputs": 8,
420 + "noerr": 0,
421 + "initialize": "",
422 + "finalize": "",
423 + "libs": [],
424 + "x": 470,
425 + "y": 620,
426 + "wires": [
427 + [
428 + "054041c1f8ad740a"
429 + ],
430 + [
431 + "11286fbcb9419c65"
432 + ],
433 + [
434 + "6f74bac1ba605862"
435 + ],
436 + [
437 + "c9f618cca24db5e1"
438 + ],
439 + [
440 + "7f2fc42c4bcc6ff9"
441 + ],
442 + [
443 + "3914f37c12607c9f"
444 + ],
445 + [
446 + "980646824d0c5239"
447 + ],
448 + [
449 + "13394b6f113fe555"
450 + ]
451 + ]
452 + },
453 + {
454 + "id": "3914f37c12607c9f",
455 + "type": "ui_text",
456 + "z": "0f8b93c6ce9ba9bd",
457 + "group": "28cf5cca4c2c0bb5",
458 + "order": 0,
459 + "width": 0,
460 + "height": 0,
461 + "name": "exit_count",
462 + "label": "exit_count",
463 + "format": "{{msg.payload}}",
464 + "layout": "row-spread",
465 + "className": "",
466 + "x": 790,
467 + "y": 700,
468 + "wires": []
469 + },
470 + {
471 + "id": "239852361ed7c91d",
472 + "type": "function",
473 + "z": "0f8b93c6ce9ba9bd",
474 + "name": "",
475 + "func": "var data = msg.payload[\"deviceInfo\"]\nvar decode = msg.payload[\"object\"]\nif (decode[\"Work_mode\"]==\"ADC Sensor\"){\nvar f_port = msg.payload[\"fPort\"]\nvar f_cnt = msg.payload[\"fCnt\"]\nvar data2 = decode\nvar bat =data2[\"BatV\"]\nvar bat_status=data2[\"Bat_status\"]\nvar work_mode=data2[\"Work_mode\"]\nvar adc_V=data2[\"ADC_V\"]\nvar hum_SHT=data2[\"Hum_SHT\"]\nvar tempC_SHT=data2[\"TempC_SHT\"]\nvar a1={payload:f_port},a2={payload:f_cnt},a3={payload:bat},a4={payload:bat_status},a5={payload:work_mode},\na6={payload:adc_V},a8={payload:hum_SHT},a9={payload:tempC_SHT}\nreturn [a1,a2,a3,a4,a5,a6,a8,a9];\n}",
476 + "outputs": 8,
477 + "noerr": 0,
478 + "initialize": "",
479 + "finalize": "",
480 + "libs": [],
481 + "x": 470,
482 + "y": 760,
483 + "wires": [
484 + [
485 + "054041c1f8ad740a"
486 + ],
487 + [
488 + "11286fbcb9419c65"
489 + ],
490 + [
491 + "6f74bac1ba605862"
492 + ],
493 + [
494 + "c9f618cca24db5e1"
495 + ],
496 + [
497 + "7f2fc42c4bcc6ff9"
498 + ],
499 + [
500 + "605688b5e60df43d"
501 + ],
502 + [
503 + "980646824d0c5239"
504 + ],
505 + [
506 + "13394b6f113fe555"
507 + ]
508 + ]
509 + },
510 + {
511 + "id": "605688b5e60df43d",
512 + "type": "ui_chart",
513 + "z": "0f8b93c6ce9ba9bd",
514 + "name": "ADC_V",
515 + "group": "5f974d1fd1c0edfa",
516 + "order": 0,
517 + "width": 0,
518 + "height": 0,
519 + "label": "ADC_V",
520 + "chartType": "line",
521 + "legend": "false",
522 + "xformat": "HH:mm:ss",
523 + "interpolate": "linear",
524 + "nodata": "",
525 + "dot": false,
526 + "ymin": "",
527 + "ymax": "",
528 + "removeOlder": 1,
529 + "removeOlderPoints": "",
530 + "removeOlderUnit": "3600",
531 + "cutout": 0,
532 + "useOneColor": false,
533 + "useUTC": false,
534 + "colors": [
535 + "#1f77b4",
536 + "#aec7e8",
537 + "#ff7f0e",
538 + "#2ca02c",
539 + "#98df8a",
540 + "#d62728",
541 + "#ff9896",
542 + "#9467bd",
543 + "#c5b0d5"
544 + ],
545 + "outputs": 1,
546 + "useDifferentColor": false,
547 + "className": "",
548 + "x": 780,
549 + "y": 780,
550 + "wires": [
551 + []
552 + ]
553 + },
554 + {
555 + "id": "862a790de52f4ea4",
556 + "type": "mqtt-broker",
557 + "name": "LHT65N",
558 + "broker": "10.130.2.143",
559 + "port": "1883",
560 + "clientid": "",
561 + "autoConnect": true,
562 + "usetls": false,
563 + "protocolVersion": "4",
564 + "keepalive": "60",
565 + "cleansession": true,
566 + "birthTopic": "",
567 + "birthQos": "0",
568 + "birthPayload": "",
569 + "birthMsg": {},
570 + "closeTopic": "",
571 + "closeQos": "0",
572 + "closePayload": "",
573 + "closeMsg": {},
574 + "willTopic": "",
575 + "willQos": "0",
576 + "willPayload": "",
577 + "willMsg": {},
578 + "userProps": "",
579 + "sessionExpiry": ""
580 + },
581 + {
582 + "id": "6c8dcef19b33b1ab",
583 + "type": "ui_group",
584 + "name": "f_port",
585 + "tab": "7e01624d2b1a030f",
586 + "order": 1,
587 + "disp": true,
588 + "width": "6",
589 + "collapse": false,
590 + "className": ""
591 + },
592 + {
593 + "id": "9d9e40253fa3a62f",
594 + "type": "ui_group",
595 + "name": "f_cunt",
596 + "tab": "7e01624d2b1a030f",
597 + "order": 2,
598 + "disp": true,
599 + "width": "6",
600 + "collapse": false,
601 + "className": ""
602 + },
603 + {
604 + "id": "b24db75b1499c15f",
605 + "type": "ui_group",
606 + "name": "bat",
607 + "tab": "7e01624d2b1a030f",
608 + "order": 8,
609 + "disp": true,
610 + "width": "6",
611 + "collapse": false,
612 + "className": ""
613 + },
614 + {
615 + "id": "758898c4bead5e6f",
616 + "type": "ui_group",
617 + "name": "Bat_status",
618 + "tab": "7e01624d2b1a030f",
619 + "order": 3,
620 + "disp": true,
621 + "width": "6",
622 + "collapse": false,
623 + "className": ""
624 + },
625 + {
626 + "id": "a8f02d8f9b3e80a1",
627 + "type": "ui_group",
628 + "name": "Ext_sensor",
629 + "tab": "7e01624d2b1a030f",
630 + "order": 4,
631 + "disp": true,
632 + "width": "6",
633 + "collapse": false,
634 + "className": ""
635 + },
636 + {
637 + "id": "a9ef53ea130e5557",
638 + "type": "ui_group",
639 + "name": "Hum_SHT",
640 + "tab": "7e01624d2b1a030f",
641 + "order": 9,
642 + "disp": true,
643 + "width": "6",
644 + "collapse": false,
645 + "className": ""
646 + },
647 + {
648 + "id": "1558cd7a030388f7",
649 + "type": "ui_group",
650 + "name": "TempC_sensor",
651 + "tab": "7e01624d2b1a030f",
652 + "order": 10,
653 + "disp": true,
654 + "width": "6",
655 + "collapse": false,
656 + "className": ""
657 + },
658 + {
659 + "id": "f523098714ee6cd6",
660 + "type": "ui_group",
661 + "name": "TempC_SHT",
662 + "tab": "7e01624d2b1a030f",
663 + "order": 11,
664 + "disp": true,
665 + "width": "6",
666 + "collapse": false,
667 + "className": ""
668 + },
669 + {
670 + "id": "b1dc3cad430eb5b7",
671 + "type": "ui_group",
672 + "name": "Exti_pin_level",
673 + "tab": "7e01624d2b1a030f",
674 + "order": 6,
675 + "disp": true,
676 + "width": "6",
677 + "collapse": false,
678 + "className": ""
679 + },
680 + {
681 + "id": "4184be11e1179998",
682 + "type": "ui_group",
683 + "name": "Exti_status",
684 + "tab": "7e01624d2b1a030f",
685 + "order": 7,
686 + "disp": true,
687 + "width": "6",
688 + "collapse": false,
689 + "className": ""
690 + },
691 + {
692 + "id": "28cf5cca4c2c0bb5",
693 + "type": "ui_group",
694 + "name": "exit_count",
695 + "tab": "7e01624d2b1a030f",
696 + "order": 5,
697 + "disp": true,
698 + "width": "6",
699 + "collapse": false,
700 + "className": ""
701 + },
702 + {
703 + "id": "5f974d1fd1c0edfa",
704 + "type": "ui_group",
705 + "name": "ADC_V",
706 + "tab": "7e01624d2b1a030f",
707 + "order": 12,
708 + "disp": true,
709 + "width": "6",
710 + "collapse": false,
711 + "className": ""
712 + },
713 + {
714 + "id": "7e01624d2b1a030f",
715 + "type": "ui_tab",
716 + "name": "LHT65N",
717 + "icon": "LHT65N",
718 + "disabled": false,
719 + "hidden": false
720 + }
721 +]
image-20221010193350-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Edwin
Size
... ... @@ -1,0 +1,1 @@
1 +42.7 KB
Content
image-20221010193621-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Edwin
Size
... ... @@ -1,0 +1,1 @@
1 +34.2 KB
Content
image-20221012173639-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoye
Size
... ... @@ -1,0 +1,1 @@
1 +56.2 KB
Content
image-20221012174220-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoye
Size
... ... @@ -1,0 +1,1 @@
1 +14.8 KB
Content
image-20221012174352-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoye
Size
... ... @@ -1,0 +1,1 @@
1 +93.0 KB
Content
image-20221012184501-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoye
Size
... ... @@ -1,0 +1,1 @@
1 +91.3 KB
Content
image-20221012184631-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoye
Size
... ... @@ -1,0 +1,1 @@
1 +32.4 KB
Content
image-20221012184655-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoye
Size
... ... @@ -1,0 +1,1 @@
1 +45.4 KB
Content
image-20221222113302-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +76.3 KB
Content
image-20221222114220-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +64.3 KB
Content
image-20221222134830-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +54.5 KB
Content
image-20221222140203-4.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +91.4 KB
Content
image-20221222141754-5.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +179.1 KB
Content
image-20221222141830-6.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +116.7 KB
Content
image-20221230094246-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +84.9 KB
Content
image-20230415165254-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +67.2 KB
Content
image-20230415170404-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +17.9 KB
Content
image-20230415170854-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +48.4 KB
Content
image-20230527115750-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +208.8 KB
Content
image-20230527143923-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +222.4 KB
Content
image-20230527144206-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +224.2 KB
Content
image-20230529150923-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +87.2 KB
Content
image-20230531162943-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +84.6 KB
Content
image-20230702094608-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Bei
Size
... ... @@ -1,0 +1,1 @@
1 +53.8 KB
Content
image-20230702094852-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Bei
Size
... ... @@ -1,0 +1,1 @@
1 +12.5 KB
Content
image-20230702094944-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Bei
Size
... ... @@ -1,0 +1,1 @@
1 +26.7 KB
Content
image-20230702095114-4.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Bei
Size
... ... @@ -1,0 +1,1 @@
1 +43.5 KB
Content
image-20230702095557-5.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Bei
Size
... ... @@ -1,0 +1,1 @@
1 +48.5 KB
Content
image-20230702095641-6.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Bei
Size
... ... @@ -1,0 +1,1 @@
1 +19.2 KB
Content
image-20230702095827-7.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Bei
Size
... ... @@ -1,0 +1,1 @@
1 +34.9 KB
Content
image-20230702100312-8.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Bei
Size
... ... @@ -1,0 +1,1 @@
1 +33.2 KB
Content
image-20230702100356-9.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Bei
Size
... ... @@ -1,0 +1,1 @@
1 +21.9 KB
Content
image-20230702100543-10.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Bei
Size
... ... @@ -1,0 +1,1 @@
1 +25.6 KB
Content
image-20230702100930-11.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Bei
Size
... ... @@ -1,0 +1,1 @@
1 +48.7 KB
Content
image-20230821113255-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Bei
Size
... ... @@ -1,0 +1,1 @@
1 +115.7 KB
Content
image-20230821113539-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Bei
Size
... ... @@ -1,0 +1,1 @@
1 +71.1 KB
Content
image-20230821113618-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Bei
Size
... ... @@ -1,0 +1,1 @@
1 +19.0 KB
Content
image-20230821114047-4.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Bei
Size
... ... @@ -1,0 +1,1 @@
1 +125.6 KB
Content
image-20230926092907-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +64.0 KB
Content
image-20230926093057-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +69.6 KB
Content
image-20230926093233-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +95.8 KB
Content
image-20231108140540-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +46.3 KB
Content
image-20231108164914-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +37.2 KB
Content
image-20231108165128-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +43.3 KB
Content
image-20231108165158-4.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +60.8 KB
Content
image-20231108171112-5.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +47.7 KB
Content
image-20231108171145-6.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +39.1 KB
Content
image-20231201174640-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +43.6 KB
Content
image-20231201175118-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +83.2 KB
Content
image-20231201175648-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +103.2 KB
Content
image-20231201180103-4.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +52.6 KB
Content
image-20231204104802-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +42.4 KB
Content
image-20231204105201-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +33.3 KB
Content
image-20231204105859-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +34.2 KB
Content
image-20231204110341-4.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +104.0 KB
Content
image-20231204110902-5.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +100.5 KB
Content
image-20231204111022-6.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +91.6 KB
Content
image-20231204111116-7.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +92.0 KB
Content
image-20231204111641-8.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +97.1 KB
Content
image-20231204111834-9.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +34.5 KB
Content
image-20231204112107-10.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +109.7 KB
Content
image-20231204113136-11.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +50.0 KB
Content
image-20231204113212-12.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +45.3 KB
Content
image-20231204113237-13.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +93.5 KB
Content
image-20240117173123-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +120.8 KB
Content
image-20240117174452-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +132.1 KB
Content
image-20240117175009-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +120.3 KB
Content
image-20240117175058-4.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +92.9 KB
Content
Copyright ©2010-2022 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0