Changes for page Connect Devices to ThingsEye
Last modified by Alec Chen on 2025/11/26 17:10
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Attachments (0 modified, 0 added, 6 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. Alec1 +XWiki.hera - Content
-
... ... @@ -1,490 +2,334 @@ 1 -(% _mstvisible="1" %) 2 2 3 3 4 -(% _mstvisible="1" %) 5 -(% _msthash="777" _msttexthash="303537" _mstvisible="2" %)**Table of Contents:** 3 +**Table of Contents:** 6 6 7 7 {{toc/}} 8 8 9 9 10 -(% _mstvisible="1" %) 11 -= (% _msthash="757" _msttexthash="149552" _mstvisible="2" %)1. Overview(%%) = 8 += 1. Overview = 12 12 13 -(% _msthash="756" _msttexthash="7978490" _mstvisible="1" %) 14 -This instructions will show you how to connect a device that has been registered to the server to the Thingseye platform. 10 +The instructions in this chapter will show you how to connect a device that has been registered to the server to the Thingseye platform. 15 15 12 += 2. UDP Procotol ~-~- Directly Connection = 16 16 17 -= (% _msthash="755"_msttexthash="40707030" _mstvisible="2" %)2. UDPProtocol – Direct Connection(%%)=14 +== 2.1 UDP Interface == 18 18 19 -(% _msthash="755" _msttexthash="40707030" _mstvisible="2" %)2.1 UDP Interface 20 -**Server Address: server1.thingseye.io 21 -Port: 11560** 22 -Data sent to the above UDP interface will not directly enter the client's database. 16 +* Server Address: server1.thingseye.io 17 +* Port: 11560 23 23 24 - (%_msthash="755"_msttexthash="40707030"_mstvisible="2" %)Fordetailedinformationonhowtoforwarddatato clients,please contact the ThingsEyeteam.19 +The data sent to above UDP interface will not go directly to client's database. 25 25 26 - (% _msthash="755" _msttexthash="40707030" _mstvisible="2" %)Note: Currently, UDPconnections require port forwarding. Please contacttheThingsEye teambeforeconnectingand providethemwithyour device's IMEI.21 +Please contact ThingsEye team for detail how to forward data to client. 27 27 23 +== 2.2 Test UDP Interface via Socket Tool == 28 28 29 -(% _mstvisible="1" %) 30 ----- 25 +Download the UDP Test Tool from: [[https:~~/~~/sourceforge.net/projects/sockettest/ >>https://sourceforge.net/projects/sockettest/]]. Run this tool, and input the server address and UDP port as below and click send. 31 31 32 - == (% _msthash="748" _msttexthash="55449407" _mstvisible="2" %)2.2 Testingwith Dragino NB Device(%%) ==27 +[[image:1728566363151-470.png]] 33 33 34 - ===(%_msthash="748"_msttexthash="55449407"_mstvisible="2"%)2.2.1 Configuringthe NB-IoTEndNode(%%)===29 +In server side, Tenant Administrator can check this in Tenant UDP Server location. 35 35 36 - (% _msthash="748" _msttexthash="55449407" _mstvisible="2" %)Thedevicehere is an S31-NB,andithas been configured as follows:31 +[[image:1728362834430-749.png||height="510" width="1667"]] 37 37 38 - (%_msthash="748"_msttexthash="55449407"_mstvisible="2"%)**Set tousethe ThingsEyeUDPserver:AT+SERVADDR=server1.thingseye.io,11560**33 +Click and see the debug info as below: 39 39 40 - (% _msthash="748" _msttexthash="55449407" _mstvisible="2" %)**Use UDP uplink and JSON protocol: AT+PRO=2,5**35 +[[image:1728363020699-203.png]] 41 41 42 - (%_msthash="748"_msttexthash="55449407"_mstvisible="2"%)Equippedwithan NB-IoTcardtoaccess theNB-IoTnetwork.37 +We can see the message arrives, but it shows ERROR because the message doesn't follow with the UDP Server format. 43 43 44 - (%_msthash="748"_msttexthash="55449407"_mstvisible="2"%)The S31-NB'scellular moduleIMEIis:86366306278948339 +== 2.3 Test with Dragino NB device == 45 45 46 -(% class="wikigeneratedid" _mstvisible="1" id="H2.2.268C067E54E0A884C6570636E" %) 47 -(% _msthash="741" _msttexthash="30173117" _mstvisible="2" %)2.2.2 Check Uplink Data 48 -Enable Debug Module 41 +=== 2.3.1 Configure NB-IoT End Node === 49 49 50 -(% _mstvisible="1" %) 51 -(% _mstvisible="3" %)[[image:1758762334133-608.png||_mstalt="294801" _msthash="584" _mstvisible="5" height="494" width="1003"]] 43 +Device here is **[[S31-NB>>https://www.dragino.com/products/temperature-humidity-sensor/item/288-s31-nb-s31b-nb.html]]** : and have been configure below 52 52 53 -(% _mstvisible="1" %) 54 ----- 45 +* Set to use ThingsEye UDP server: **AT+SERVADDR=server1.thingseye.io,11560** 46 +* Use UDP Uplink & Json protocol:** AT+PRO=2,5** 47 +* Equip with a NB-IoT SIM Card to access to NB-IoT Network. 55 55 56 -(% _msthash="739" _msttexthash="156775723" _mstvisible="1" %) 57 -After reactivating the S31-NB, we can see it in the debug window: 49 +The S31-NB's cellular module has the IMEI: **863663062789483** 58 58 59 -(% _mstvisible="1" %) 60 -(% _mstvisible="3" %)[[image:1758762371290-726.png||_mstalt="296088" _msthash="586" _mstvisible="5" height="528" width="1005"]] 51 +=== 2.3.2 Check Uplink Data === 61 61 62 -(% _mstvisible="1" %) 63 -(% _mstvisible="3" %)[[image:1728378218744-800.png||_mstalt="295269" _msthash="588" _mstvisible="5" height="431" width="1003"]] 53 +Re-activate the S31-NB, and we can see it in the debug window: 64 64 65 -- ---55 +[[image:1728378218744-800.png||height="431" width="1003"]] 66 66 67 -=== 2. 2.2AutomaticDeviceCreation===57 +=== 2.3.3 Auto-Create Device === 68 68 69 -(% class="wikigeneratedid" %) 70 -The default tenant UDP server is already configured to decode Dragino-NB/-CB NB-IoT nodes. Therefore, each end node sends data to the server. The tenant will automatically create devices on the server. 59 +The default **Tenant UDP Server** has already been configured to decode the Dragino -NB / -CB NB-IoT node. So once each end node sends a data to server. Tenant will auto create the device in the server. 71 71 72 -(% _mstvisible="1" %) 73 -(% _mstvisible="3" %)[[image:1728378968101-683.png||_mstalt="297154" _msthash="590" _mstvisible="5" height="210" width="1005"]] 61 +[[image:1728378968101-683.png||height="273" width="1307"]] 74 74 75 -(% _mstvisible="1" %) 76 -(% _mstvisible="3" %)[[image:1728379050044-764.png||_mstalt="295282" _msthash="592" _mstvisible="5" height="326" width="1009"]] 63 +[[image:1728379050044-764.png||height="424" width="1312"]] 77 77 78 78 79 -(% _mstvisible="1" %) 80 ----- 66 +**So we have this device in the Tenant Device List. The next step will be how to use these value to make a nice dashboard for user's application.** 81 81 82 -(% _mstvisible="1" %) 83 -= (% _msthash="736" _msttexthash="622947" _mstvisible="2" %)3. Connect to The Things Stack(%%) = 68 += 3. Connect to The Things Stack = 84 84 85 -(% _mstvisible="1" %) 86 -== (% _msthash="735" _msttexthash="410280" _mstvisible="2" %)3.1 Network Structure(%%) == 70 +== 3.1 Network Structure == 87 87 88 -(% _msthash="734" _msttexthash="14835652" _mstvisible="1" %) 89 89 The network diagram below illustrates the connection between the devices and The Things Stack, as well as how the data can be integrated with the ThingsEye IoT platform. 90 90 91 -(% _mstvisible="1" %) 92 -(% _mstvisible="3" %)[[image:1732679444539-853.jpg||_mstalt="296933" _msthash="594" _mstvisible="5" height="388" width="1452"]] 74 +[[image:1732679444539-853.jpg||height="388" width="1452"]] 93 93 94 -(% _mstvisible="1" %) 95 -== (% _msthash="733" _msttexthash="1191008" _mstvisible="2" %)3.2 Creat Integration for The Things Stack.(%%) == 76 +== 3.2 Creat Integration for The Things Stack. == 96 96 97 -(% class="lead" _msthash="732" _msttexthash="255775" _mstvisible="1"%)78 +(% class="lead" %) 98 98 Add Integration 99 99 100 -(% _mstvisible="1" %) 101 -(% _mstvisible="3" %)[[image:1728535775119-971.png||_mstalt="297661" _msthash="596" _mstvisible="5" height="423" width="1007"]] 81 +[[image:1728535775119-971.png||height="456" width="1087"]] 102 102 103 103 104 -(% class="lead" _msthash="731" _msttexthash="448994" _mstvisible="1"%)84 +(% class="lead" %) 105 105 Choose Connection Type 106 106 107 -(% _mstvisible="1" %) 108 -(% _mstvisible="3" %)[[image:1728535857345-950.png||_mstalt="297154" _msthash="598" _mstvisible="5" height="257" width="403"]] 87 +[[image:1728535857345-950.png]] 109 109 110 110 111 -(% class="lead" _msthash="730" _msttexthash="762996" _mstvisible="1"%)90 +(% class="lead" %) 112 112 Input Uplink Data Converter Code 113 113 114 -(% _mstvisible="1" %) 115 -(% _mstvisible="3" %)[[image:1728535941851-388.png||_mstalt="297856" _msthash="600" _mstvisible="5" height="466" width="398"]] 93 +[[image:1728535941851-388.png||height="466" width="398"]] 116 116 117 -(% _msthash="729" _msttexthash="16454490" _mstvisible="1" %) 118 118 Demo JavaScript Code: [[https:~~/~~/raw.githubusercontent.com/ThingsEye-io/te-platform/refs/heads/main/Data%20Converters/The_Things_Network_MQTT_Uplink_Converter.js >>https://raw.githubusercontent.com/ThingsEye-io/te-platform/refs/heads/main/Data%20Converters/The_Things_Network_MQTT_Uplink_Converter.js]] 119 119 120 120 121 -(% class="lead" _msthash="728" _msttexthash="532480" _mstvisible="1"%)98 +(% class="lead" %) 122 122 Input Downlink Converter 123 123 124 -(% _mstvisible="1" %) 125 -(% _mstvisible="3" %)[[image:1728536142721-488.png||_mstalt="296127" _msthash="602" _mstvisible="5" height="470" width="407"]] 101 +[[image:1728536142721-488.png||height="470" width="407"]] 126 126 127 -(% _msthash="727" _msttexthash="19064695" _mstvisible="1" %) 128 128 Example Javascript Code as below: [[https:~~/~~/raw.githubusercontent.com/ThingsEye-io/te-platform/refs/heads/main/Data%20Converters/The_Things_Network_MQTT_Downlink_Converter.js>>https://raw.githubusercontent.com/ThingsEye-io/te-platform/refs/heads/main/Data%20Converters/The_Things_Network_MQTT_Downlink_Converter.js]] 129 129 130 130 131 -(% class="lead" _msthash="726" _msttexthash="1724853" _mstvisible="1"%)106 +(% class="lead" %) 132 132 Set up Connection to The Things Network application 133 133 134 -(% _mstvisible="1" %) 135 -(% _mstvisible="3" %)[[image:1728536305503-380.png||_mstalt="293254" _msthash="604" _mstvisible="5" height="431" width="1019"]] 109 +[[image:1728536305503-380.png||height="510" width="1206"]] 136 136 137 137 138 138 139 -(% class="lead" _msthash="725" _msttexthash="851097" _mstvisible="1"%)113 +(% class="lead" %) 140 140 Test Connection & Add iIntegration 141 141 142 -(% _mstvisible="1" %) 143 -(% _mstvisible="3" %)[[image:1728536374214-962.png||_mstalt="295893" _msthash="606" _mstvisible="5" height="380" width="1024"]] 116 +[[image:1728536374214-962.png]] 144 144 145 -(% _msthash="724" _msttexthash="1177579" _mstvisible="1" %) 146 146 After add , we can see the integration here: 147 147 148 -(% _mstvisible="1" %) 149 -(% _mstvisible="3" %)[[image:1728536420275-153.png||_mstalt="293748" _msthash="608" _mstvisible="5" height="152" width="1026"]] 120 +[[image:1728536420275-153.png||height="208" width="1404"]] 150 150 151 151 152 -(% _mstvisible="1" %) 153 -== (% _msthash="723" _msttexthash="213447" _mstvisible="2" %)3.3 Test Uplink(%%) == 123 +== 3.3 Test Uplink == 154 154 155 -(% _msthash="722" _msttexthash="7855835" _mstvisible="1" %) 156 156 We can use Simulate Uplink to simulate an uplink in the things stack. Then we should be able to see the message in ThingsEye 157 157 158 -(% _mstvisible="1" %) 159 -(% _mstvisible="3" %)[[image:1728536524638-768.png||_mstalt="298870" _msthash="610" _mstvisible="5" height="473" width="1028"]] 127 +[[image:1728536524638-768.png||height="493" width="1071"]] 160 160 161 161 162 -(% _mstvisible="1" %) 163 -(% _mstvisible="3" %)[[image:1728536541040-814.png||_mstalt="293215" _msthash="612" _mstvisible="5" height="424" width="1026"]] 130 +[[image:1728536541040-814.png]] 164 164 132 += 4.Connect chirpstack to Thingseye by way of MQTT = 165 165 166 -(% _mstvisible="1" %) 167 ----- 134 +* **How to connect chirpstack to Thingseye by way of MQTT? The following tutorial will show you** 168 168 169 -(% _mstvisible="1" %) 170 -= (% _msthash="721" _msttexthash="1472211" _mstvisible="2" %)4.Connect chirpstack to Thingseye by way of MQTT(%%) = 136 +== 4.1 Network Structure == 171 171 172 -(% _mstvisible="1" %) 173 -* (% _msthash="720" _msttexthash="4693741" _mstvisible="3" %)**How to connect chirpstack to Thingseye by way of MQTT? The following tutorial will show you** 174 - 175 -(% _mstvisible="1" %) 176 -== (% _msthash="719" _msttexthash="410371" _mstvisible="2" %)4.1 Network Structure(%%) == 177 - 178 -(% _msthash="718" _msttexthash="14117480" _mstvisible="1" %) 179 179 The network diagram below illustrates the connection between the devices andchirpstack, as well as how the data can be integrated with the ThingsEye IoT platform. 180 180 181 -(% _mstvisible="1" %) 182 -(% _mstvisible="3" %)[[image:1732679647697-982.jpg||_mstalt="299884" _msthash="614" _mstvisible="5" height="399" width="1492"]] 140 +[[image:1732679647697-982.jpg||height="399" width="1492"]] 183 183 184 -(% _mstvisible="1" %) 185 -== (% _msthash="717" _msttexthash="897286" _mstvisible="2" %)4.2 Thingseye adds MQTT integration(%%) == 142 +== 4.2 Thingseye adds MQTT integration == 186 186 187 -(% _msthash="716" _msttexthash="15186782" _mstvisible="1" %) 188 188 Go to the Integrations page in the Integrations center section. Click the plus button to start adding a new integration. Select the type "MQTT" integration and click "Next"; 189 189 190 -(% _mstvisible="1" %) 191 -(% _mstvisible="3" %)[[image:1758762634175-353.png||_mstalt="295893" _msthash="616" _mstvisible="5" height="783" width="1020"]] 146 +[[image:图片1.png]] 192 192 193 -(% _mstvisible="1" %) 194 -== (% _msthash="715" _msttexthash="1329445" _mstvisible="2" %)4.3 Add an uplink and downlink data converter(%%) == 148 +== 4.3 Add an uplink and downlink data converter == 195 195 196 -(% _msthash="714" _msttexthash="4516408" _mstvisible="1" %) 197 -In the function decoder field, specify the uplink script to parse and transform the data. 150 +In the function decoder field, specify the script to parse and transform the data. 198 198 199 -(% _mstvisible="1" %) 200 -(% _mstvisible="3" %)[[image:1758763061703-634.png||_mstalt="294671" _msthash="618" _mstvisible="5" height="783" width="1020"]] 152 +[[image:图片2.png]] 201 201 202 -(% _mstvisible="1" %) 203 -* (% _msthash="713" _msttexthash="24445408" _mstvisible="3" %)**Uplink——JavaScript:** 154 +* **Uplink——JavaScript:** 204 204 205 -(% _msthash="712" _msttexthash="792233" _mstvisible="1" %) 206 206 var data = decodeToJson(payload); 207 207 208 -(% _msthash="711" _msttexthash="1379794" _mstvisible="1" %) 209 209 var deviceName = data.deviceInfo.deviceName; 210 210 211 -(% _msthash="710" _msttexthash="1079247" _mstvisible="1" %) 212 212 var deviceType = data.applicationName; 213 213 214 -(% _msthash="709" _msttexthash="909376" _mstvisible="1" %) 215 215 var devEui = data.deviceInfo.devEui 216 216 217 -(% _msthash="708" _msttexthash="861510" _mstvisible="1" %) 218 218 var label = data.deviceInfo.devEui 219 219 220 -(% _msthash="707" _msttexthash="195442" _mstvisible="1" %) 221 221 var model = {}; 222 222 223 -(% _msthash="706" _msttexthash="435448" _mstvisible="1" %) 224 224 var data2 = data.object; 225 225 226 -(% _msthash="705" _msttexthash="326274" _mstvisible="1" %) 227 227 var flg = data.fPort 228 228 229 -(% _msthash="704" _msttexthash="380965" _mstvisible="1" %) 230 230 for (var key in data2) { 231 231 232 -(% _msthash="703" _msttexthash="43058977" _mstvisible="1" %) 233 233 ~/~/ 将属性名存入新对象中 234 234 235 -(% _msthash="702" _msttexthash="475553" _mstvisible="1" %) 236 236 model[key] = data2[key]; 237 237 238 -(% _mstvisible="1" %) 239 239 } 240 240 241 -(% _msthash="701" _msttexthash="757653" _mstvisible="1" %) 242 242 ~/~/var obj = {"devid":deviceName} 243 243 244 -(% _msthash="700" _msttexthash="183287" _mstvisible="1" %) 245 245 var result = { 246 246 247 -(% _msthash="699" _msttexthash="473265" _mstvisible="1" %) 248 248 deviceName: deviceName, 249 249 250 -(% _msthash="698" _msttexthash="489918" _mstvisible="1" %) 251 251 deviceType: deviceType, 252 252 253 -(% _msthash="697" _msttexthash="297271" _mstvisible="1" %) 254 254 telemetry: model, 255 255 256 -(% _msthash="696" _msttexthash="446498" _mstvisible="1" %) 257 257 groupName: "Case Study", 258 258 259 -(% _msthash="695" _msttexthash="217633" _mstvisible="1" %) 260 260 ~/~/label:label, 261 261 262 -(% _msthash="694" _msttexthash="685984" _mstvisible="1" %) 263 263 attributes:{"devEui":devEui, 264 264 265 -(% _msthash="693" _msttexthash="386308" _mstvisible="1" %) 266 266 ~/~/"timevalue":"test", 267 267 268 -(% _msthash="692" _msttexthash="551772" _mstvisible="1" %) 269 269 "inactivityTimeout":1260000 270 270 271 -(% _msthash="691" _msttexthash="894530" _mstvisible="1" %) 272 272 ~/~/ "High_humidity_alarm":"not set", 273 273 274 -(% _msthash="690" _msttexthash="1052753" _mstvisible="1" %) 275 275 ~/~/ "High_temperature_alarm":"not set", 276 276 277 -(% _msthash="689" _msttexthash="848783" _mstvisible="1" %) 278 278 ~/~/ "Low_humidity_alarm":"not set", 279 279 280 -(% _msthash="688" _msttexthash="1002833" _mstvisible="1" %) 281 281 ~/~/ "Low_temperature_alarm":"not set", 282 282 283 -(% _msthash="687" _msttexthash="773682" _mstvisible="1" %) 284 284 ~/~/ "Low_voltage_alarm":"not set" 285 285 286 -(% _msthash="686" _msttexthash="2381015" _mstvisible="1" %) 287 287 ~/~/"customerName": "Civionic Engineering & Consulting (2014) Inc." 288 288 289 -(% _mstvisible="1" %) 290 290 } 291 291 292 -(% _mstvisible="1" %) 293 293 }; 294 294 295 -(% _msthash="685" _msttexthash="937586" _mstvisible="1" %) 296 296 function decodeToString(payload) { 297 297 298 -(% _msthash="684" _msttexthash="1818154" _mstvisible="1" %) 299 299 return String.fromCharCode.apply(String, payload); 300 300 301 -(% _mstvisible="1" %) 302 302 } 303 303 304 -(% _msthash="683" _msttexthash="834496" _mstvisible="1" %) 305 305 function decodeToJson(payload) { 306 306 307 -(% _msthash="682" _msttexthash="850616" _mstvisible="1" %) 308 308 var str = decodeToString(payload); 309 309 310 -(% _msthash="681" _msttexthash="512044" _mstvisible="1" %) 311 311 var data = JSON.parse(str); 312 312 313 -(% _msthash="680" _msttexthash="173511" _mstvisible="1" %) 314 314 return data; 315 315 316 -(% _mstvisible="1" %) 317 317 } 318 318 319 -(% _msthash="679" _msttexthash="233116" _mstvisible="1" %) 320 320 return result; 321 321 322 -(% _mstvisible="1" %) 323 ----- 234 +[[image:图片3.png]] 324 324 325 -(% _msthash="678" _msttexthash="4743882" _mstvisible="1" %) 326 -In the function decoder field, specify the downlink script to parse and transform the data. 236 +* **Dowblink——JavaScript:** 327 327 328 -(% _mstvisible="1" %) 329 -(% _mstvisible="3" %)[[image:1758763019466-819.png||_mstalt="298311" _msthash="620" _mstvisible="5" height="787" width="1022"]] 330 - 331 -(% _mstvisible="1" %) 332 -* (% _msthash="677" _msttexthash="26632970" _mstvisible="3" %)**Dowblink——JavaScript:** 333 - 334 -(% _msthash="676" _msttexthash="2052284" _mstvisible="1" %) 335 335 ~/~/ Encode downlink data from incoming Rule Engine message 336 336 337 -(% _msthash="675" _msttexthash="1638546" _mstvisible="1" %) 338 338 ~/~/ msg - JSON message payload downlink message json 339 339 340 -(% _msthash="674" _msttexthash="3854773" _mstvisible="1" %) 341 341 ~/~/ msgType - type of message, for ex. 'ATTRIBUTES_UPDATED', 'POST_TELEMETRY_REQUEST', etc. 342 342 343 -(% _msthash="673" _msttexthash="3368742" _mstvisible="1" %) 344 344 ~/~/ metadata - list of key-value pairs with additional data about the message 345 345 346 -(% _msthash="672" _msttexthash="8087157" _mstvisible="1" %) 347 347 ~/~/ integrationMetadata - list of key-value pairs with additional data defined in Integration executing this converter 348 348 349 -(% _msthash="671" _msttexthash="199069" _mstvisible="1" %) 350 350 ~/~/ /~*~* Encoder ~*~*/ 351 351 352 -(% _msthash="670" _msttexthash="455715" _mstvisible="1" %) 353 353 ~/~/var data = {"value":99}; 354 354 355 -(% _msthash="669" _msttexthash="1757431" _mstvisible="1" %) 356 356 ~/~/ ~/~/ Process data from incoming message and metadata 357 357 358 -(% _msthash="668" _msttexthash="1852279" _mstvisible="1" %) 359 359 ~/~/ data.tempFreq = msg.temperatureUploadFrequency; 360 360 361 -(% _msthash="667" _msttexthash="1572038" _mstvisible="1" %) 362 362 ~/~/ data.humFreq = msg.humidityUploadFrequency; 363 363 364 -(% _msthash="666" _msttexthash="2049957" _mstvisible="1" %) 365 365 ~/~/ data.devSerialNumber = metadata['ss_serialNumber']; 366 366 367 -(% _msthash="665" _msttexthash="1576731" _mstvisible="1" %) 368 368 ~/~/ ~/~/ Result object with encoded downlink payload 369 369 370 -(% _msthash="664" _msttexthash="183287" _mstvisible="1" %) 371 371 var result = { 372 372 373 -(% _msthash="663" _msttexthash="2331082" _mstvisible="1" %) 374 374 ~/~/ downlink data content type: JSON, TEXT or BINARY (base64 format) 375 375 376 -(% _msthash="662" _msttexthash="322049" _mstvisible="1" %) 377 377 contentType: "TEXT", 378 378 379 -(% _msthash="661" _msttexthash="249210" _mstvisible="1" %) 380 380 ~/~/ downlink data 381 381 382 -(% _msthash="660" _msttexthash="1524952" _mstvisible="1" %) 383 383 data: msg.shared_value ,~/~/JSON.stringify(data), 384 384 385 -(% _msthash="659" _msttexthash="2147704" _mstvisible="1" %) 386 386 ~/~/ Optional metadata object presented in key/value format 387 387 388 -(% _msthash="658" _msttexthash="150189" _mstvisible="1" %) 389 389 metadata: { 390 390 391 -(% _msthash="657" _msttexthash="1241370" _mstvisible="1" %) 392 392 topic: '/test/down/'+metadata.deviceName 393 393 394 -(% _mstvisible="1" %) 395 395 } 396 396 397 -(% _mstvisible="1" %) 398 398 }; 399 399 400 -(% _msthash="656" _msttexthash="233116" _mstvisible="1" %) 401 401 return result; 402 402 403 -(% _mstvisible="1" %) 404 ----- 284 +== 4.4 Configure the connection == 405 405 406 -(% _mstvisible="1" %) 407 -== (% _msthash="655" _msttexthash="640094" _mstvisible="2" %)4.4 Configure the connection(%%) == 408 - 409 -(% _msthash="654" _msttexthash="1780675" _mstvisible="1" %) 410 410 Generate MQTT certificate integrated on chirpstack 411 411 412 -(% _msthash="653" _msttexthash="3723447" _mstvisible="1" %) 413 413 Chirpstack generates CA certificate, TLS certificate, and TLS key respectively 414 414 415 -(% _msthash="652" _msttexthash="5123092" _mstvisible="1" %) 416 416 They correspond to the CA certificate file, Certificate file, and Private key file on thingseye 417 417 418 -(% _mstvisible="1" %) 419 -(% _mstvisible="3" %)[[image:图片4.png||_mstalt="5131737" _msthash="622" _mstvisible="5" height="504" width="1016"]] 292 +[[image:图片4.png]] 420 420 421 -(% _mstvisible="1" %) 422 -(% _mstvisible="3" %)[[image:图片5.png||_mstalt="5131854" _msthash="624" _mstvisible="5" height="505" width="1017"]] 294 +[[image:图片5.png||height="630" width="1269"]] 423 423 424 -(% _mstvisible="1" %) 425 425 * Copy the contents of the certificates and paste them into the linked file below, a total of three certificates are required 426 426 427 -(% _mstvisible="1" %) 428 -(% _msthash="650" _msttexthash="44967858" _mstvisible="2" %)**Integrated Certificate File demo Download Address:** 298 +**Integrated Certificate File demo Download Address:** 429 429 430 -(% _mstvisible="1" %) 431 -[[https:~~/~~/github.com/ThingsEye-io/te-platform/tree/main/chirpstack>>https://github.com/ThingsEye-io/te-platform/tree/main/chirpstack||_msthash="649" _msttexthash="3132909" _mstvisible="2"]] 300 +[[https:~~/~~/github.com/ThingsEye-io/te-platform/tree/main/chirpstack>>https://github.com/ThingsEye-io/te-platform/tree/main/chirpstack]] 432 432 433 -(% _msthash="648" _msttexthash="4037631" _mstvisible="1" %) 434 434 Enter the server address Host: lns1.thingseye.io on the Connection configuration 435 435 436 -(% _msthash="647" _msttexthash="93873" _mstvisible="1" %) 437 437 Port: 8883 438 438 439 -(% _msthash="646" _msttexthash="380666" _mstvisible="1" %) 440 440 Credentials type: PEM 441 441 442 -(% _msthash="645" _msttexthash="880399" _mstvisible="1" %) 443 443 Upload the certificate and key file 444 444 445 -(% _mstvisible="1" %) 446 -(% _mstvisible="3" %)[[image:图片6.png||_mstalt="5131971" _msthash="626" _mstvisible="5" height="509" width="1026"]] 310 +[[image:图片6.png]] 447 447 448 -(% _mstvisible="1" %) 449 -(% _mstvisible="3" %)[[image:图片7.png||_mstalt="5132088" _msthash="628" _mstvisible="5" height="509" width="1025"]] 312 +[[image:图片7.png]] 450 450 451 -(% _mstvisible="1" %) 452 ----- 453 - 454 -(% _msthash="644" _msttexthash="472992" _mstvisible="1" %) 455 455 The default for Topic is: 456 456 457 -(% _msthash="643" _msttexthash="2223559" _mstvisible="1" %) 458 458 application/**chirpstack application id**/device/+/event/up 459 459 460 -(% _mstvisible="1" %) 461 -(% _mstvisible="3" %)[[image:图片8.png||_mstalt="5132205" _msthash="630" _mstvisible="5" height="508" width="1024"]] 318 +[[image:图片8.png]] 462 462 463 463 464 -(% class="wikigeneratedid" _mstvisible="1"%)465 - (% _mstvisible="3" %)[[image:屏幕截图 2024-11-25 095805.png||_mstalt="10831028" _msthash="632" _mstvisible="5" height="301" width="1024"]]321 +(% class="wikigeneratedid" %) 322 +[[image:屏幕截图 2024-11-25 095805.png||height="374" width="1272"]] 466 466 467 -(% _mstvisible="1" %) 468 ----- 324 +== 4.5 Check the connection == 469 469 470 -(% _mstvisible="1" %) 471 -== (% _msthash="642" _msttexthash="471978" _mstvisible="2" %)4.5 Check the connection(%%) == 326 +[[image:图片9.png]] 472 472 473 -(% _mstvisible="1" %) 474 -(% _mstvisible="3" %)[[image:图片9.png||_mstalt="5132322" _msthash="634" _mstvisible="5" height="509" width="1025"]] 328 +[[image:图片10.png]] 475 475 476 -(% _mstvisible="1" %) 477 -(% _mstvisible="3" %)[[image:图片10.png||_mstalt="5142449" _msthash="636" _mstvisible="5" height="509" width="1026"]] 330 += 5. Check Data Uplink Log = 478 478 479 - 480 -(% _mstvisible="1" %) 481 ----- 482 - 483 -(% _mstvisible="1" %) 484 -= (% _msthash="641" _msttexthash="418145" _mstvisible="2" %)5. Check Data Uplink Log(%%) = 485 - 486 -(% _msthash="640" _msttexthash="1422681" _mstvisible="1" %) 487 487 User can check the devices log in Intergration. 488 488 489 -(% _mstvisible="1" %) 490 -(% _mstvisible="3" %)[[image:1729562069134-315.png||_mstalt="294190" _msthash="638" _mstvisible="5" height="587" width="723"]] 334 +[[image:1729562069134-315.png||height="587" width="723"]]
- 1758762334133-608.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -161.4 KB - Content
- 1758762371290-726.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -215.2 KB - Content
- 1758762634175-353.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -213.8 KB - Content
- 1758762919291-489.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -209.4 KB - Content
- 1758763019466-819.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -227.9 KB - Content
- 1758763061703-634.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -222.0 KB - Content