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

From version 21.1
edited by Hera Guo
on 2025/02/18 09:29
Change comment: There is no comment for this version
To version 25.2
edited by Alec Chen
on 2025/11/19 15:44
Change comment: There is no comment for this version

Summary

Details

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