Last modified by Hera Guo on 2024/11/26 12:12

Show last authors
1 **Table of Contents:**
2
3 {{toc/}}
4
5 = **How to connect chirpstack to Thingseye by way of MQTT** =
6
7 * **How to connect chirpstack to Thingseye by way of MQTT? The following tutorial will show you**
8
9 == **Step 1: Thingseye adds MQTT integration** ==
10
11 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";
12
13 [[image:图片1.png||height="655" width="1320"]]
14
15
16 == **Step 2. Add an uplink and downlink data converter** ==
17
18 In the function decoder field, specify the script to parse and transform the data.
19
20 [[image:图片2.png||height="653" width="1315"]]
21
22 * **Uplink——JavaScript:**
23
24 var data = decodeToJson(payload);
25
26 var deviceName = data.deviceInfo.deviceName;
27
28 var deviceType = data.applicationName;
29
30 var devEui = data.deviceInfo.devEui
31
32 var label = data.deviceInfo.devEui
33
34 var model = {};
35
36 var data2 = data.object;
37
38 var flg = data.fPort
39
40 for (var key in data2) {
41
42 ~/~/ 将属性名存入新对象中
43
44 model[key] = data2[key];
45
46 }
47
48 ~/~/var obj = {"devid":deviceName}
49
50
51 var result = {
52
53 deviceName: deviceName,
54
55 deviceType: deviceType,
56
57 telemetry: model,
58
59 groupName: "Case Study",
60
61 ~/~/label:label,
62
63 attributes:{"devEui":devEui,
64
65 ~/~/"timevalue":"test",
66
67 "inactivityTimeout":1260000
68
69 ~/~/ "High_humidity_alarm":"not set",
70
71 ~/~/ "High_temperature_alarm":"not set",
72
73 ~/~/ "Low_humidity_alarm":"not set",
74
75 ~/~/ "Low_temperature_alarm":"not set",
76
77 ~/~/ "Low_voltage_alarm":"not set"
78
79 ~/~/"customerName": "Civionic Engineering & Consulting (2014) Inc."
80
81 }
82
83 };
84
85 function decodeToString(payload) {
86
87 return String.fromCharCode.apply(String, payload);
88
89 }
90
91
92 function decodeToJson(payload) {
93
94 var str = decodeToString(payload);
95
96 var data = JSON.parse(str);
97
98 return data;
99
100 }
101
102
103 return result;
104
105 [[image:图片3.png||height="657" width="1324"]]
106
107 * **Dowblink——JavaScript:**
108
109 ~/~/ Encode downlink data from incoming Rule Engine message
110
111
112 ~/~/ msg - JSON message payload downlink message json
113
114 ~/~/ msgType - type of message, for ex. 'ATTRIBUTES_UPDATED', 'POST_TELEMETRY_REQUEST', etc.
115
116 ~/~/ metadata - list of key-value pairs with additional data about the message
117
118 ~/~/ integrationMetadata - list of key-value pairs with additional data defined in Integration executing this converter
119
120
121 ~/~/ /~*~* Encoder ~*~*/
122
123
124 ~/~/var data = {"value":99};
125
126
127 ~/~/ ~/~/ Process data from incoming message and metadata
128
129
130 ~/~/ data.tempFreq = msg.temperatureUploadFrequency;
131
132 ~/~/ data.humFreq = msg.humidityUploadFrequency;
133
134
135 ~/~/ data.devSerialNumber = metadata['ss_serialNumber'];
136
137
138 ~/~/ ~/~/ Result object with encoded downlink payload
139
140 var result = {
141
142
143 ~/~/ downlink data content type: JSON, TEXT or BINARY (base64 format)
144
145 contentType: "TEXT",
146
147
148 ~/~/ downlink data
149
150 data: msg.shared_value ,~/~/JSON.stringify(data),
151
152
153 ~/~/ Optional metadata object presented in key/value format
154
155 metadata: {
156
157 topic: '/test/down/'+metadata.deviceName
158
159 }
160
161
162 };
163
164
165 return result;
166
167
168 == **Step 3. Configure the connection** ==
169
170 Generate MQTT certificate integrated on chirpstack
171
172 Chirpstack generates CA certificate, TLS certificate, and TLS key respectively
173
174 They correspond to the CA certificate file, Certificate file, and Private key file on thingseye
175
176
177 [[image:图片4.png||height="669" width="1348"]]
178
179 [[image:图片5.png||height="669" width="1348"]]
180
181 * Copy the contents of the certificates and paste them into the linked file below, a total of three certificates are required
182
183 **Integrated Certificate File demo Download Address:**
184
185 [[https:~~/~~/github.com/ThingsEye-io/te-platform/tree/main/chirpstack>>https://github.com/ThingsEye-io/te-platform/tree/main/chirpstack]]
186
187 Enter the server address Host: lns1.thingseye.io on the Connection configuration
188
189 Port: 8883
190
191 Credentials type: PEM
192
193 Upload the certificate and key file
194
195 [[image:图片6.png||height="672" width="1353"]]
196
197 [[image:图片7.png||height="671" width="1352"]]
198
199
200 The default for Topic is:
201
202 application/**chirpstack application id**/device/+/event/up
203
204 [[image:图片8.png||height="673" width="1356"]]
205
206 [[image:1732500689044-955.png]]
207
208 == Step 4. Check the connection ==
209
210 [[image:图片9.png||height="718" width="1446"]]
211
212
213 [[image:图片10.png||height="711" width="1432"]]