<
edited by Kilight Cao
on 2023/04/01 11:48
on 2023/04/01 11:48
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Attachments (0 modified, 0 added, 4 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. Xiaoling1 +XWiki.Kilight - Content
-
... ... @@ -26,23 +26,22 @@ 26 26 27 27 (% class="box infomessage" %) 28 28 ((( 29 - **wget [[http:~~/~~/dragino.vicp.io:6080/bacnet/dragino-bacnet-apps-hp0c-2023-03-01.deb>>url:http://dragino.vicp.io:6080/bacnet/dragino-bacnet-apps-hp0c-2023-03-01.deb]]30 -dpkg -i dragino-bacnet-apps-hp0c-2023-03-01.deb **29 +wget [[http:~~/~~/dragino.vicp.io:6080/bacnet/dragino-bacnet-apps-hp0c-2023-03-01.deb>>url:http://dragino.vicp.io:6080/bacnet/dragino-bacnet-apps-hp0c-2023-03-01.deb]] 30 +dpkg -i dragino-bacnet-apps-hp0c-2023-03-01.deb 31 31 ))) 32 32 33 33 [[image:image-20230401114036-1.png]] 34 34 35 35 36 -== 1.3 Configure BACnet == 36 +=== 1.3 Configure BACnet === 37 37 38 - 39 39 After BACnet is installed, run commands to modify BACnet configurations 40 40 41 - (% style="color:red" %)**Note: device_port and bacnet_ip_port are not set to the same**40 +**Note: device_port and bacnet_ip_port are not set to the same** 42 42 43 43 (% class="box infomessage" %) 44 44 ((( 45 - **nano /etc/config/bacnet**44 +nano /etc/config/bacnet 46 46 ))) 47 47 48 48 **Examples:** ... ... @@ -73,10 +73,8 @@ 73 73 option device_port '47913' 74 74 ))) 75 75 75 +=== 1.4 Run BACnet === 76 76 77 -== 1.4 Run BACnet == 78 - 79 - 80 80 After the configuration is complete, run the following command to start BACnet, The following are two ways to run BACnet: 81 81 82 82 (1) With /etc/config/bacnet configuration, and to run the registration server on the current machine, start it with the following command (configure the /etc/config/bacnet file correctly): ... ... @@ -83,15 +83,14 @@ 83 83 84 84 (% class="box infomessage" %) 85 85 ((( 86 - **bacserver -c -s**83 +bacserver -c -s 87 87 ))) 88 88 89 - 90 90 (2) Without /etc/config/bacnet, and to run the registration server on the current machine, start it with the following command: 91 91 92 92 (% class="box infomessage" %) 93 93 ((( 94 - **bacserver -s -a 10.130.2.80 -p 47808**90 +bacserver -s -a 10.130.2.80 -p 47808 95 95 ))) 96 96 97 97 This command simulates two devices, with device IDs 47910 and 47911 ... ... @@ -100,111 +100,64 @@ 100 100 101 101 (% class="box infomessage" %) 102 102 ((( 103 - **bacserver -h**99 +bacserver -h 104 104 ))) 105 105 106 106 [[image:image-20230401114458-2.png]] 107 107 104 +=== 1.5 Read devices and modify devices === 108 108 109 -== 1.5 Read devices and modify devices == 110 - 111 - 112 112 Enter baccli -h to output help 113 113 114 114 (% class="box infomessage" %) 115 115 ((( 116 - **baccli -h**110 +baccli -h 117 117 ))) 118 118 113 + 119 119 [[image:image-20230401114641-3.png]] 120 120 121 - 122 122 **Examples:** 123 123 124 - **(1) List the current Bacnet devices:**118 +(1) List the current Bacnet devices: 125 125 126 126 (% class="box infomessage" %) 127 127 ((( 128 - **baccli -l -a**122 +baccli -l -a 129 129 ))) 130 130 125 + 131 131 [[image:image-20230401114653-4.png]] 132 132 128 +(2) List device information based on device ID: 133 133 134 -**(2) List device information based on device ID:** 135 - 136 136 (% class="box infomessage" %) 137 137 ((( 138 - **baccli -l -i id**132 +baccli -l -i id 139 139 ))) 140 140 135 + 141 141 [[image:image-20230401114706-5.png]] 142 142 138 +(3) List the device details by device ID: 143 143 144 -**(3) List the device details by device ID:** 145 - 146 146 (% class="box infomessage" %) 147 147 ((( 148 - **baccli -l -v -i id**142 +baccli -l -v -i id 149 149 ))) 150 150 145 +(4) Modify the specified attribute value based on the device ID: 151 151 152 -**(4) Modify the specified attribute value based on the device ID:** 153 - 154 154 (% class="box infomessage" %) 155 155 ((( 156 - **baccli -i id -p prop -w value**149 +baccli -i id -p prop -w value 157 157 ))) 158 158 152 + 159 159 [[image:image-20230401114720-6.png]] 160 160 161 - 162 -**(5) Check the results using the BACnet tool** 163 - 164 164 The user can check the data of the device by using the **[[yabe BACnet tool>>https://sourceforge.net/projects/yetanotherbacnetexplorer/]]** 165 165 166 166 [[image:image-20230401114729-7.png||height="521" width="1077"]] 167 167 168 - 169 -== 1.6 Example: How to transfer data to BACnet via LoRaWAN in LPS8v2 == 170 - 171 - 172 -LPS8v2 includes a local TTN Server and Node-Red. This example shows how to configure LHT65N to use with the BACnet. This example assumes users already have: 173 - 174 -* LHT65N register on LPS8v2 Built-In TTN server already 175 - 176 -* The user is able to see the data on the built-in TTN server device page. 177 - 178 -* The LPS8v2 already has BACnet installed 179 - 180 -Below are the steps to plot the sensor data on LPS8v2 BACnet. 181 - 182 - 183 -=== 1.6.1 Link BACnet to Local TTN === 184 - 185 - 186 -Users can download the Node-Red decoder from this link and import it into the Node-Red platform: **[[attach:LHT65N_TTN_to_BACnet.json||target="_blank"]]** 187 - 188 -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]]** 189 - 190 - 191 -After importing the Input Flow is complete, the user needs to edit the MQTT in the node 192 - 193 -Users can edit the MQTT node red color by referring to the following link: 194 - 195 -[[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Notes%20for%20TTN/#H6.3A0Example:UseLocalServerTTNandNode-RedinLPS8v2>>http://wiki.dragino.com/xwiki/bin/view/Main/Notes%20for%20TTN/#H6.3A0Example:UseLocalServerTTNandNode-RedinLPS8v2]] 196 - 197 -[[image:image-20230401144951-10.png||height="814" width="1223"]] 198 - 199 - 200 -=== 1.6.2 Check result === 201 - 202 - 203 -[[image:image-20230401142357-8.png||height="677" width="1232"]] 204 - 205 - 206 -The BACnet tool displays the temperature, humidity and battery voltage of the LHT65N 207 - 208 -[[image:image-20230401144525-9.png||height="487" width="1237"]] 209 - 210 210
- LHT65N_TTN_to_BACnet.json
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.Kilight - Size
-
... ... @@ -1,1 +1,0 @@ 1 -8.2 KB - Content
-
... ... @@ -1,334 +1,0 @@ 1 -[ 2 - { 3 - "id": "b356382079d5c6a0", 4 - "type": "tab", 5 - "label": "TTN to BACnet", 6 - "disabled": false, 7 - "info": "", 8 - "env": [] 9 - }, 10 - { 11 - "id": "f66b1b60040f4067", 12 - "type": "template", 13 - "z": "b356382079d5c6a0", 14 - "name": "LHT65N-1 10001 battery", 15 - "field": "payload", 16 - "fieldType": "msg", 17 - "format": "handlebars", 18 - "syntax": "mustache", 19 - "template": "baccli -i 10001 -p battery -w {{payload}}\n", 20 - "output": "str", 21 - "x": 590, 22 - "y": 100, 23 - "wires": [ 24 - [ 25 - "d9290c0c62e0f7c0", 26 - "cc39d099b49cf9fe" 27 - ] 28 - ] 29 - }, 30 - { 31 - "id": "d9290c0c62e0f7c0", 32 - "type": "exec", 33 - "z": "b356382079d5c6a0", 34 - "command": "", 35 - "addpay": "payload", 36 - "append": "", 37 - "useSpawn": "false", 38 - "timer": "", 39 - "winHide": false, 40 - "oldrc": false, 41 - "name": "EXEC", 42 - "x": 1050, 43 - "y": 220, 44 - "wires": [ 45 - [ 46 - "af8dbd68b05f6313" 47 - ], 48 - [ 49 - "af8dbd68b05f6313" 50 - ], 51 - [] 52 - ] 53 - }, 54 - { 55 - "id": "cc39d099b49cf9fe", 56 - "type": "debug", 57 - "z": "b356382079d5c6a0", 58 - "name": "Full Script", 59 - "active": true, 60 - "tosidebar": true, 61 - "console": false, 62 - "tostatus": false, 63 - "complete": "payload", 64 - "targetType": "msg", 65 - "statusVal": "", 66 - "statusType": "auto", 67 - "x": 1040, 68 - "y": 100, 69 - "wires": [] 70 - }, 71 - { 72 - "id": "af8dbd68b05f6313", 73 - "type": "debug", 74 - "z": "b356382079d5c6a0", 75 - "name": "output", 76 - "active": true, 77 - "tosidebar": true, 78 - "console": false, 79 - "tostatus": false, 80 - "complete": "payload", 81 - "targetType": "msg", 82 - "statusVal": "", 83 - "statusType": "auto", 84 - "x": 1210, 85 - "y": 220, 86 - "wires": [] 87 - }, 88 - { 89 - "id": "866c4581bd0de190", 90 - "type": "mqtt in", 91 - "z": "b356382079d5c6a0", 92 - "name": "LHT65N-1", 93 - "topic": "v3/5000000@ttn/devices/eui-d0a7a83cc714b96f/up", 94 - "qos": "0", 95 - "datatype": "auto-detect", 96 - "broker": "d1413e55f801d787", 97 - "nl": false, 98 - "rap": true, 99 - "rh": 0, 100 - "inputs": 0, 101 - "x": 120, 102 - "y": 140, 103 - "wires": [ 104 - [ 105 - "09bb2ca9b68d9137", 106 - "3b08d85a66d0c58a" 107 - ] 108 - ] 109 - }, 110 - { 111 - "id": "09bb2ca9b68d9137", 112 - "type": "function", 113 - "z": "b356382079d5c6a0", 114 - "name": "function 3", 115 - "func": "var data = msg.payload\nvar bat = data[\"uplink_message\"][\"decoded_payload\"][\"BatV\"]\nvar tem = data[\"uplink_message\"][\"decoded_payload\"][\"TempC_DS\"]\nvar tem2 = data[\"uplink_message\"][\"decoded_payload\"][\"TempC_SHT\"]\nvar hum = data[\"uplink_message\"][\"decoded_payload\"][\"Hum_SHT\"]\nvar data2 = {payload: bat},data3={payload:tem},data4={payload:tem2},data5={payload:hum}\n//return data2\nreturn[data2,data3,data4,data5]", 116 - "outputs": 4, 117 - "noerr": 0, 118 - "initialize": "", 119 - "finalize": "", 120 - "libs": [], 121 - "x": 340, 122 - "y": 200, 123 - "wires": [ 124 - [ 125 - "f66b1b60040f4067", 126 - "0cf8a6fc743b8619" 127 - ], 128 - [ 129 - "2f48e806d3e4bd5e", 130 - "0cf8a6fc743b8619" 131 - ], 132 - [ 133 - "0cf8a6fc743b8619", 134 - "15c7503d379cb571" 135 - ], 136 - [ 137 - "700c1799a8cd28a1", 138 - "0cf8a6fc743b8619" 139 - ] 140 - ] 141 - }, 142 - { 143 - "id": "0cf8a6fc743b8619", 144 - "type": "debug", 145 - "z": "b356382079d5c6a0", 146 - "name": "debug 5", 147 - "active": true, 148 - "tosidebar": true, 149 - "console": false, 150 - "tostatus": false, 151 - "complete": "payload", 152 - "targetType": "msg", 153 - "statusVal": "", 154 - "statusType": "auto", 155 - "x": 340, 156 - "y": 80, 157 - "wires": [] 158 - }, 159 - { 160 - "id": "3b08d85a66d0c58a", 161 - "type": "debug", 162 - "z": "b356382079d5c6a0", 163 - "name": "debug 6", 164 - "active": true, 165 - "tosidebar": true, 166 - "console": false, 167 - "tostatus": false, 168 - "complete": "false", 169 - "statusVal": "", 170 - "statusType": "auto", 171 - "x": 160, 172 - "y": 240, 173 - "wires": [] 174 - }, 175 - { 176 - "id": "2f48e806d3e4bd5e", 177 - "type": "template", 178 - "z": "b356382079d5c6a0", 179 - "name": "LHT65N-1 10001 temp1", 180 - "field": "payload", 181 - "fieldType": "msg", 182 - "format": "handlebars", 183 - "syntax": "mustache", 184 - "template": "baccli -i 10001 -p temp1 -w {{payload}}\n", 185 - "output": "str", 186 - "x": 590, 187 - "y": 160, 188 - "wires": [ 189 - [ 190 - "046eca291b77ebd3" 191 - ] 192 - ] 193 - }, 194 - { 195 - "id": "15c7503d379cb571", 196 - "type": "template", 197 - "z": "b356382079d5c6a0", 198 - "name": "LHT65N-1 10001 temp2", 199 - "field": "payload", 200 - "fieldType": "msg", 201 - "format": "handlebars", 202 - "syntax": "mustache", 203 - "template": "baccli -i 10001 -p temp2 -w {{payload}}", 204 - "output": "str", 205 - "x": 590, 206 - "y": 220, 207 - "wires": [ 208 - [ 209 - "56c2605dd962c0d4" 210 - ] 211 - ] 212 - }, 213 - { 214 - "id": "56c2605dd962c0d4", 215 - "type": "delay", 216 - "z": "b356382079d5c6a0", 217 - "name": "", 218 - "pauseType": "delay", 219 - "timeout": "4", 220 - "timeoutUnits": "seconds", 221 - "rate": "1", 222 - "nbRateUnits": "1", 223 - "rateUnits": "second", 224 - "randomFirst": "1", 225 - "randomLast": "5", 226 - "randomUnits": "seconds", 227 - "drop": false, 228 - "allowrate": false, 229 - "outputs": 1, 230 - "x": 800, 231 - "y": 220, 232 - "wires": [ 233 - [ 234 - "d9290c0c62e0f7c0" 235 - ] 236 - ] 237 - }, 238 - { 239 - "id": "046eca291b77ebd3", 240 - "type": "delay", 241 - "z": "b356382079d5c6a0", 242 - "name": "", 243 - "pauseType": "delay", 244 - "timeout": "2", 245 - "timeoutUnits": "seconds", 246 - "rate": "1", 247 - "nbRateUnits": "1", 248 - "rateUnits": "second", 249 - "randomFirst": "1", 250 - "randomLast": "5", 251 - "randomUnits": "seconds", 252 - "drop": false, 253 - "allowrate": false, 254 - "outputs": 1, 255 - "x": 800, 256 - "y": 160, 257 - "wires": [ 258 - [ 259 - "d9290c0c62e0f7c0" 260 - ] 261 - ] 262 - }, 263 - { 264 - "id": "700c1799a8cd28a1", 265 - "type": "template", 266 - "z": "b356382079d5c6a0", 267 - "name": "LHT65N-1 10001 humidity", 268 - "field": "payload", 269 - "fieldType": "msg", 270 - "format": "handlebars", 271 - "syntax": "mustache", 272 - "template": "baccli -i 10001 -p humidity -w {{payload}}", 273 - "output": "str", 274 - "x": 590, 275 - "y": 280, 276 - "wires": [ 277 - [ 278 - "9a8f158109d93abb" 279 - ] 280 - ] 281 - }, 282 - { 283 - "id": "9a8f158109d93abb", 284 - "type": "delay", 285 - "z": "b356382079d5c6a0", 286 - "name": "", 287 - "pauseType": "delay", 288 - "timeout": "6", 289 - "timeoutUnits": "seconds", 290 - "rate": "1", 291 - "nbRateUnits": "1", 292 - "rateUnits": "second", 293 - "randomFirst": "1", 294 - "randomLast": "5", 295 - "randomUnits": "seconds", 296 - "drop": false, 297 - "allowrate": false, 298 - "outputs": 1, 299 - "x": 800, 300 - "y": 280, 301 - "wires": [ 302 - [ 303 - "d9290c0c62e0f7c0" 304 - ] 305 - ] 306 - }, 307 - { 308 - "id": "d1413e55f801d787", 309 - "type": "mqtt-broker", 310 - "name": "", 311 - "broker": "eu1.cloud.thethings.network", 312 - "port": "1883", 313 - "clientid": "", 314 - "autoConnect": true, 315 - "usetls": false, 316 - "protocolVersion": "4", 317 - "keepalive": "60", 318 - "cleansession": true, 319 - "birthTopic": "", 320 - "birthQos": "0", 321 - "birthPayload": "", 322 - "birthMsg": {}, 323 - "closeTopic": "", 324 - "closeQos": "0", 325 - "closePayload": "", 326 - "closeMsg": {}, 327 - "willTopic": "", 328 - "willQos": "0", 329 - "willPayload": "", 330 - "willMsg": {}, 331 - "userProps": "", 332 - "sessionExpiry": "" 333 - } 334 -]
- image-20230401142357-8.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.Kilight - Size
-
... ... @@ -1,1 +1,0 @@ 1 -134.1 KB - Content
- image-20230401144525-9.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.Kilight - Size
-
... ... @@ -1,1 +1,0 @@ 1 -47.4 KB - Content
- image-20230401144951-10.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.Kilight - Size
-
... ... @@ -1,1 +1,0 @@ 1 -78.2 KB - Content