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

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