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

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