Last modified by Alec Chen on 2025/11/26 17:10

From version 27.1
edited by Alec Chen
on 2025/11/26 17:09
Change comment: There is no comment for this version
To version 23.1
edited by Hera Guo
on 2025/09/25 09:18
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.Alec
1 +XWiki.hera
Content
... ... @@ -1,490 +2,342 @@
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 14  This instructions will show you how to connect a device that has been registered to the server to the Thingseye platform.
15 15  
16 16  
17 -= (% _msthash="755" _msttexthash="40707030" _mstvisible="2" %)2. UDP Protocol Direct Connection(%%) =
13 += 2. UDP Procotol  ~-~- Directly Connection =
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.
15 +== 2.1 UDP Interface ==
23 23  
24 -(% _msthash="755" _msttexthash="40707030" _mstvisible="2" %)For detailed information on how to forward data to clients, please contact the ThingsEye team.
17 +* Server Address: server1.thingseye.io
18 +* Port: 11560
25 25  
26 -(% _msthash="755" _msttexthash="40707030" _mstvisible="2" %)Note: Currently, UDP connections require port forwarding. Please contact the ThingsEye team before connecting and provide them with your device's IMEI.
20 +The data sent to above UDP interface will not go directly to client's database.
27 27  
22 +Please contact ThingsEye team for detail how to forward data to client.
28 28  
29 -(% _mstvisible="1" %)
30 -----
24 +**Note:Currently udp connections require port forwarding, please contact the ThingsEye team to inform them of your device's IMEI before connecting.**
31 31  
32 -== (% _msthash="748" _msttexthash="55449407" _mstvisible="2" %)2.2 Testing with Dragino NB Device(%%) ==
33 33  
34 -=== (% _msthash="748" _msttexthash="55449407" _mstvisible="2" %)2.2.1 Configuring the NB-IoT End Node(%%) ===
27 +----
35 35  
36 -(% _msthash="748" _msttexthash="55449407" _mstvisible="2" %)The device here is an S31-NB, and it has been configured as follows:
29 +== 2.2 Test with Dragino NB device ==
37 37  
38 -(% _msthash="748" _msttexthash="55449407" _mstvisible="2" %)**Set to use the ThingsEye UDP server: AT+SERVADDR=server1.thingseye.io,11560**
31 +=== 2.2.1 Configure NB-IoT End Node ===
39 39  
40 -(% _msthash="748" _msttexthash="55449407" _mstvisible="2" %)**Use UDP uplink and JSON protocol: AT+PRO=2,5**
33 +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
41 41  
42 -(% _msthash="748" _msttexthash="55449407" _mstvisible="2" %)Equipped with an NB-IoT card to access the NB-IoT network.
35 +* Set to use ThingsEye UDP server: **AT+SERVADDR=server1.thingseye.io,11560**
36 +* Use UDP Uplink & Json protocol:** AT+PRO=2,5**
37 +* Equip with a NB-IoT SIM Card to access to NB-IoT Network.
43 43  
44 -(% _msthash="748" _msttexthash="55449407" _mstvisible="2" %)The S31-NB's cellular module IMEI is: 863663062789483
39 +The S31-NB's cellular module has the IMEI: **863663062789483**
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.2.2 Check Uplink Data ===
49 49  
50 -(% _mstvisible="1" %)
51 -(% _mstvisible="3" %)[[image:1758762334133-608.png||_mstalt="294801" _msthash="584" _mstvisible="5" height="494" width="1003"]]
43 +Turn on debug mod
52 52  
53 -(% _mstvisible="1" %)
45 +[[image:1758762334133-608.png||height="494" width="1003"]]
46 +
54 54  ----
55 55  
56 -(% _msthash="739" _msttexthash="156775723" _mstvisible="1" %)
57 -After reactivating the S31-NB, we can see it in the debug window:
49 +Re-activate the S31-NB, and we can see it in the debug window:
58 58  
59 -(% _mstvisible="1" %)
60 -(% _mstvisible="3" %)[[image:1758762371290-726.png||_mstalt="296088" _msthash="586" _mstvisible="5" height="528" width="1005"]]
51 +[[image:1758762371290-726.png||height="528" width="1005"]]
61 61  
62 -(% _mstvisible="1" %)
63 -(% _mstvisible="3" %)[[image:1728378218744-800.png||_mstalt="295269" _msthash="588" _mstvisible="5" height="431" width="1003"]]
53 +[[image:1728378218744-800.png||_mstalt="295269" height="431" width="1003"]]
64 64  
65 65  ----
66 66  
67 -=== 2.2.4 Automatic Device Creation ===
57 +=== 2.2.4 Auto-Create Device ===
68 68  
69 -===
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||_mstalt="297154" height="210" width="1005"]]
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||_mstalt="295282" height="326" width="1009"]]
77 77  
78 78  
79 -(% _mstvisible="1" %)
80 80  ----
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||_mstalt="296933" 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||_mstalt="297661" height="423" width="1007"]]
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||_mstalt="297154" height="257" width="403"]]
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||_mstalt="297856" 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||_mstalt="296127" 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||_mstalt="293254" height="431" width="1019"]]
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||_mstalt="295893" height="380" width="1024"]]
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||_mstalt="293748" height="152" width="1026"]]
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||_mstalt="298870" height="473" width="1028"]]
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||_mstalt="293215" height="424" width="1026"]]
164 164  
165 165  
166 -(% _mstvisible="1" %)
167 -----
168 168  
169 -(% _mstvisible="1" %)
170 -= (% _msthash="721" _msttexthash="1472211" _mstvisible="2" %)4.Connect chirpstack to Thingseye by way of MQTT(%%) =
134 += 4.Connect chirpstack to Thingseye by way of MQTT =
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**
136 +* **How to connect chirpstack to Thingseye by way of MQTT? The following tutorial will show you**
174 174  
175 -(% _mstvisible="1" %)
176 -== (% _msthash="719" _msttexthash="410371" _mstvisible="2" %)4.1 Network Structure(%%) ==
138 +== 4.1 Network Structure ==
177 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"]]
142 +[[image:1732679647697-982.jpg||_mstalt="299884" height="399" width="1492"]]
183 183  
184 -(% _mstvisible="1" %)
185 -== (% _msthash="717" _msttexthash="897286" _mstvisible="2" %)4.2 Thingseye adds MQTT integration(%%) ==
144 +== 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"]]
148 +[[image:1758762634175-353.png||height="783" width="1020"]]
192 192  
193 -(% _mstvisible="1" %)
194 -== (% _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 ==
195 195  
196 -(% _msthash="714" _msttexthash="4516408" _mstvisible="1" %)
197 197  In the function decoder field, specify the uplink 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"]]
154 +[[image:1758763061703-634.png||height="783" width="1020"]]
201 201  
202 -(% _mstvisible="1" %)
203 -* (% _msthash="713" _msttexthash="24445408" _mstvisible="3" %)**Uplink——JavaScript:**
156 +* **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 323  ----
324 324  
325 -(% _msthash="678" _msttexthash="4743882" _mstvisible="1" %)
326 326  In the function decoder field, specify the downlink script to parse and transform the data.
327 327  
328 -(% _mstvisible="1" %)
329 -(% _mstvisible="3" %)[[image:1758763019466-819.png||_mstalt="298311" _msthash="620" _mstvisible="5" height="787" width="1022"]]
240 +[[image:1758763019466-819.png||height="787" width="1022"]]
330 330  
331 -(% _mstvisible="1" %)
332 -* (% _msthash="677" _msttexthash="26632970" _mstvisible="3" %)**Dowblink——JavaScript:**
242 +* **Dowblink——JavaScript:**
333 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 404  ----
405 405  
406 -(% _mstvisible="1" %)
407 -== (% _msthash="655" _msttexthash="640094" _mstvisible="2" %)4.4 Configure the connection(%%) ==
292 +== 4.4 Configure the connection ==
408 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"]]
300 +[[image:图片4.png||_mstalt="5131737" height="504" width="1016"]]
420 420  
421 -(% _mstvisible="1" %)
422 -(% _mstvisible="3" %)[[image:图片5.png||_mstalt="5131854" _msthash="624" _mstvisible="5" height="505" width="1017"]]
302 +[[image:图片5.png||_mstalt="5131854" height="505" width="1017"]]
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:**
306 +**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"]]
308 +[[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"]]
318 +[[image:图片6.png||_mstalt="5131971"]]
447 447  
448 -(% _mstvisible="1" %)
449 -(% _mstvisible="3" %)[[image:图片7.png||_mstalt="5132088" _msthash="628" _mstvisible="5" height="509" width="1025"]]
320 +[[image:图片7.png||_mstalt="5132088"]]
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"]]
326 +[[image:图片8.png||_mstalt="5132205"]]
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"]]
329 +(% class="wikigeneratedid" %)
330 +[[image:屏幕截图 2024-11-25 095805.png||_mstalt="10831028" height="374" width="1272"]]
466 466  
467 -(% _mstvisible="1" %)
468 -----
332 +== 4.5 Check the connection ==
469 469  
470 -(% _mstvisible="1" %)
471 -== (% _msthash="642" _msttexthash="471978" _mstvisible="2" %)4.5 Check the connection(%%) ==
334 +[[image:图片9.png||_mstalt="5132322"]]
472 472  
473 -(% _mstvisible="1" %)
474 -(% _mstvisible="3" %)[[image:图片9.png||_mstalt="5132322" _msthash="634" _mstvisible="5" height="509" width="1025"]]
336 +[[image:图片10.png||_mstalt="5142449"]]
475 475  
476 -(% _mstvisible="1" %)
477 -(% _mstvisible="3" %)[[image:图片10.png||_mstalt="5142449" _msthash="636" _mstvisible="5" height="509" width="1026"]]
338 += 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"]]
342 +[[image:1729562069134-315.png||_mstalt="294190" height="587" width="723"]]