Last modified by Hera Guo on 2025/09/25 09:23

From version 7.1
edited by Chxy
on 2024/10/08 17:32
Change comment: There is no comment for this version
To version 22.1
edited by Hera Guo
on 2025/09/25 09:10
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.EdwinChen
1 +XWiki.hera
Content
... ... @@ -7,6 +7,7 @@
7 7  
8 8  = 1. Overview =
9 9  
10 +This instructions will show you how to connect a device that has been registered to the server to the Thingseye platform.
10 10  
11 11  
12 12  = 2. UDP Procotol  ~-~- Directly Connection =
... ... @@ -20,55 +20,315 @@
20 20  
21 21  Please contact ThingsEye team for detail how to forward data to client.
22 22  
24 +**Note:Currently udp connections require port forwarding, please contact the ThingsEye team to inform them of your device's IMEI before connecting.**
23 23  
24 -== 2.2 Test UDP Interface via Socket Tool ==
25 25  
26 -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.
27 +----
27 27  
28 -[[image:1728362612869-443.png||height="454" width="540"]]
29 +== 2.2 Test with Dragino NB device ==
29 29  
30 -In server side, Tenant Administrator can check this in Tenant UDP Server location.
31 +=== 2.2.1 Configure NB-IoT End Node ===
31 31  
32 -[[image:1728362834430-749.png||height="510" width="1667"]]
33 -
34 -Click and see the debug info as below:
35 -
36 -[[image:1728363020699-203.png]]
37 -
38 -We can see the message arrives, but it shows ERROR because the message doesn't follow with the UDP Server format.
39 -
40 -
41 -== 2.3 Test with Dragino NB device ==
42 -
43 -=== 2.3.1 Configure NB-IoT End Node ===
44 -
45 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
46 46  
47 47  * Set to use ThingsEye UDP server: **AT+SERVADDR=server1.thingseye.io,11560**
48 -* Use UDP Uplink & Json protocol:** AT+PRO=2,5**
36 +* Use UDP Uplink & Json protocol:** AT+PRO=2,5**
49 49  * Equip with a NB-IoT SIM Card to access to NB-IoT Network.
50 50  
51 51  The S31-NB's cellular module has the IMEI: **863663062789483**
52 52  
41 +=== 2.2.2 Check Uplink Data ===
53 53  
54 -=== 2.3.2 Check Uplink Data ===
43 +Turn on debug mod
55 55  
45 +[[image:1758762334133-608.png||height="494" width="1003"]]
46 +
47 +----
48 +
56 56  Re-activate the S31-NB, and we can see it in the debug window:
57 57  
58 -[[image:1728378218744-800.png||height="431" width="1003"]]
51 +[[image:1758762371290-726.png||height="528" width="1005"]]
59 59  
53 +[[image:1728378218744-800.png||_mstalt="295269" height="431" width="1003"]]
60 60  
55 +
56 +----
57 +
61 61  === 2.3.3 Auto-Create Device ===
62 62  
63 63  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.
64 64  
65 -[[image:1728378968101-683.png||height="273" width="1307"]]
62 +[[image:1728378968101-683.png||_mstalt="297154" height="210" width="1005"]]
66 66  
67 -[[image:1728379050044-764.png||height="424" width="1312"]]
64 +[[image:1728379050044-764.png||_mstalt="295282" height="326" width="1009"]]
68 68  
69 69  
70 70  **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.**
71 71  
69 += 3.  Connect to The Things Stack =
72 72  
71 +== 3.1 Network Structure ==
73 73  
74 -
73 +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.
74 +
75 +[[image:1732679444539-853.jpg||_mstalt="296933" height="388" width="1452"]]
76 +
77 +== 3.2 Creat Integration for The Things Stack. ==
78 +
79 +(% class="lead" %)
80 +Add Integration
81 +
82 +[[image:1728535775119-971.png||_mstalt="297661" height="456" width="1087"]]
83 +
84 +
85 +(% class="lead" %)
86 +Choose Connection Type
87 +
88 +[[image:1728535857345-950.png||_mstalt="297154"]]
89 +
90 +
91 +(% class="lead" %)
92 +Input Uplink Data Converter Code
93 +
94 +[[image:1728535941851-388.png||_mstalt="297856" height="466" width="398"]]
95 +
96 +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]]
97 +
98 +
99 +(% class="lead" %)
100 +Input Downlink Converter
101 +
102 +[[image:1728536142721-488.png||_mstalt="296127" height="470" width="407"]]
103 +
104 +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]]
105 +
106 +
107 +(% class="lead" %)
108 +Set up Connection to The Things Network application
109 +
110 +[[image:1728536305503-380.png||_mstalt="293254" height="510" width="1206"]]
111 +
112 +
113 +
114 +(% class="lead" %)
115 +Test Connection & Add iIntegration
116 +
117 +[[image:1728536374214-962.png||_mstalt="295893"]]
118 +
119 +After add , we can see the integration here:
120 +
121 +[[image:1728536420275-153.png||_mstalt="293748" height="208" width="1404"]]
122 +
123 +
124 +== 3.3 Test Uplink ==
125 +
126 +We can use Simulate Uplink to simulate an uplink in the things stack. Then we should be able to see the message in ThingsEye
127 +
128 +[[image:1728536524638-768.png||_mstalt="298870" height="493" width="1071"]]
129 +
130 +
131 +[[image:1728536541040-814.png||_mstalt="293215"]]
132 +
133 += 4.Connect chirpstack to Thingseye by way of MQTT =
134 +
135 +* **How to connect chirpstack to Thingseye by way of MQTT? The following tutorial will show you**
136 +
137 +== 4.1 Network Structure ==
138 +
139 +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.
140 +
141 +[[image:1732679647697-982.jpg||_mstalt="299884" height="399" width="1492"]]
142 +
143 +== 4.2 Thingseye adds MQTT integration ==
144 +
145 +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";
146 +
147 +[[image:1758762634175-353.png]]
148 +
149 +== 4.3 Add an uplink and downlink data converter ==
150 +
151 +In the function decoder field, specify the script to parse and transform the data.
152 +
153 +[[image:图片2.png||_mstalt="5131503"]]
154 +
155 +* **Uplink——JavaScript:**
156 +
157 +var data = decodeToJson(payload);
158 +
159 +var deviceName = data.deviceInfo.deviceName;
160 +
161 +var deviceType = data.applicationName;
162 +
163 +var devEui = data.deviceInfo.devEui
164 +
165 +var label = data.deviceInfo.devEui
166 +
167 +var model = {};
168 +
169 +var data2 = data.object;
170 +
171 +var flg = data.fPort
172 +
173 +for (var key in data2) {
174 +
175 + ~/~/ 将属性名存入新对象中
176 +
177 + model[key] = data2[key];
178 +
179 +}
180 +
181 +~/~/var obj = {"devid":deviceName}
182 +
183 +var result = {
184 +
185 + deviceName: deviceName,
186 +
187 + deviceType: deviceType,
188 +
189 + telemetry: model,
190 +
191 + groupName: "Case Study",
192 +
193 + ~/~/label:label,
194 +
195 + attributes:{"devEui":devEui,
196 +
197 + ~/~/"timevalue":"test",
198 +
199 + "inactivityTimeout":1260000
200 +
201 + ~/~/ "High_humidity_alarm":"not set",
202 +
203 + ~/~/ "High_temperature_alarm":"not set",
204 +
205 + ~/~/ "Low_humidity_alarm":"not set",
206 +
207 + ~/~/ "Low_temperature_alarm":"not set",
208 +
209 + ~/~/ "Low_voltage_alarm":"not set"
210 +
211 + ~/~/"customerName": "Civionic Engineering & Consulting (2014) Inc."
212 +
213 + }
214 +
215 +};
216 +
217 +function decodeToString(payload) {
218 +
219 + return String.fromCharCode.apply(String, payload);
220 +
221 +}
222 +
223 +function decodeToJson(payload) {
224 +
225 + var str = decodeToString(payload);
226 +
227 + var data = JSON.parse(str);
228 +
229 + return data;
230 +
231 +}
232 +
233 +return result;
234 +
235 +[[image:图片3.png||_mstalt="5131620"]]
236 +
237 +* **Dowblink——JavaScript:**
238 +
239 +~/~/ Encode downlink data from incoming Rule Engine message
240 +
241 +~/~/ msg - JSON message payload downlink message json
242 +
243 +~/~/ msgType - type of message, for ex. 'ATTRIBUTES_UPDATED', 'POST_TELEMETRY_REQUEST', etc.
244 +
245 +~/~/ metadata - list of key-value pairs with additional data about the message
246 +
247 +~/~/ integrationMetadata - list of key-value pairs with additional data defined in Integration executing this converter
248 +
249 +~/~/ /~*~* Encoder ~*~*/
250 +
251 +~/~/var data = {"value":99};
252 +
253 +~/~/ ~/~/ Process data from incoming message and metadata
254 +
255 +~/~/ data.tempFreq = msg.temperatureUploadFrequency;
256 +
257 +~/~/ data.humFreq = msg.humidityUploadFrequency;
258 +
259 +~/~/ data.devSerialNumber = metadata['ss_serialNumber'];
260 +
261 +~/~/ ~/~/ Result object with encoded downlink payload
262 +
263 +var result = {
264 +
265 + ~/~/ downlink data content type: JSON, TEXT or BINARY (base64 format)
266 +
267 + contentType: "TEXT",
268 +
269 + ~/~/ downlink data
270 +
271 + data: msg.shared_value ,~/~/JSON.stringify(data),
272 +
273 + ~/~/ Optional metadata object presented in key/value format
274 +
275 + metadata: {
276 +
277 + topic: '/test/down/'+metadata.deviceName
278 +
279 + }
280 +
281 +};
282 +
283 +return result;
284 +
285 +== 4.4 Configure the connection ==
286 +
287 +Generate MQTT certificate integrated on chirpstack
288 +
289 +Chirpstack generates CA certificate, TLS certificate, and TLS key respectively
290 +
291 +They correspond to the CA certificate file, Certificate file, and Private key file on thingseye
292 +
293 +[[image:图片4.png||_mstalt="5131737"]]
294 +
295 +[[image:图片5.png||_mstalt="5131854" height="630" width="1269"]]
296 +
297 +* Copy the contents of the certificates and paste them into the linked file below, a total of three certificates are required
298 +
299 +**Integrated Certificate File demo Download Address:**
300 +
301 +[[https:~~/~~/github.com/ThingsEye-io/te-platform/tree/main/chirpstack>>https://github.com/ThingsEye-io/te-platform/tree/main/chirpstack]]
302 +
303 +Enter the server address Host: lns1.thingseye.io on the Connection configuration
304 +
305 +Port: 8883
306 +
307 +Credentials type: PEM
308 +
309 +Upload the certificate and key file
310 +
311 +[[image:图片6.png||_mstalt="5131971"]]
312 +
313 +[[image:图片7.png||_mstalt="5132088"]]
314 +
315 +The default for Topic is:
316 +
317 +application/**chirpstack application id**/device/+/event/up
318 +
319 +[[image:图片8.png||_mstalt="5132205"]]
320 +
321 +
322 +(% class="wikigeneratedid" %)
323 +[[image:屏幕截图 2024-11-25 095805.png||_mstalt="10831028" height="374" width="1272"]]
324 +
325 +== 4.5 Check the connection ==
326 +
327 +[[image:图片9.png||_mstalt="5132322"]]
328 +
329 +[[image:图片10.png||_mstalt="5142449"]]
330 +
331 += 5. Check Data Uplink Log =
332 +
333 +User can check the devices log in Intergration.
334 +
335 +[[image:1729562069134-315.png||_mstalt="294190" height="587" width="723"]]
1728535775119-971.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.EdwinChen
Size
... ... @@ -1,0 +1,1 @@
1 +84.1 KB
Content
1728535857345-950.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.EdwinChen
Size
... ... @@ -1,0 +1,1 @@
1 +29.4 KB
Content
1728535941851-388.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.EdwinChen
Size
... ... @@ -1,0 +1,1 @@
1 +50.3 KB
Content
1728536142721-488.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.EdwinChen
Size
... ... @@ -1,0 +1,1 @@
1 +55.5 KB
Content
1728536305503-380.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.EdwinChen
Size
... ... @@ -1,0 +1,1 @@
1 +135.2 KB
Content
1728536374214-962.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.EdwinChen
Size
... ... @@ -1,0 +1,1 @@
1 +11.8 KB
Content
1728536420275-153.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.EdwinChen
Size
... ... @@ -1,0 +1,1 @@
1 +35.3 KB
Content
1728536524638-768.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.EdwinChen
Size
... ... @@ -1,0 +1,1 @@
1 +46.6 KB
Content
1728536541040-814.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.EdwinChen
Size
... ... @@ -1,0 +1,1 @@
1 +29.0 KB
Content
1728566363151-470.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.EdwinChen
Size
... ... @@ -1,0 +1,1 @@
1 +61.9 KB
Content
1729562069134-315.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.EdwinChen
Size
... ... @@ -1,0 +1,1 @@
1 +67.5 KB
Content
1732678750938-753.jpg
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.hera
Size
... ... @@ -1,0 +1,1 @@
1 +173.5 KB
Content
1732679080974-799.jpg
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.hera
Size
... ... @@ -1,0 +1,1 @@
1 +176.4 KB
Content
1732679444539-853.jpg
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.hera
Size
... ... @@ -1,0 +1,1 @@
1 +180.5 KB
Content
1732679647697-982.jpg
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.hera
Size
... ... @@ -1,0 +1,1 @@
1 +179.2 KB
Content
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
图片1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.hera
Size
... ... @@ -1,0 +1,1 @@
1 +123.1 KB
Content
图片10.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.hera
Size
... ... @@ -1,0 +1,1 @@
1 +173.4 KB
Content
图片2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.hera
Size
... ... @@ -1,0 +1,1 @@
1 +163.3 KB
Content
图片3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.hera
Size
... ... @@ -1,0 +1,1 @@
1 +124.8 KB
Content
图片4.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.hera
Size
... ... @@ -1,0 +1,1 @@
1 +68.8 KB
Content
图片5.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.hera
Size
... ... @@ -1,0 +1,1 @@
1 +98.5 KB
Content
图片6.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.hera
Size
... ... @@ -1,0 +1,1 @@
1 +136.5 KB
Content
图片7.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.hera
Size
... ... @@ -1,0 +1,1 @@
1 +143.5 KB
Content
图片8.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.hera
Size
... ... @@ -1,0 +1,1 @@
1 +151.0 KB
Content
图片9.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.hera
Size
... ... @@ -1,0 +1,1 @@
1 +134.6 KB
Content
屏幕截图 2024-11-25 095805.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.hera
Size
... ... @@ -1,0 +1,1 @@
1 +45.7 KB
Content
屏幕截图 2024-11-27 113616.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.hera
Size
... ... @@ -1,0 +1,1 @@
1 +117.5 KB
Content