Changes for page Notes for ChirpStack
Last modified by Edwin Chen on 2025/01/30 09:53
Change comment:
Uploaded new attachment "LHT65N-ChirpStack-node-red.json", version {1}
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Attachments (0 modified, 19 added, 0 removed)
- LHT65N-ChirpStack-node-red.json
- image-20221010193350-1.png
- image-20221010193621-2.png
- image-20221012173639-1.png
- image-20221012174220-2.png
- image-20221012174352-3.png
- image-20221012184501-1.png
- image-20221012184631-2.png
- image-20221012184655-3.png
- image-20221222113302-1.png
- image-20221222114220-2.png
- image-20221222134830-3.png
- image-20221222140203-4.png
- image-20221222141754-5.png
- image-20221222141830-6.png
- image-20221230094246-1.png
- image-20230415165254-1.png
- image-20230415170404-2.png
- image-20230415170854-3.png
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. Xiaoling1 +XWiki.Kilight - Content
-
... ... @@ -38,7 +38,6 @@ 38 38 ))) 39 39 40 40 41 - 42 42 = 2. Semtech UDP = 43 43 44 44 == 2.1 Step 1. Add the Network-servers == ... ... @@ -53,7 +53,7 @@ 53 53 ))) 54 54 55 55 56 -If the user cannot add network-Servers, re-check the ChirpStack code or the server building process. 55 +(% style="color:red" %)**If the user cannot add network-Servers, re-check the ChirpStack code or the server building process.** 57 57 58 58 59 59 [[image:image-20220531171609-1.png]] ... ... @@ -61,8 +61,8 @@ 61 61 Add the Network-servers 62 62 63 63 63 +== 2.2 Step 2. Create Gateway-profiles == 64 64 65 -== 2.2 Step 2. Create Gateway-profiles == 66 66 67 67 [[image:image-20220531171651-2.png]] 68 68 ... ... @@ -69,8 +69,9 @@ 69 69 Create Gateway-profiles 70 70 71 71 72 -== 2.3 Step 3. Create Service-profiles == 71 +== 2.3 Step 3. Create Service-profiles == 73 73 73 + 74 74 [[image:image-20220531171809-3.png]] 75 75 76 76 Create Service-profiles ... ... @@ -83,29 +83,35 @@ 83 83 If the user has completed the preceding steps, proceed to the next step.(% style="display:none" %) 84 84 85 85 86 -== 2.4 Step 4. Add the gateway == 86 +== 2.4 Step 4. Add the gateway == 87 87 88 + 88 88 The example gateway id is: a840411e96744150 89 89 90 90 ((( 91 91 (% style="color:red" %)**Note : The Gateway EUI and server addresses must match the ChirpStack configuration.** 93 + 94 + 92 92 ))) 93 93 94 94 [[image:image-20220531171923-4.png]](% style="display:none" %) 95 95 96 - 97 97 Add the gateway 98 98 101 + 102 + 99 99 [[image:image-20220531172031-5.png]] 100 100 101 101 Configure the gateway 102 102 103 103 104 -== 2.5 Step 5. Checking gateway Status == 108 +== 2.5 Step 5. Checking gateway Status == 105 105 110 + 106 106 [[image:image-20220531172158-6.png]](% style="display:none" %) 107 107 108 108 114 + 109 109 gateway Status 110 110 111 111 [[image:image-20220531172304-7.png]] ... ... @@ -113,39 +113,45 @@ 113 113 gateway Status 114 114 115 115 116 -= 3. Gateway Registration for Basics Station = 122 += 3. Gateway Registration for Basics Station = 117 117 118 -== 3.1 Introduction == 124 +== 3.1 Introduction == 119 119 126 + 120 120 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. 121 121 122 122 ChirpStack Open-Source LoRaWAN® Network Server needs to set up a configuration that can use Semtech BasicStation. 123 123 124 -**Below list the support products and Requirements:** 125 125 132 +(% style="color:blue" %)**Below list the support products and Requirements:** 133 + 126 126 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]] 127 127 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/]] 128 128 129 -**How to set up chirpStack Basic Station** 137 +(% style="color:blue" %)**How to set up chirpStack Basic Station** 130 130 131 131 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]] 132 132 133 -**What do you need to prepare** 134 134 142 +(% style="color:blue" %)**What do you need to prepare** 143 + 135 135 A gateway that can access the internet normally 136 136 137 137 138 -== 3.2 Add Gateway == 147 +== 3.2 Add Gateway == 139 139 149 + 140 140 [[image:image-20220524164205-10.png]] 141 141 142 142 143 -== 3.3 Access the gateway GUI == 153 +== 3.3 Access the gateway GUI == 144 144 155 + 145 145 Access the gateway GUI interface of LoRaWAN~-~->LoRaWAN ~-~- Basic Station 146 146 147 147 [[image:image-20220524164319-11.png]] 148 148 160 + 149 149 User need to Choose the ChirpStack/Senet ~-~- Basic Station , input Server URI and Upload the TLS Certificate 150 150 151 151 (% class="box" %) ... ... @@ -161,20 +161,23 @@ 161 161 [[image:image-20220524164341-12.png]] 162 162 163 163 164 -== 3.4 Start Station == 176 +== 3.4 Start Station == 165 165 166 -When the user has finished the configuration, Please click Sace&Apply to start station to connect ChirpStack 167 167 179 +When the user has finished the configuration, Please click **Sace&Apply** to start station to connect ChirpStack. 168 168 169 -== 3.5 Successful Connection == 170 170 182 +== 3.5 Successful Connection == 183 + 184 + 171 171 If user completes the above steps, which will see live date in the ChirpStack. 172 172 173 173 [[image:image-20220524164448-13.png]] 174 174 175 175 176 -== 3.6 Trouble Shooting == 190 +== 3.6 Trouble Shooting == 177 177 192 + 178 178 User can check the station log in the logread/system log page. 179 179 180 180 [[image:image-20220531172837-8.png]] ... ... @@ -185,31 +185,265 @@ 185 185 [[image:image-20220531172857-9.png]] 186 186 187 187 188 -= 4. Downlink =203 += 4. How the gateway connects to Chirpstack v3 via gateway-bridge = 189 189 190 -== 4.1 Chirpstack Downlink Note == 191 191 206 +(% style="color:blue" %)**Below list the support products and Requirements:** 207 + 208 +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]] 209 +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/]] 210 + 211 +(% style="color:blue" %)**How to set up chirpStack Gateway-bridge** 212 + 213 +Users can check out the ChirpStack gateway-bridge v3 [[link>>https://www.chirpstack.io/gateway-bridge/gateway/dragino/]] 214 + 215 + 216 +(% style="color:blue" %)**What do you need to prepare** 217 + 218 +A gateway that can access the internet normally 219 + 220 + 221 +The following example does not have configuration certificates: 222 + 223 + 224 +== 4.1 Configure Packet Forwarder == 225 + 226 + 227 +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 228 + 229 +* In the (% style="color:blue" %)**LoRaWAN** (%%)menu, click on (% style="color:blue" %)**LoRaWAN ~-~- Semtech UDP** 230 + 231 +* Make sure the following settings are set: 232 +** **Service Provider:** //~-~-Custom/Private LoRaWAN~-~-// 233 +** **LoRaWAN Server Address:** //localhost or 127.0.0.1// 234 +** **Server port for upstream:** //1700// 235 +** **Server port for downstream:** //1700// 236 + 237 + Click (% style="color:blue" %)**Save & Apply**. 238 + 239 +[[image:image-20221222114220-2.png||height="748" width="931"]] 240 + 241 + 242 +== 4.2 Configuring gateway frequency == 243 + 244 + 245 +(% style="color:red" %)**Note: Gateway frequencies must match** 246 + 247 +[[image:image-20221222134830-3.png||height="408" width="923"]] 248 + 249 + 250 +== 4.3 Generate and modify the gateway-bridge configuration file == 251 + 252 + 253 +**1)Generate the gateway-bridge configuration file** 254 + 255 +By default, the configuration file is not up-to-date,so the user needs to rebuild the gateway-bridge configuration file. 256 + 257 +Users need to access the command line of the gateway through SSH,Then type the following command: 258 + 259 +(% class="box infomessage" %) 260 +((( 261 +**/opt/chirpstack-gateway-bridge/chirpstack-gateway-bridge configfile > /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml ** 262 +))) 263 + 264 + 265 +**2)modify the gateway-bridge configuration file** 266 + 267 +The user needs to modify the server address in line 252 in the configuration file 268 + 269 +(% class="box infomessage" %) 270 +((( 271 +**vim /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml ** 272 +))) 273 + 274 +[[image:image-20230415165254-1.png||height="583" width="956"]] 275 + 276 + 277 +== 4.4 Debug == 278 + 279 + 280 +After the above configuration is completed, the user can enter the command to debug the gateway-bridge connection 281 + 282 +(% class="box infomessage" %) 283 +((( 284 +**/opt/chirpstack-gateway-bridge/chirpstack-gateway-bridge ~-~-config /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml** 285 +))) 286 + 287 +If the gateway-bridge connection is normal, the debug log displays **"connected to mqtt broker"**. 288 + 289 +[[image:image-20230415170404-2.png]] 290 + 291 + 292 +If the debug log shows "**connection error**", check that the server port or server is correct 293 + 294 +[[image:image-20230415170854-3.png]] 295 + 296 + 297 +More information can be found on the **[[ChirpStack website>>https://www.chirpstack.io/docs/]]**or **[[Forum>>url:https://forum.chirpstack.io/]]** 298 + 299 + 300 +== 4.5 (Re)start and stop gateway-bridge == 301 + 302 + 303 +Use the following commands to (re)start and stop the ChirpStack Gateway Bridge Service: 304 + 305 +(% class="box infomessage" %) 306 +((( 307 +**# start** 308 + 309 +/etc/init.d/chirpstack-gateway-bridge start 310 + 311 +**# stop** 312 + 313 +/etc/init.d/chirpstack-gateway-bridge stop 314 + 315 +**# restart** 316 + 317 +/etc/init.d/chirpstack-gateway-bridge restart 318 +))) 319 + 320 + 321 += 5. How the gateway connects to Chirpstack v4 via gateway-bridge = 322 + 323 + 324 +(% style="color:blue" %)**Below list the support products and Requirements:** 325 + 326 +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]] 327 +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/]] 328 + 329 +(% style="color:blue" %)**How to set up chirpStack Gateway-bridge** 330 + 331 +Users can check out the ChirpStack gateway-bridge v4 [[link>>https://www.chirpstack.io/docs/chirpstack-gateway-bridge/install/dragino.html]] 332 + 333 + 334 +(% style="color:blue" %)**What do you need to prepare** 335 + 336 +A gateway that can access the internet normally 337 + 338 + 339 +== 5.1 Configure Packet Forwarder == 340 + 341 + 342 +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 343 + 344 +* In the (% style="color:blue" %)**LoRaWAN**(%%) menu, click on (% style="color:blue" %)**LoRaWAN ~-~- Semtech UDP** 345 + 346 +* Make sure the following settings are set: 347 +** **Service Provider:** //~-~-Custom/Private LoRaWAN~-~-// 348 +** **LoRaWAN Server Address:** //localhost or 127.0.0.1// 349 +** **Server port for upstream:** //1700// 350 +** **Server port for downstream:** //1700// 351 + 352 + Click (% style="color:blue" %)**Save & Apply**. 353 + 354 +[[image:image-20221222114220-2.png||height="748" width="931"]] 355 + 356 + 357 +== 5.2 Configuring gateway frequency == 358 + 359 + 360 +(% style="color:red" %)**Note: Gateway frequencies must match** 361 + 362 +[[image:image-20221222134830-3.png||height="408" width="923"]] 363 + 364 + 365 +== 5.3 Modify the gateway-bridge configuration file == 366 + 367 + 368 +Run the gateway command line command to modify the gateway-bridge configuration file: 369 + 370 +(% class="box infomessage" %) 371 +((( 372 +**root@dragino-1d27d4:~~# vim /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml ** 373 +))) 374 + 375 +[[image:image-20221222113302-1.png]] 376 + 377 + 378 +[[image:image-20221222140203-4.png||height="875" width="806"]] 379 + 380 +[[image:image-20221230094246-1.png||height="768" width="783"]] 381 + 382 +(% class="wikigeneratedid" id="H" %) 383 +After the modification, run the following command: **/etc/init.d/chirpstack-gateway-bridge restart** 384 + 385 + 386 +== 5.4 (Re)start and stop gateway-bridge == 387 + 388 + 389 +Use the following commands to (re)start and stop the ChirpStack Gateway Bridge Service: 390 + 391 +(% class="box infomessage" %) 392 +((( 393 +**# start** 394 + 395 +/etc/init.d/chirpstack-gateway-bridge start 396 + 397 +**# stop** 398 + 399 +/etc/init.d/chirpstack-gateway-bridge stop 400 + 401 +**# restart** 402 + 403 +/etc/init.d/chirpstack-gateway-bridge restart 404 +))) 405 + 406 + 407 +== 5.5 Successful Connection == 408 + 409 + 410 +[[image:image-20221222141754-5.png||height="488" width="1150"]] 411 + 412 + 413 +[[image:image-20221222141830-6.png||height="582" width="1153"]] 414 + 415 + 416 += 6. Downlink = 417 + 418 +== 6.1 Convert HEX to Base64 == 419 + 420 + 421 +(% 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.** 422 + 423 +**[[Online HEX to Base64 Converter>>https://base64.guru/converter/encode/hex]]:** 424 + 425 +[[image:image-20221010193350-1.png]] 426 + 427 + 428 + 429 +**[[Online Base64 to Hex converter>>https://base64.guru/converter/decode/hex]]** 430 + 431 +[[image:image-20221010193621-2.png]] 432 + 433 + 434 +== 6.2 Chirpstack Downlink Note == 435 + 436 + 192 192 [[image:image-20220601102543-2.png]] 193 193 194 -Convert the data to Base64 439 +**Convert the data to Base64** 195 195 441 +(% style="display:none" %) (%%) 196 196 197 -[[image:image-20220531173236-10.png]] 198 198 199 - Check ChripStackdownlink DataRate444 +[[image:image-20220531173236-10.png||height="597" width="1215"]] 200 200 446 +**Check ChripStack downlink DataRate** 201 201 448 + 449 + 202 202 [[image:image-20220525101326-11.png]] 203 203 204 -Make sure the RX2DR is the same in the end node 452 +**Make sure the RX2DR is the same in the end node** 205 205 206 206 207 -== 4.2Loraserver Downlink Note ==455 +== 6.3 Loraserver Downlink Note == 208 208 457 + 209 209 User can use MQTT to send downlink payload to ChirpStack to perform downstream to LoRaWAN End 210 210 211 211 ((( 212 -Below is examples: 461 +**Below is examples:** 213 213 ))) 214 214 215 215 (% class="box" %) ... ... @@ -223,13 +223,14 @@ 223 223 [[image:image-20220531173419-11.png]] 224 224 225 225 ((( 226 -MQTT Connect to ChirpStack 475 +**MQTT Connect to ChirpStack** 227 227 477 + 228 228 229 229 ))) 230 230 231 231 ((( 232 -After connect 482 +**After connect** 233 233 ))) 234 234 235 235 (% class="box" %) ... ... @@ -249,22 +249,14 @@ 249 249 250 250 [[image:image-20220531173519-12.png]] 251 251 252 -MQTT Connect to ChirpStack 502 +**MQTT Connect to ChirpStack** 253 253 254 254 255 -((( 256 -(% 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/]] 257 -))) 505 +**If we want to send downstream hex 030101 to end node, the BASE64 payload is AwEB** 258 258 259 -[[image:image-20220531173601-13.png]] 260 - 261 -Choose to Use Hex for Encode 262 - 263 - 264 -If we want send downstream hex 030101 to end node, the BASE64 payload is AwEB 265 - 266 266 [[image:image-20220531173658-14.png]] 267 267 509 + 268 268 ((( 269 269 Downlink payload encode javescript code: 可以在网站上运行以下Javsscript代码: 270 270 ))) ... ... @@ -282,15 +282,15 @@ 282 282 { 283 283 if(sha1[n] >= 'A' && sha1[n] <= 'Z') 284 284 { 285 - ascv = sha1.charCodeAt(n) - 55; 527 + ascv = sha1.charCodeAt( n ) - 55; 286 286 } 287 287 else if(sha1[n] >= 'a' && sha1[n] <= 'z') 288 288 { 289 - ascv = sha1.charCodeAt(n) - 87; 531 + ascv = sha1.charCodeAt( n ) - 87; 290 290 } 291 291 else 292 292 { 293 - ascv = sha1.charCodeAt(n) - 48; 535 + ascv = sha1.charCodeAt( n ) - 48; 294 294 } 295 295 \\ bit_arr = (bit_arr << 4) | ascv; 296 296 bit_num += 4; ... ... @@ -327,11 +327,12 @@ 327 327 ))) 328 328 329 329 330 -== 4.3 Add the decode function in Chirpstack for the payload ==572 +== 6.3 Add the decode function in Chirpstack for the payload == 331 331 574 + 332 332 User enters the payload code according to the steps. 333 333 334 -[[image:image-20220531173754-15.png]] 577 +[[image:image-20220531173754-15.png||height="474" width="1334"]] 335 335 336 336 337 337 [[image:image-20220531173856-16.png]] ... ... @@ -342,8 +342,9 @@ 342 342 [[image:image-20220531174046-19.png]] 343 343 344 344 345 -= 5. Multiply Uplink in ChirpStack =588 += 7. Multiply Uplink in ChirpStack = 346 346 590 + 347 347 ((( 348 348 nbtrans field is the value to determine the re-transmission time for unconfirmed uplink data. 349 349 ))) ... ... @@ -350,12 +350,17 @@ 350 350 351 351 ((( 352 352 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]] 597 + 598 + 353 353 ))) 354 354 355 -[[image:image-20220526091912-7.png]] 601 +[[image:image-20220526091912-7.png||height="241" width="1336"]] 356 356 603 + 357 357 ((( 358 358 nbtrans is a field of ADR message, in unconfirm mode, it tells end node how many time it needs to transmit for every frame. 606 + 607 + 359 359 ))) 360 360 361 361 [[image:image-20220525104359-21.png]] ... ... @@ -362,6 +362,8 @@ 362 362 363 363 ((( 364 364 Above behaviour will cause the platform shows below two cases of error: 614 + 615 + 365 365 ))) 366 366 367 367 ((( ... ... @@ -371,29 +371,35 @@ 371 371 [[image:image-20220525104437-22.png]] 372 372 373 373 374 -Duplicate transmission in short time 375 375 376 - [[image:image-20220601102430-1.png]]626 +**Duplicate transmission in short time** 377 377 628 +[[image:image-20220601102430-1.png||height="598" width="1319"]] 378 378 379 -== 5.1 Solution == 380 380 631 +== 7.1 Solution == 632 + 633 + 381 381 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]] 382 382 636 + 383 383 ((( 384 -~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. 638 +(% 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.** 639 + 640 + 385 385 ))) 386 386 387 387 [[image:image-20220525104532-24.png]] 388 388 389 389 390 -installation path: 646 +**installation path:** 391 391 392 392 [[image:image-20220525104554-25.png]] 393 393 394 394 651 + 395 395 ((( 396 -2. Environment variable settings: .653 +(% style="color:blue" %)**2. Environment variable settings:** 397 397 ))) 398 398 399 399 ((( ... ... @@ -401,13 +401,13 @@ 401 401 ))) 402 402 403 403 ((( 404 -2)Set the variable name GOROOT and the variable value C:\Go\ (installation directory) 661 +2) Set the variable name GOROOT and the variable value C:\Go\ (installation directory) 405 405 ))) 406 406 407 407 [[image:image-20220524165433-33.png]] 408 408 409 409 410 -3)Modify the system variable Path and add C:\Go\bin\: 667 +3) Modify the system variable Path and add C:\Go\bin\: 411 411 412 412 [[image:image-20220524165452-34.png]] 413 413 ... ... @@ -417,8 +417,9 @@ 417 417 [[image:image-20220524165517-35.png]] 418 418 419 419 420 -3. Modify the ADR configuration file according to your own needs, adr.setting.go is an example of the ADR configuration file. 421 421 678 +(% 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.** 679 + 422 422 The name of the plugin: Example ADR plugin: 423 423 424 424 [[image:image-20220524165540-36.png]] ... ... @@ -428,8 +428,9 @@ 428 428 [[image:image-20220524165557-37.png]] 429 429 430 430 431 -4. Compile the ADR configuration file and generate the exe file. 432 432 690 +(% style="color:blue" %)**4. Compile the ADR configuration file and generate the exe file.** 691 + 433 433 1) Create a folder named adr-setting 434 434 435 435 2) Open the adr-setting folder ... ... @@ -453,8 +453,9 @@ 453 453 [[image:image-20220524165623-38.png]] 454 454 455 455 456 -5. Add the plugin and run the plugin. 457 457 716 +(% style="color:blue" %)**5. Add the plugin and run the plugin.** 717 + 458 458 ((( 459 459 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: 460 460 ))) ... ... @@ -490,14 +490,66 @@ 490 490 Finish. 491 491 492 492 493 -= 6.TroubleShooting =753 += 8. How to store/get all data traffic for a specific sensor, including raw payload, and uplink/ downlink history. = 494 494 495 -== 6.1 MIC Mismatch or MIC Failed == 496 496 756 +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. 757 + 758 +This example will be shown how to store/get all the data in two ways: 759 + 760 +(% style="color:blue" %)**//1). Chirpstack ~-~-> Node-red//** 761 + 762 + 763 +[[image:image-20221012184501-1.png]] 764 + 765 + 766 +Use MQTT in Nore-red to subscribe to topics published by the chirpstack-application and then continuously write to a file 767 + 768 +[[image:image-20221012174220-2.png]] 769 + 770 + 771 +[[image:image-20221012184655-3.png||height="395" width="1049"]] 772 + 773 + 774 +**Each message is continuously logged to a specified file** 775 + 776 +[[image:image-20221012174352-3.png]] 777 + 778 + 779 +(% style="color:blue" %)**//2). MQTT Sub//** 780 + 781 +If you don't want to store the information via node-red, you can get the output via the subscribe command. 782 + 783 + 784 +**If connecting from the same machine, you can use the following command to receive data:** 785 + 786 +(% class="box infomessage" %) 497 497 ((( 788 +**mosquitto_sub -h localhost -t "application/#" -v** 789 +))) 790 + 791 + 792 +(% style="color:blue" %)**Different host** 793 + 794 +(% class="box infomessage" %) 795 +((( 796 +**mosquitto_sub -h IPADDRESS -p 8883 ~-~-insecure ~-~-cafile ca.pem ~-~-cert cert.pem ~-~-key key.pem -t "application/#" -v** 797 +))) 798 + 799 +[[image:image-20221012173639-1.png]] 800 + 801 + 802 += 9. Trouble Shooting = 803 + 804 +== 9.1 MIC Mismatch or MIC Failed == 805 + 806 + 807 +((( 498 498 When the device is registered or the device is working normally, the problem of MIC mismatch and MIC failed occurs. 499 499 ))) 500 500 501 501 ((( 502 502 Under normal circumstances, users need to change the APPKEY to solve this problem. 813 + 814 + 503 503 )))
- 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