Changes for page Connect Devices to ThingsEye
Last modified by Hera Guo on 2025/02/18 09:29
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Attachments (0 modified, 0 added, 26 removed)
- 1728378195043-766.png
- 1728378218744-800.png
- 1728378968101-683.png
- 1728379050044-764.png
- 1728535775119-971.png
- 1728535857345-950.png
- 1728535941851-388.png
- 1728536142721-488.png
- 1728536305503-380.png
- 1728536374214-962.png
- 1728536420275-153.png
- 1728536524638-768.png
- 1728536541040-814.png
- 1728566363151-470.png
- 1729562069134-315.png
- 图片1.png
- 图片10.png
- 图片2.png
- 图片3.png
- 图片4.png
- 图片5.png
- 图片6.png
- 图片7.png
- 图片8.png
- 图片9.png
- 屏幕截图 2024-11-25 095805.png
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki.he ra1 +XWiki.EdwinChen - Content
-
... ... @@ -1,20 +1,11 @@ 1 1 2 2 3 - **TableofContents:**3 += 1. UDP Procotol ~-~- Direction Connection = 4 4 5 - {{toc/}}5 +== 1.1 UDP Interface == 6 6 7 - 8 -= 1. Overview = 9 - 10 - 11 - 12 -= 2. UDP Procotol ~-~- Directly Connection = 13 - 14 -== 2.1 UDP Interface == 15 - 16 16 * Server Address: server1.thingseye.io 17 -* Port: 1156 28 +* Port: 11560 18 18 19 19 The data sent to above UDP interface will not go directly to client's database. 20 20 ... ... @@ -21,11 +21,11 @@ 21 21 Please contact ThingsEye team for detail how to forward data to client. 22 22 23 23 24 -== 2.2 Test UDP Interface via Socket Tool ==15 +== 1.2 Test UDP Interface via Socket Tool == 25 25 26 26 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. 27 27 28 -[[image:1728 566363151-470.png]]19 +[[image:1728362612869-443.png||height="454" width="540"]] 29 29 30 30 In server side, Tenant Administrator can check this in Tenant UDP Server location. 31 31 ... ... @@ -38,292 +38,5 @@ 38 38 We can see the message arrives, but it shows ERROR because the message doesn't follow with the UDP Server format. 39 39 40 40 41 -== 2.3 Test with Dragino NB device == 42 42 43 -=== 2.3.1 Configure NB-IoT End Node === 44 - 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 46 - 47 -* Set to use ThingsEye UDP server: **AT+SERVADDR=server1.thingseye.io,11562** 48 -* Use UDP Uplink & Json protocol:** AT+PRO=2,5** 49 -* Equip with a NB-IoT SIM Card to access to NB-IoT Network. 50 - 51 -The S31-NB's cellular module has the IMEI: **863663062789483** 52 - 53 - 54 -=== 2.3.2 Check Uplink Data === 55 - 56 -Re-activate the S31-NB, and we can see it in the debug window: 57 - 58 -[[image:1728378218744-800.png||height="431" width="1003"]] 59 - 60 - 61 -=== 2.3.3 Auto-Create Device === 62 - 63 -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. 64 - 65 -[[image:1728378968101-683.png||height="273" width="1307"]] 66 - 67 -[[image:1728379050044-764.png||height="424" width="1312"]] 68 - 69 - 70 -**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.** 71 - 72 -= 3. Connect to The Things Stack = 73 - 74 -== 3.1 Network Structure == 75 - 76 - 77 -== 3.2 Creat Integration for The Things Stack. == 78 - 79 -(% class="lead" %) 80 -Add Integration 81 - 82 -[[image:1728535775119-971.png||height="456" width="1087"]] 83 - 84 - 85 -(% class="lead" %) 86 -Choose Connection Type 87 - 88 -[[image:1728535857345-950.png]] 89 - 90 - 91 -(% class="lead" %) 92 -Input Uplink Data Converter Code 93 - 94 -[[image:1728535941851-388.png||height="466" width="398"]] 95 - 96 -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]] 97 - 98 - 99 -(% class="lead" %) 100 -Input Downlink Converter 101 - 102 -[[image:1728536142721-488.png||height="470" width="407"]] 103 - 104 -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]] 105 - 106 - 107 -(% class="lead" %) 108 -Set up Connection to The Things Network application 109 - 110 -[[image:1728536305503-380.png||height="510" width="1206"]] 111 - 112 - 113 - 114 -(% class="lead" %) 115 -Test Connection & Add iIntegration 116 - 117 -[[image:1728536374214-962.png]] 118 - 119 -After add , we can see the integration here: 120 - 121 -[[image:1728536420275-153.png||height="208" width="1404"]] 122 - 123 - 124 -== 3.3 Test Uplink == 125 - 126 -We can use Simulate Uplink to simulate an uplink in the things stack. Then we should be able to see the message in ThingsEye 127 - 128 -[[image:1728536524638-768.png||height="493" width="1071"]] 129 - 130 - 131 -[[image:1728536541040-814.png]] 132 - 133 -= 4.Connect chirpstack to Thingseye by way of MQTT = 134 - 135 -* **How to connect chirpstack to Thingseye by way of MQTT? The following tutorial will show you** 136 - 137 -== 4.1 Thingseye adds MQTT integration == 138 - 139 -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"; 140 - 141 -[[image:图片1.png]] 142 - 143 -== 4.2 Add an uplink and downlink data converter == 144 - 145 -In the function decoder field, specify the script to parse and transform the data. 146 - 147 -[[image:图片2.png]] 148 - 149 -* **Uplink——JavaScript:** 150 - 151 -var data = decodeToJson(payload); 152 - 153 -var deviceName = data.deviceInfo.deviceName; 154 - 155 -var deviceType = data.applicationName; 156 - 157 -var devEui = data.deviceInfo.devEui 158 - 159 -var label = data.deviceInfo.devEui 160 - 161 -var model = {}; 162 - 163 -var data2 = data.object; 164 - 165 -var flg = data.fPort 166 - 167 -for (var key in data2) { 168 - 169 - ~/~/ 将属性名存入新对象中 170 - 171 - model[key] = data2[key]; 172 - 173 -} 174 - 175 -~/~/var obj = {"devid":deviceName} 176 - 177 -var result = { 178 - 179 - deviceName: deviceName, 180 - 181 - deviceType: deviceType, 182 - 183 - telemetry: model, 184 - 185 - groupName: "Case Study", 186 - 187 - ~/~/label:label, 188 - 189 - attributes:{"devEui":devEui, 190 - 191 - ~/~/"timevalue":"test", 192 - 193 - "inactivityTimeout":1260000 194 - 195 - ~/~/ "High_humidity_alarm":"not set", 196 - 197 - ~/~/ "High_temperature_alarm":"not set", 198 - 199 - ~/~/ "Low_humidity_alarm":"not set", 200 - 201 - ~/~/ "Low_temperature_alarm":"not set", 202 - 203 - ~/~/ "Low_voltage_alarm":"not set" 204 - 205 - ~/~/"customerName": "Civionic Engineering & Consulting (2014) Inc." 206 - 207 - } 208 - 209 -}; 210 - 211 -function decodeToString(payload) { 212 - 213 - return String.fromCharCode.apply(String, payload); 214 - 215 -} 216 - 217 -function decodeToJson(payload) { 218 - 219 - var str = decodeToString(payload); 220 - 221 - var data = JSON.parse(str); 222 - 223 - return data; 224 - 225 -} 226 - 227 -return result; 228 - 229 -[[image:图片3.png]] 230 - 231 -* **Dowblink——JavaScript:** 232 - 233 -~/~/ Encode downlink data from incoming Rule Engine message 234 - 235 -~/~/ msg - JSON message payload downlink message json 236 - 237 -~/~/ msgType - type of message, for ex. 'ATTRIBUTES_UPDATED', 'POST_TELEMETRY_REQUEST', etc. 238 - 239 -~/~/ metadata - list of key-value pairs with additional data about the message 240 - 241 -~/~/ integrationMetadata - list of key-value pairs with additional data defined in Integration executing this converter 242 - 243 -~/~/ /~*~* Encoder ~*~*/ 244 - 245 -~/~/var data = {"value":99}; 246 - 247 -~/~/ ~/~/ Process data from incoming message and metadata 248 - 249 -~/~/ data.tempFreq = msg.temperatureUploadFrequency; 250 - 251 -~/~/ data.humFreq = msg.humidityUploadFrequency; 252 - 253 -~/~/ data.devSerialNumber = metadata['ss_serialNumber']; 254 - 255 -~/~/ ~/~/ Result object with encoded downlink payload 256 - 257 -var result = { 258 - 259 - ~/~/ downlink data content type: JSON, TEXT or BINARY (base64 format) 260 - 261 - contentType: "TEXT", 262 - 263 - ~/~/ downlink data 264 - 265 - data: msg.shared_value ,~/~/JSON.stringify(data), 266 - 267 - ~/~/ Optional metadata object presented in key/value format 268 - 269 - metadata: { 270 - 271 - topic: '/test/down/'+metadata.deviceName 272 - 273 - } 274 - 275 -}; 276 - 277 -return result; 278 - 279 -== 4.3 Configure the connection == 280 - 281 -Generate MQTT certificate integrated on chirpstack 282 - 283 -Chirpstack generates CA certificate, TLS certificate, and TLS key respectively 284 - 285 -They correspond to the CA certificate file, Certificate file, and Private key file on thingseye 286 - 287 -[[image:图片4.png]] 288 - 289 -[[image:图片5.png||height="630" width="1269"]] 290 - 291 -* Copy the contents of the certificates and paste them into the linked file below, a total of three certificates are required 292 - 293 -**Integrated Certificate File demo Download Address:** 294 - 295 -[[https:~~/~~/github.com/ThingsEye-io/te-platform/tree/main/chirpstack>>https://github.com/ThingsEye-io/te-platform/tree/main/chirpstack]] 296 - 297 -Enter the server address Host: lns1.thingseye.io on the Connection configuration 298 - 299 -Port: 8883 300 - 301 -Credentials type: PEM 302 - 303 -Upload the certificate and key file 304 - 305 -[[image:图片6.png]] 306 - 307 -[[image:图片7.png]] 308 - 309 -The default for Topic is: 310 - 311 -application/**chirpstack application id**/device/+/event/up 312 - 313 -[[image:图片8.png]] 314 - 315 - 316 -(% class="wikigeneratedid" %) 317 -[[image:屏幕截图 2024-11-25 095805.png||height="374" width="1272"]] 318 - 319 -== 4.4 Check the connection == 320 - 321 -[[image:图片9.png]] 322 - 323 -[[image:图片10.png]] 324 - 325 -= 5. Check Data Uplink Log = 326 - 327 -User can check the devices log in Intergration. 328 - 329 -[[image:1729562069134-315.png||height="587" width="723"]] 33 +
- 1728378195043-766.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.EdwinChen - Size
-
... ... @@ -1,1 +1,0 @@ 1 -146.8 KB - Content
- 1728378218744-800.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.EdwinChen - Size
-
... ... @@ -1,1 +1,0 @@ 1 -104.9 KB - Content
- 1728378968101-683.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.EdwinChen - Size
-
... ... @@ -1,1 +1,0 @@ 1 -37.2 KB - Content
- 1728379050044-764.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.EdwinChen - Size
-
... ... @@ -1,1 +1,0 @@ 1 -97.6 KB - Content
- 1728535775119-971.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.EdwinChen - Size
-
... ... @@ -1,1 +1,0 @@ 1 -84.1 KB - Content
- 1728535857345-950.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.EdwinChen - Size
-
... ... @@ -1,1 +1,0 @@ 1 -29.4 KB - Content
- 1728535941851-388.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.EdwinChen - Size
-
... ... @@ -1,1 +1,0 @@ 1 -50.3 KB - Content
- 1728536142721-488.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.EdwinChen - Size
-
... ... @@ -1,1 +1,0 @@ 1 -55.5 KB - Content
- 1728536305503-380.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.EdwinChen - Size
-
... ... @@ -1,1 +1,0 @@ 1 -135.2 KB - Content
- 1728536374214-962.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.EdwinChen - Size
-
... ... @@ -1,1 +1,0 @@ 1 -11.8 KB - Content
- 1728536420275-153.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.EdwinChen - Size
-
... ... @@ -1,1 +1,0 @@ 1 -35.3 KB - Content
- 1728536524638-768.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.EdwinChen - Size
-
... ... @@ -1,1 +1,0 @@ 1 -46.6 KB - Content
- 1728536541040-814.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.EdwinChen - Size
-
... ... @@ -1,1 +1,0 @@ 1 -29.0 KB - Content
- 1728566363151-470.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.EdwinChen - Size
-
... ... @@ -1,1 +1,0 @@ 1 -61.9 KB - Content
- 1729562069134-315.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.EdwinChen - Size
-
... ... @@ -1,1 +1,0 @@ 1 -67.5 KB - Content
- 图片1.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -123.1 KB - Content
- 图片10.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -173.4 KB - Content
- 图片2.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -163.3 KB - Content
- 图片3.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -124.8 KB - Content
- 图片4.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -68.8 KB - Content
- 图片5.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -98.5 KB - Content
- 图片6.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -136.5 KB - Content
- 图片7.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -143.5 KB - Content
- 图片8.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -151.0 KB - Content
- 图片9.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -134.6 KB - Content
- 屏幕截图 2024-11-25 095805.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -45.7 KB - Content