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

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