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

Hide last authors
Hera Guo 1.1 1 **Table of Contents:**
2
3 {{toc/}}
4
Hera Guo 2.1 5 = **How to connect chirpstack to Thingseye by way of MQTT** =
Hera Guo 1.1 6
7 * **How to connect chirpstack to Thingseye by way of MQTT? The following tutorial will show you**
8
Hera Guo 2.1 9 == **Step 1: Thingseye adds MQTT integration** ==
Hera Guo 1.1 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
Hera Guo 2.1 13 [[image:图片1.png||height="655" width="1320"]]
Hera Guo 1.1 14
15
Hera Guo 2.1 16 == **Step 2. Add an uplink and downlink data converter** ==
Hera Guo 1.1 17
18 In the function decoder field, specify the script to parse and transform the data.
19
Hera Guo 2.1 20 [[image:图片2.png||height="653" width="1315"]]
Hera Guo 1.1 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
Hera Guo 2.1 105 [[image:图片3.png||height="657" width="1324"]]
Hera Guo 1.1 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
Hera Guo 2.1 168 == **Step 3. Configure the connection** ==
Hera Guo 1.1 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
Hera Guo 2.1 177 [[image:图片4.png||height="669" width="1348"]]
Hera Guo 1.1 178
Hera Guo 2.1 179 [[image:图片5.png||height="669" width="1348"]]
Hera Guo 1.1 180
Hera Guo 3.1 181 * Copy the contents of the certificates and paste them into the linked file below, a total of three certificates are required
Hera Guo 1.1 182
Hera Guo 3.1 183 **Integrated Certificate File demo Download Address:**
Hera Guo 1.1 184
Hera Guo 3.1 185 [[https:~~/~~/github.com/ThingsEye-io/te-platform/tree/main/chirpstack>>https://github.com/ThingsEye-io/te-platform/tree/main/chirpstack]]
186
Hera Guo 1.1 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
Hera Guo 2.1 195 [[image:图片6.png||height="672" width="1353"]]
Hera Guo 1.1 196
Hera Guo 2.1 197 [[image:图片7.png||height="671" width="1352"]]
Hera Guo 1.1 198
199
200 The default for Topic is:
201
202 application/**chirpstack application id**/device/+/event/up
203
Hera Guo 2.1 204 [[image:图片8.png||height="673" width="1356"]]
Hera Guo 1.1 205
Hera Guo 2.1 206 [[image:1732500689044-955.png]]
Hera Guo 1.1 207
Hera Guo 2.1 208 == Step 4. Check the connection ==
Hera Guo 1.1 209
Hera Guo 2.1 210 [[image:图片9.png||height="718" width="1446"]]
Hera Guo 1.1 211
Hera Guo 2.1 212
213 [[image:图片10.png||height="711" width="1432"]]