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,505 +2,336 @@ 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 -(% _mstvisible="1" %) 18 -= (% _msthash="755" _msttexthash="40707030" _mstvisible="2" %)2. UDP Procotol——直接连接(%%) = 14 +== 2.1 UDP Interface == 19 19 20 - (%_mstvisible="1" %)21 - ==(% _msthash="754"_msttexthash="8267792" _mstvisible="2" %)2.1UDP接口(%%) ==16 +* Server Address: server1.thingseye.io 17 +* Port: 11560 22 22 23 -(% _mstvisible="1" %) 24 -* 服务器地址:server1.thingseye.io 25 -* 端口:11560 19 +The data sent to above UDP interface will not go directly to client's database. 26 26 27 -(% _msthash="751" _msttexthash="151236319" _mstvisible="1" %) 28 -发送到上方UDP接口的数据不会直接进入客户端数据库。 21 +Please contact ThingsEye team for detail how to forward data to client. 29 29 30 -(% _msthash="750" _msttexthash="169541242" _mstvisible="1" %) 31 -如需详细了解如何将数据转发给客户,请联系ThingsEye团队。 23 +**Note:Currently udp connections require port forwarding, please contact the ThingsEye team to inform them of your device's IMEI before connecting.** 32 32 33 -(% _mstvisible="1" %) 34 -(% _msthash="749" _msttexthash="321726288" _mstvisible="2" %)**注意:目前 UDP 连接需要端口转发,连接前请联系 ThingsEye 团队告知他们您设备的 IMEI。** 25 +== 2.2 Test UDP Interface via Socket Tool == 35 35 27 +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. 36 36 37 -(% _mstvisible="1" %) 38 ----- 29 +[[image:1728566363151-470.png]] 39 39 40 -(% _mstvisible="1" %) 41 -== (% _msthash="748" _msttexthash="55449407" _mstvisible="2" %)2.2 使用Dragino NB装置的测试(%%) == 31 +In server side, Tenant Administrator can check this in Tenant UDP Server location. 42 42 43 -(% _mstvisible="1" %) 44 -=== (% _msthash="747" _msttexthash="11644464" _mstvisible="2" %)2.2.1 配置NB-IoT End Node(%%) === 33 +[[image:1728362834430-749.png||height="510" width="1667"]] 45 45 46 -(% _msthash="746" _msttexthash="126369737" _mstvisible="1" %) 47 -这里的设备是(% _istranslated="1" %)**[[S31-NB>>https://www.dragino.com/products/temperature-humidity-sensor/item/288-s31-nb-s31b-nb.html||_istranslated="1"]]**(%%):并且已经在下面配置了 35 +Click and see the debug info as below: 48 48 49 -(% _mstvisible="1" %) 50 -* 设置为使用 ThingsEye UDP 服务器:(% _istranslated="1" %)**AT+SERVADDR=server1.thingseye.io,11560** 51 -* 使用 UDP 上行链路和 JSON 协议:(% _istranslated="1" %)**AT+PRO=2,5** 52 -* 配备NB-IoT卡以接入NB-IoT网络。 37 +[[image:1728363020699-203.png]] 53 53 54 -(% _msthash="742" _msttexthash="52789451" _mstvisible="1" %) 55 -S31-NB的蜂窝模块为IMEI:(% _istranslated="1" %)**863663062789483** 39 +We can see the message arrives, but it shows ERROR because the message doesn't follow with the UDP Server format. 56 56 57 -(% _mstvisible="1" %) 58 -=== (% _msthash="741" _msttexthash="30173117" _mstvisible="2" %)2.2.2 检查上行数据(%%) === 41 +== 2.3 Test with Dragino NB device == 59 59 60 -(% _msthash="740" _msttexthash="22249344" _mstvisible="1" %) 61 -开启调试模组 43 +=== 2.3.1 Configure NB-IoT End Node === 62 62 63 -(% _mstvisible="1" %) 64 -(% _mstvisible="3" %)[[image:1758762334133-608.png||_mstalt="294801" _msthash="584" _mstvisible="5" height="494" width="1003"]] 45 +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 65 65 66 -(% _mstvisible="1" %) 67 ----- 47 +* Set to use ThingsEye UDP server: **AT+SERVADDR=server1.thingseye.io,11560** 48 +* Use UDP Uplink & Json protocol:** AT+PRO=2,5** 49 +* Equip with a NB-IoT SIM Card to access to NB-IoT Network. 68 68 69 -(% _msthash="739" _msttexthash="156775723" _mstvisible="1" %) 70 -重新激活S31-NB,我们可以在调试窗口中看到它: 51 +The S31-NB's cellular module has the IMEI: **863663062789483** 71 71 72 -(% _mstvisible="1" %) 73 -(% _mstvisible="3" %)[[image:1758762371290-726.png||_mstalt="296088" _msthash="586" _mstvisible="5" height="528" width="1005"]] 53 +=== 2.3.2 Check Uplink Data === 74 74 75 -(% _mstvisible="1" %) 76 -(% _mstvisible="3" %)[[image:1728378218744-800.png||_mstalt="295269" _msthash="588" _mstvisible="5" height="431" width="1003"]] 55 +Re-activate the S31-NB, and we can see it in the debug window: 77 77 78 -(% _mstvisible="1" %) 79 ----- 57 +[[image:1728378218744-800.png||height="431" width="1003"]] 80 80 81 -(% _mstvisible="1" %) 82 -=== (% _msthash="738" _msttexthash="29837379" _mstvisible="2" %)2.2.4 自动创建设备(%%) === 59 +=== 2.3.3 Auto-Create Device === 83 83 84 -(% _msthash="737" _msttexthash="810829929" _mstvisible="1" %) 85 -默认(% _istranslated="1" %)**的租户UDP服务器**(%%)已经配置好解码Dragino -NB / -CB NB-IoT节点。所以每个端节点都会向服务器发送数据。租户会自动在服务器上创建设备。 61 +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. 86 86 87 -(% _mstvisible="1" %) 88 -(% _mstvisible="3" %)[[image:1728378968101-683.png||_mstalt="297154" _msthash="590" _mstvisible="5" height="210" width="1005"]] 63 +[[image:1728378968101-683.png||height="273" width="1307"]] 89 89 90 -(% _mstvisible="1" %) 91 -(% _mstvisible="3" %)[[image:1728379050044-764.png||_mstalt="295282" _msthash="592" _mstvisible="5" height="326" width="1009"]] 65 +[[image:1728379050044-764.png||height="424" width="1312"]] 92 92 93 93 94 -(% _mstvisible="1" %) 95 ----- 68 +**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.** 96 96 97 -(% _mstvisible="1" %) 98 -= (% _msthash="736" _msttexthash="622947" _mstvisible="2" %)3. Connect to The Things Stack(%%) = 70 += 3. Connect to The Things Stack = 99 99 100 -(% _mstvisible="1" %) 101 -== (% _msthash="735" _msttexthash="410280" _mstvisible="2" %)3.1 Network Structure(%%) == 72 +== 3.1 Network Structure == 102 102 103 -(% _msthash="734" _msttexthash="14835652" _mstvisible="1" %) 104 104 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. 105 105 106 -(% _mstvisible="1" %) 107 -(% _mstvisible="3" %)[[image:1732679444539-853.jpg||_mstalt="296933" _msthash="594" _mstvisible="5" height="388" width="1452"]] 76 +[[image:1732679444539-853.jpg||height="388" width="1452"]] 108 108 109 -(% _mstvisible="1" %) 110 -== (% _msthash="733" _msttexthash="1191008" _mstvisible="2" %)3.2 Creat Integration for The Things Stack.(%%) == 78 +== 3.2 Creat Integration for The Things Stack. == 111 111 112 -(% _msthash="732" _msttexthash="255775" _mstvisible="1"class="lead" %)80 +(% class="lead" %) 113 113 Add Integration 114 114 115 -(% _mstvisible="1" %) 116 -(% _mstvisible="3" %)[[image:1728535775119-971.png||_mstalt="297661" _msthash="596" _mstvisible="5" height="423" width="1007"]] 83 +[[image:1728535775119-971.png||height="456" width="1087"]] 117 117 118 118 119 -(% _msthash="731" _msttexthash="448994" _mstvisible="1"class="lead" %)86 +(% class="lead" %) 120 120 Choose Connection Type 121 121 122 -(% _mstvisible="1" %) 123 -(% _mstvisible="3" %)[[image:1728535857345-950.png||_mstalt="297154" _msthash="598" _mstvisible="5" height="257" width="403"]] 89 +[[image:1728535857345-950.png]] 124 124 125 125 126 -(% _msthash="730" _msttexthash="762996" _mstvisible="1"class="lead" %)92 +(% class="lead" %) 127 127 Input Uplink Data Converter Code 128 128 129 -(% _mstvisible="1" %) 130 -(% _mstvisible="3" %)[[image:1728535941851-388.png||_mstalt="297856" _msthash="600" _mstvisible="5" height="466" width="398"]] 95 +[[image:1728535941851-388.png||height="466" width="398"]] 131 131 132 -(% _msthash="729" _msttexthash="16454490" _mstvisible="1" %) 133 133 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]] 134 134 135 135 136 -(% _msthash="728" _msttexthash="532480" _mstvisible="1"class="lead" %)100 +(% class="lead" %) 137 137 Input Downlink Converter 138 138 139 -(% _mstvisible="1" %) 140 -(% _mstvisible="3" %)[[image:1728536142721-488.png||_mstalt="296127" _msthash="602" _mstvisible="5" height="470" width="407"]] 103 +[[image:1728536142721-488.png||height="470" width="407"]] 141 141 142 -(% _msthash="727" _msttexthash="19064695" _mstvisible="1" %) 143 143 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]] 144 144 145 145 146 -(% _msthash="726" _msttexthash="1724853" _mstvisible="1"class="lead" %)108 +(% class="lead" %) 147 147 Set up Connection to The Things Network application 148 148 149 -(% _mstvisible="1" %) 150 -(% _mstvisible="3" %)[[image:1728536305503-380.png||_mstalt="293254" _msthash="604" _mstvisible="5" height="431" width="1019"]] 111 +[[image:1728536305503-380.png||height="510" width="1206"]] 151 151 152 152 153 153 154 -(% _msthash="725" _msttexthash="851097" _mstvisible="1"class="lead" %)115 +(% class="lead" %) 155 155 Test Connection & Add iIntegration 156 156 157 -(% _mstvisible="1" %) 158 -(% _mstvisible="3" %)[[image:1728536374214-962.png||_mstalt="295893" _msthash="606" _mstvisible="5" height="380" width="1024"]] 118 +[[image:1728536374214-962.png]] 159 159 160 -(% _msthash="724" _msttexthash="1177579" _mstvisible="1" %) 161 161 After add , we can see the integration here: 162 162 163 -(% _mstvisible="1" %) 164 -(% _mstvisible="3" %)[[image:1728536420275-153.png||_mstalt="293748" _msthash="608" _mstvisible="5" height="152" width="1026"]] 122 +[[image:1728536420275-153.png||height="208" width="1404"]] 165 165 166 166 167 -(% _mstvisible="1" %) 168 -== (% _msthash="723" _msttexthash="213447" _mstvisible="2" %)3.3 Test Uplink(%%) == 125 +== 3.3 Test Uplink == 169 169 170 -(% _msthash="722" _msttexthash="7855835" _mstvisible="1" %) 171 171 We can use Simulate Uplink to simulate an uplink in the things stack. Then we should be able to see the message in ThingsEye 172 172 173 -(% _mstvisible="1" %) 174 -(% _mstvisible="3" %)[[image:1728536524638-768.png||_mstalt="298870" _msthash="610" _mstvisible="5" height="473" width="1028"]] 129 +[[image:1728536524638-768.png||height="493" width="1071"]] 175 175 176 176 177 -(% _mstvisible="1" %) 178 -(% _mstvisible="3" %)[[image:1728536541040-814.png||_mstalt="293215" _msthash="612" _mstvisible="5" height="424" width="1026"]] 132 +[[image:1728536541040-814.png]] 179 179 134 += 4.Connect chirpstack to Thingseye by way of MQTT = 180 180 181 -(% _mstvisible="1" %) 182 ----- 136 +* **How to connect chirpstack to Thingseye by way of MQTT? The following tutorial will show you** 183 183 184 -(% _mstvisible="1" %) 185 -= (% _msthash="721" _msttexthash="1472211" _mstvisible="2" %)4.Connect chirpstack to Thingseye by way of MQTT(%%) = 138 +== 4.1 Network Structure == 186 186 187 -(% _mstvisible="1" %) 188 -* (% _msthash="720" _msttexthash="4693741" _mstvisible="3" %)**How to connect chirpstack to Thingseye by way of MQTT? The following tutorial will show you** 189 - 190 -(% _mstvisible="1" %) 191 -== (% _msthash="719" _msttexthash="410371" _mstvisible="2" %)4.1 Network Structure(%%) == 192 - 193 -(% _msthash="718" _msttexthash="14117480" _mstvisible="1" %) 194 194 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. 195 195 196 -(% _mstvisible="1" %) 197 -(% _mstvisible="3" %)[[image:1732679647697-982.jpg||_mstalt="299884" _msthash="614" _mstvisible="5" height="399" width="1492"]] 142 +[[image:1732679647697-982.jpg||height="399" width="1492"]] 198 198 199 -(% _mstvisible="1" %) 200 -== (% _msthash="717" _msttexthash="897286" _mstvisible="2" %)4.2 Thingseye adds MQTT integration(%%) == 144 +== 4.2 Thingseye adds MQTT integration == 201 201 202 -(% _msthash="716" _msttexthash="15186782" _mstvisible="1" %) 203 203 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"; 204 204 205 -(% _mstvisible="1" %) 206 -(% _mstvisible="3" %)[[image:1758762634175-353.png||_mstalt="295893" _msthash="616" _mstvisible="5" height="783" width="1020"]] 148 +[[image:图片1.png]] 207 207 208 -(% _mstvisible="1" %) 209 -== (% _msthash="715" _msttexthash="1329445" _mstvisible="2" %)4.3 Add an uplink and downlink data converter(%%) == 150 +== 4.3 Add an uplink and downlink data converter == 210 210 211 -(% _msthash="714" _msttexthash="4516408" _mstvisible="1" %) 212 -In the function decoder field, specify the uplink script to parse and transform the data. 152 +In the function decoder field, specify the script to parse and transform the data. 213 213 214 -(% _mstvisible="1" %) 215 -(% _mstvisible="3" %)[[image:1758763061703-634.png||_mstalt="294671" _msthash="618" _mstvisible="5" height="783" width="1020"]] 154 +[[image:图片2.png]] 216 216 217 -(% _mstvisible="1" %) 218 -* (% _msthash="713" _msttexthash="24445408" _mstvisible="3" %)**Uplink——JavaScript:** 156 +* **Uplink——JavaScript:** 219 219 220 -(% _msthash="712" _msttexthash="792233" _mstvisible="1" %) 221 221 var data = decodeToJson(payload); 222 222 223 -(% _msthash="711" _msttexthash="1379794" _mstvisible="1" %) 224 224 var deviceName = data.deviceInfo.deviceName; 225 225 226 -(% _msthash="710" _msttexthash="1079247" _mstvisible="1" %) 227 227 var deviceType = data.applicationName; 228 228 229 -(% _msthash="709" _msttexthash="909376" _mstvisible="1" %) 230 230 var devEui = data.deviceInfo.devEui 231 231 232 -(% _msthash="708" _msttexthash="861510" _mstvisible="1" %) 233 233 var label = data.deviceInfo.devEui 234 234 235 -(% _msthash="707" _msttexthash="195442" _mstvisible="1" %) 236 236 var model = {}; 237 237 238 -(% _msthash="706" _msttexthash="435448" _mstvisible="1" %) 239 239 var data2 = data.object; 240 240 241 -(% _msthash="705" _msttexthash="326274" _mstvisible="1" %) 242 242 var flg = data.fPort 243 243 244 -(% _msthash="704" _msttexthash="380965" _mstvisible="1" %) 245 245 for (var key in data2) { 246 246 247 -(% _msthash="703" _msttexthash="43058977" _mstvisible="1" %) 248 248 ~/~/ 将属性名存入新对象中 249 249 250 -(% _msthash="702" _msttexthash="475553" _mstvisible="1" %) 251 251 model[key] = data2[key]; 252 252 253 -(% _mstvisible="1" %) 254 254 } 255 255 256 -(% _msthash="701" _msttexthash="757653" _mstvisible="1" %) 257 257 ~/~/var obj = {"devid":deviceName} 258 258 259 -(% _msthash="700" _msttexthash="183287" _mstvisible="1" %) 260 260 var result = { 261 261 262 -(% _msthash="699" _msttexthash="473265" _mstvisible="1" %) 263 263 deviceName: deviceName, 264 264 265 -(% _msthash="698" _msttexthash="489918" _mstvisible="1" %) 266 266 deviceType: deviceType, 267 267 268 -(% _msthash="697" _msttexthash="297271" _mstvisible="1" %) 269 269 telemetry: model, 270 270 271 -(% _msthash="696" _msttexthash="446498" _mstvisible="1" %) 272 272 groupName: "Case Study", 273 273 274 -(% _msthash="695" _msttexthash="217633" _mstvisible="1" %) 275 275 ~/~/label:label, 276 276 277 -(% _msthash="694" _msttexthash="685984" _mstvisible="1" %) 278 278 attributes:{"devEui":devEui, 279 279 280 -(% _msthash="693" _msttexthash="386308" _mstvisible="1" %) 281 281 ~/~/"timevalue":"test", 282 282 283 -(% _msthash="692" _msttexthash="551772" _mstvisible="1" %) 284 284 "inactivityTimeout":1260000 285 285 286 -(% _msthash="691" _msttexthash="894530" _mstvisible="1" %) 287 287 ~/~/ "High_humidity_alarm":"not set", 288 288 289 -(% _msthash="690" _msttexthash="1052753" _mstvisible="1" %) 290 290 ~/~/ "High_temperature_alarm":"not set", 291 291 292 -(% _msthash="689" _msttexthash="848783" _mstvisible="1" %) 293 293 ~/~/ "Low_humidity_alarm":"not set", 294 294 295 -(% _msthash="688" _msttexthash="1002833" _mstvisible="1" %) 296 296 ~/~/ "Low_temperature_alarm":"not set", 297 297 298 -(% _msthash="687" _msttexthash="773682" _mstvisible="1" %) 299 299 ~/~/ "Low_voltage_alarm":"not set" 300 300 301 -(% _msthash="686" _msttexthash="2381015" _mstvisible="1" %) 302 302 ~/~/"customerName": "Civionic Engineering & Consulting (2014) Inc." 303 303 304 -(% _mstvisible="1" %) 305 305 } 306 306 307 -(% _mstvisible="1" %) 308 308 }; 309 309 310 -(% _msthash="685" _msttexthash="937586" _mstvisible="1" %) 311 311 function decodeToString(payload) { 312 312 313 -(% _msthash="684" _msttexthash="1818154" _mstvisible="1" %) 314 314 return String.fromCharCode.apply(String, payload); 315 315 316 -(% _mstvisible="1" %) 317 317 } 318 318 319 -(% _msthash="683" _msttexthash="834496" _mstvisible="1" %) 320 320 function decodeToJson(payload) { 321 321 322 -(% _msthash="682" _msttexthash="850616" _mstvisible="1" %) 323 323 var str = decodeToString(payload); 324 324 325 -(% _msthash="681" _msttexthash="512044" _mstvisible="1" %) 326 326 var data = JSON.parse(str); 327 327 328 -(% _msthash="680" _msttexthash="173511" _mstvisible="1" %) 329 329 return data; 330 330 331 -(% _mstvisible="1" %) 332 332 } 333 333 334 -(% _msthash="679" _msttexthash="233116" _mstvisible="1" %) 335 335 return result; 336 336 337 -(% _mstvisible="1" %) 338 ----- 236 +[[image:图片3.png]] 339 339 340 -(% _msthash="678" _msttexthash="4743882" _mstvisible="1" %) 341 -In the function decoder field, specify the downlink script to parse and transform the data. 238 +* **Dowblink——JavaScript:** 342 342 343 -(% _mstvisible="1" %) 344 -(% _mstvisible="3" %)[[image:1758763019466-819.png||_mstalt="298311" _msthash="620" _mstvisible="5" height="787" width="1022"]] 345 - 346 -(% _mstvisible="1" %) 347 -* (% _msthash="677" _msttexthash="26632970" _mstvisible="3" %)**Dowblink——JavaScript:** 348 - 349 -(% _msthash="676" _msttexthash="2052284" _mstvisible="1" %) 350 350 ~/~/ Encode downlink data from incoming Rule Engine message 351 351 352 -(% _msthash="675" _msttexthash="1638546" _mstvisible="1" %) 353 353 ~/~/ msg - JSON message payload downlink message json 354 354 355 -(% _msthash="674" _msttexthash="3854773" _mstvisible="1" %) 356 356 ~/~/ msgType - type of message, for ex. 'ATTRIBUTES_UPDATED', 'POST_TELEMETRY_REQUEST', etc. 357 357 358 -(% _msthash="673" _msttexthash="3368742" _mstvisible="1" %) 359 359 ~/~/ metadata - list of key-value pairs with additional data about the message 360 360 361 -(% _msthash="672" _msttexthash="8087157" _mstvisible="1" %) 362 362 ~/~/ integrationMetadata - list of key-value pairs with additional data defined in Integration executing this converter 363 363 364 -(% _msthash="671" _msttexthash="199069" _mstvisible="1" %) 365 365 ~/~/ /~*~* Encoder ~*~*/ 366 366 367 -(% _msthash="670" _msttexthash="455715" _mstvisible="1" %) 368 368 ~/~/var data = {"value":99}; 369 369 370 -(% _msthash="669" _msttexthash="1757431" _mstvisible="1" %) 371 371 ~/~/ ~/~/ Process data from incoming message and metadata 372 372 373 -(% _msthash="668" _msttexthash="1852279" _mstvisible="1" %) 374 374 ~/~/ data.tempFreq = msg.temperatureUploadFrequency; 375 375 376 -(% _msthash="667" _msttexthash="1572038" _mstvisible="1" %) 377 377 ~/~/ data.humFreq = msg.humidityUploadFrequency; 378 378 379 -(% _msthash="666" _msttexthash="2049957" _mstvisible="1" %) 380 380 ~/~/ data.devSerialNumber = metadata['ss_serialNumber']; 381 381 382 -(% _msthash="665" _msttexthash="1576731" _mstvisible="1" %) 383 383 ~/~/ ~/~/ Result object with encoded downlink payload 384 384 385 -(% _msthash="664" _msttexthash="183287" _mstvisible="1" %) 386 386 var result = { 387 387 388 -(% _msthash="663" _msttexthash="2331082" _mstvisible="1" %) 389 389 ~/~/ downlink data content type: JSON, TEXT or BINARY (base64 format) 390 390 391 -(% _msthash="662" _msttexthash="322049" _mstvisible="1" %) 392 392 contentType: "TEXT", 393 393 394 -(% _msthash="661" _msttexthash="249210" _mstvisible="1" %) 395 395 ~/~/ downlink data 396 396 397 -(% _msthash="660" _msttexthash="1524952" _mstvisible="1" %) 398 398 data: msg.shared_value ,~/~/JSON.stringify(data), 399 399 400 -(% _msthash="659" _msttexthash="2147704" _mstvisible="1" %) 401 401 ~/~/ Optional metadata object presented in key/value format 402 402 403 -(% _msthash="658" _msttexthash="150189" _mstvisible="1" %) 404 404 metadata: { 405 405 406 -(% _msthash="657" _msttexthash="1241370" _mstvisible="1" %) 407 407 topic: '/test/down/'+metadata.deviceName 408 408 409 -(% _mstvisible="1" %) 410 410 } 411 411 412 -(% _mstvisible="1" %) 413 413 }; 414 414 415 -(% _msthash="656" _msttexthash="233116" _mstvisible="1" %) 416 416 return result; 417 417 418 -(% _mstvisible="1" %) 419 ----- 286 +== 4.4 Configure the connection == 420 420 421 -(% _mstvisible="1" %) 422 -== (% _msthash="655" _msttexthash="640094" _mstvisible="2" %)4.4 Configure the connection(%%) == 423 - 424 -(% _msthash="654" _msttexthash="1780675" _mstvisible="1" %) 425 425 Generate MQTT certificate integrated on chirpstack 426 426 427 -(% _msthash="653" _msttexthash="3723447" _mstvisible="1" %) 428 428 Chirpstack generates CA certificate, TLS certificate, and TLS key respectively 429 429 430 -(% _msthash="652" _msttexthash="5123092" _mstvisible="1" %) 431 431 They correspond to the CA certificate file, Certificate file, and Private key file on thingseye 432 432 433 -(% _mstvisible="1" %) 434 -(% _mstvisible="3" %)[[image:图片4.png||_mstalt="5131737" _msthash="622" _mstvisible="5" height="504" width="1016"]] 294 +[[image:图片4.png]] 435 435 436 -(% _mstvisible="1" %) 437 -(% _mstvisible="3" %)[[image:图片5.png||_mstalt="5131854" _msthash="624" _mstvisible="5" height="505" width="1017"]] 296 +[[image:图片5.png||height="630" width="1269"]] 438 438 439 -(% _mstvisible="1" %) 440 440 * Copy the contents of the certificates and paste them into the linked file below, a total of three certificates are required 441 441 442 -(% _mstvisible="1" %) 443 -(% _msthash="650" _msttexthash="44967858" _mstvisible="2" %)**Integrated Certificate File demo Download Address:** 300 +**Integrated Certificate File demo Download Address:** 444 444 445 -(% _mstvisible="1" %) 446 -[[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"]] 302 +[[https:~~/~~/github.com/ThingsEye-io/te-platform/tree/main/chirpstack>>https://github.com/ThingsEye-io/te-platform/tree/main/chirpstack]] 447 447 448 -(% _msthash="648" _msttexthash="4037631" _mstvisible="1" %) 449 449 Enter the server address Host: lns1.thingseye.io on the Connection configuration 450 450 451 -(% _msthash="647" _msttexthash="93873" _mstvisible="1" %) 452 452 Port: 8883 453 453 454 -(% _msthash="646" _msttexthash="380666" _mstvisible="1" %) 455 455 Credentials type: PEM 456 456 457 -(% _msthash="645" _msttexthash="880399" _mstvisible="1" %) 458 458 Upload the certificate and key file 459 459 460 -(% _mstvisible="1" %) 461 -(% _mstvisible="3" %)[[image:图片6.png||_mstalt="5131971" _msthash="626" _mstvisible="5" height="509" width="1026"]] 312 +[[image:图片6.png]] 462 462 463 -(% _mstvisible="1" %) 464 -(% _mstvisible="3" %)[[image:图片7.png||_mstalt="5132088" _msthash="628" _mstvisible="5" height="509" width="1025"]] 314 +[[image:图片7.png]] 465 465 466 -(% _mstvisible="1" %) 467 ----- 468 - 469 -(% _msthash="644" _msttexthash="472992" _mstvisible="1" %) 470 470 The default for Topic is: 471 471 472 -(% _msthash="643" _msttexthash="2223559" _mstvisible="1" %) 473 473 application/**chirpstack application id**/device/+/event/up 474 474 475 -(% _mstvisible="1" %) 476 -(% _mstvisible="3" %)[[image:图片8.png||_mstalt="5132205" _msthash="630" _mstvisible="5" height="508" width="1024"]] 320 +[[image:图片8.png]] 477 477 478 478 479 -(% _mstvisible="1"class="wikigeneratedid" %)480 - (% _mstvisible="3" %)[[image:屏幕截图 2024-11-25 095805.png||_mstalt="10831028" _msthash="632" _mstvisible="5" height="301" width="1024"]]323 +(% class="wikigeneratedid" %) 324 +[[image:屏幕截图 2024-11-25 095805.png||height="374" width="1272"]] 481 481 482 -(% _mstvisible="1" %) 483 ----- 326 +== 4.5 Check the connection == 484 484 485 -(% _mstvisible="1" %) 486 -== (% _msthash="642" _msttexthash="471978" _mstvisible="2" %)4.5 Check the connection(%%) == 328 +[[image:图片9.png]] 487 487 488 -(% _mstvisible="1" %) 489 -(% _mstvisible="3" %)[[image:图片9.png||_mstalt="5132322" _msthash="634" _mstvisible="5" height="509" width="1025"]] 330 +[[image:图片10.png]] 490 490 491 -(% _mstvisible="1" %) 492 -(% _mstvisible="3" %)[[image:图片10.png||_mstalt="5142449" _msthash="636" _mstvisible="5" height="509" width="1026"]] 332 += 5. Check Data Uplink Log = 493 493 494 - 495 -(% _mstvisible="1" %) 496 ----- 497 - 498 -(% _mstvisible="1" %) 499 -= (% _msthash="641" _msttexthash="418145" _mstvisible="2" %)5. Check Data Uplink Log(%%) = 500 - 501 -(% _msthash="640" _msttexthash="1422681" _mstvisible="1" %) 502 502 User can check the devices log in Intergration. 503 503 504 -(% _mstvisible="1" %) 505 -(% _mstvisible="3" %)[[image:1729562069134-315.png||_mstalt="294190" _msthash="638" _mstvisible="5" height="587" width="723"]] 336 +[[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