Last modified by Hera Guo on 2025/02/18 09:29

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 4.1
edited by Chxy
on 2024/10/08 17:19
Change comment: There is no comment for this version

Summary

Details

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