Changes for page ThingsBoard

Last modified by Dilisi S on 2025/04/23 19:23

From version 181.1
edited by Dilisi S
on 2025/03/27 02:49
Change comment: Uploaded new attachment "Screenshot 2025-03-26 at 19.49.31.png", version {1}
To version 191.1
edited by Dilisi S
on 2025/03/27 23:16
Change comment: Uploaded new attachment "integration-active.png", version {1}

Summary

Details

Page properties
Content
... ... @@ -205,29 +205,31 @@
205 205  [[image:create-new-converter-menu.png||height="259" width="500"]]
206 206  
207 207  
208 -The **Add data converter** window will appear. Name it ‘**MQTT Uplink Converter NB/CB**’ and select the Type as **Uplink**.
208 +The **Add data converter** window will appear.
209 209  
210 +Let's create an uplink data converter for the device named '**Device A**'. Name it ‘**MQTT Uplink Converter - Device A**’ and select the Type as **Uplink**.
211 +
210 210  Click on the **TBEL** button if it has not been selected by default.
211 211  
212 212  Modify the default TBEL function to match with your device as described below:
213 213  
214 214  
215 -~1. Uncomment line 11:
217 +* Uncomment** line 11**:
216 216  
217 -var data = decodeToJson(payload)
219 +//var data = decodeToJson(payload)//
218 218  
219 -[[image:Screenshot 2025-03-26 at 18.15.08.png||height="219" width="500"]]
220 220  
222 +* **Line 13**: Assign your device name to the **deviceName** field. - We used **Device A** as it is to match with our device, **Device A **in the Devices section.
223 +* From **line 38**: Modify the telemetry section to allow parsed data to be assigned to the fields.
221 221  
222 -3. Modify the telemetry section to allow parsed data to be assigned to the fields.
223 -
224 -telemetry: {
225 +//telemetry: {
225 225   temperature: data.temperature,
226 226   humidity: data.humidity,
227 227   rawData: payloadStr
228 - }
229 + }//
229 229  
230 230  
232 +The modified uplink decoder function to match with **Device A** is shown below.
231 231  
232 232  {{code language="JavaScript"}}
233 233  // Decode an uplink message from a buffer
... ... @@ -242,7 +242,7 @@
242 242  // decode payload to JSON
243 243  var data = decodeToJson(payload);
244 244  
245 -var deviceName = 'Device B';
247 +var deviceName = 'Device A';
246 246  var deviceType = 'thermostat';
247 247  var customerName = 'Customer C';
248 248  var groupName = 'thermostat devices';
... ... @@ -279,33 +279,21 @@
279 279  return result;
280 280  {{/code}}
281 281  
282 -We use the same decoder function for all our devices. However, you need to modify a few things for each device. Among these, **deviceName** is a **mandatory** field. You should assign a device name to the **deviceName** field that matches the name of your device in the **Devices** section.
283 283  
284 -For example, if your device name is **Device B**, you can change **Device A** to **Device B**.
285 -
286 -
287 -{{code language="JavaScript"}}
288 -var deviceName = 'Device A';
289 -var deviceType = 'thermostat';
290 -var customerName = 'Customer C';
291 -var groupName = 'thermostat devices';
292 -var manufacturer = 'Example corporation';
293 -{{/code}}
294 -
295 -
296 296  Once you modify the decoder function, click on the **Add** button.
297 297  
298 298  
299 -[[image:mqtt-uplink.png||width="500"]]
300 300  
289 +[[image:ul-data-converter-device-a.png||height="524" width="500"]]
301 301  
302 302  
303 303  You should see that the newly added **MQTT Uplink converter **NB/CB is listed on the **Data Converters** page.
304 304  
305 305  
306 -[[image:data-converter-list-showing-uplink-dc.png]]
295 +[[image:ul-data-converter-added.png||height="257"]]
307 307  
308 308  
298 +
309 309  = 5. Add Integration =
310 310  
311 311  
... ... @@ -326,7 +326,7 @@
326 326  **Basic settings:**
327 327  
328 328  * **Integration type**: MQTT
329 -* **Name**: MQTT integration NB/CB
319 +* **Name**: MQTT integration - Device A
330 330  * **Enable integration**: YES
331 331  * **Allows create devices or assets**: YES
332 332  
... ... @@ -333,9 +333,11 @@
333 333  Click **Next** button.
334 334  
335 335  
336 -[[image:add-integration-basic-settings.png||height="511" width="500"]]
326 +[[image:add-integration-basic-settings.png||height="504" width="500"]]
337 337  
338 338  
329 +
330 +
339 339  **Uplink data converter:**
340 340  
341 341  * Click on the **Select existing** button.
... ... @@ -344,9 +344,10 @@
344 344  Click **Next** button.
345 345  
346 346  
347 -[[image:add-integration-uplink-data-converter.png||height="511" width="500"]]
339 +[[image:add-integration-ul-data-converter.png||height="505" width="500"]]
348 348  
349 349  
342 +
350 350  **Downlink data converter:**
351 351  
352 352  Dragino NB/CB devices don't require a downlink data converter to decode their payloads, so you can skip this step.
... ... @@ -362,18 +362,20 @@
362 362  
363 363  **Connection:**
364 364  
365 -* **Host**: Cluster URL (Eg. **//011731f7xxxxxxxxxxxfbbedfc63f4.s1.eu.hivemq.cloud//**)
358 +* **Host**: Host URL (Eg. **//011731f7xxxxxxxxxxxfbbedfc63f4.s1.eu.hivemq.cloud//**)
366 366  * **Port**: 8883
367 -* **Credentials**: Basic
368 -* **Enable SSL**: YES
360 +* **Credentials type**: Basic
369 369  * **Username**: Username (from your HiveMQ Cloud Cluster with your credentials)
370 370  * **Password:** Password (from your HiveMQ Cloud Cluster with your credentials)
371 -* **Topic: v1/devices/me/telemetry** (The topic can be anything; you can even use just the device name. For example, you can use your device name here, such as devices/a/telemetry.)
363 +* **Enable SSL**: YES
364 +* **Topic: device/a** (The topic can be anything; you can even use just the device name.)
372 372  * **QoS:** 0-At most once
373 373  
374 -[[image:add-integration-connection.png||height="511" width="500"]]
375 375  
376 376  
369 +[[image:add-integartion-connection.png||height="505" width="500"]]
370 +
371 +
377 377  Click on the **Advanced settings** button.
378 378  
379 379  * **Clean session:** YES
... ... @@ -412,15 +412,15 @@
412 412  
413 413  We use the Mosquitto MQTT client to simulate MQTT messages, acting as a virtual device. First, install the Mosquitto client on your computer from [[this link>>url:https://mosquitto.org/download/]]. The Mosquitto client publishes messages to the MQTT broker (HiveMQ) on a specified MQTT topic. ThingsBoard subscribes to these messages using the same topic.
414 414  
415 -The Mosquitto client publishes messages (payloads) on the topic **v1/devices/me/telemetry**. Of course, you can use any topic for testing.
410 +The Mosquitto client publishes messages (payloads) on the topic **/device/a**. Of course, you can use any topic for testing.
416 416  
417 -(% id="cke_bm_37386S" style="display:none" %) (%%)The MQTT payload format is as follows, which is common for all **~-~-NB** and **~-~-CB** series devices. The **IMEI** field is mandatory and is used to provision a new device with the name assigned to it in ThingsBoard.
412 +(% id="cke_bm_37386S" style="display:none" %) (%%)The MQTT payload format is as follows:
418 418  
419 419  {{code language="none"}}
420 -{"IMEI": "S31B-NB", "temperature": 27, ......}
415 +{"IMEI": "350693903995577", "temperature":25, "humidity":80, "pressure":1005}
421 421  {{/code}}
422 422  
423 -Once ThingsBoard receives this message, it automatically creates (provisions) the device mentioned in the **IMEI**, for example, S31B-NB.
418 +Once ThingsBoard receives this message, it forwards this payload to the matching device through the integration.
424 424  
425 425  
426 426  == 5.2 Sending messages ==
... ... @@ -429,7 +429,7 @@
429 429  On the terminal, issue the following MQTT command which simulates the device S31B-NB. The message payload contains the fields temperature and humidity, which hold the values S31B-NB and 27, respectively. This payload is also (technically) known as telemetry.
430 430  
431 431  {{code language="none"}}
432 -mosquitto_pub -d -q 1 -h 011731f7928xxxxx.s1.eu.hivemq.cloud -p 8883 -t "v1/devices/me/telemetry" -u "xxxxx" -P "xxxxx" -m '{"IMEI": "S31B-NB", "temperature": 27}'
427 +mosquitto_pub -d -q 1 -h 011731f7928xxxxx.s1.eu.hivemq.cloud -p 8883 -u "xxxxx" -P "xxxxx" -t "device/a" -m '{"IMEI":"350693903995577", "temperature":30, "humidity":80, "pressure":1005}'
433 433  {{/code}}
434 434  
435 435  If the integration was performed without errors, the status of the integration changes to 'Active' after the first telemetry transmission.
... ... @@ -438,12 +438,8 @@
438 438  [[image:integration-active.png]]
439 439  
440 440  
441 -Also, a new device named **S31B-NB** will appear under **//Entities -> Devices -> All//**. This means the first MQTT message triggers ThingsBoard to provision a device named **S31B-NB**.
442 442  
443 443  
444 -[[image:new-device.png]]
445 -
446 -
447 447  == 6.3 Viewing messages ==
448 448  
449 449  
... ... @@ -469,18 +469,22 @@
469 469  
470 470  Select the Event type as **Debug** from the dropdown list.
471 471  
472 -Now you can see all the Uplink messages you are simulating through the MQTT broker. The status should be OK if there is no errors in your integration.
463 +Now you can see all the Uplink messages you are simulating through the MQTT broker. The status should be **OK **if there is no errors in your integration.
473 473  
474 474  
475 -[[image:Screenshot 2025-03-16 at 18.38.59.png]]
466 +[[image:Screenshot 2025-03-26 at 19.49.31.png]]
476 476  
477 477  
469 +
470 +
478 478  Then click on the **three dots (...)** in the **Message** column. You can see the uplink message's **payload** in the **Message** window.
479 479  
480 480  
481 -[[image:Screenshot 2025-03-16 at 18.39.12.png]]
474 +[[image:Screenshot 2025-03-26 at 19.47.52.png]]
482 482  
483 483  
477 +
478 +
484 484  Now, you have successfully tested your integration with a simulated uplink payload and verified that it is received by ThingsBoard, and the device is provisioned.
485 485  
486 486  
... ... @@ -598,4 +598,3 @@
598 598  [[image:image-4.png]]
599 599  
600 600  
601 -
add-integration-basic-settings.png
Size
... ... @@ -1,1 +1,1 @@
1 -122.5 KB
1 +123.8 KB
Content
integration-active.png
Size
... ... @@ -1,1 +1,1 @@
1 -64.2 KB
1 +64.1 KB
Content
add-integartion-connection.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.pradeeka
Size
... ... @@ -1,0 +1,1 @@
1 +110.3 KB
Content
add-integartion-connetcion.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.pradeeka
Size
... ... @@ -1,0 +1,1 @@
1 +146.0 KB
Content
add-integration-ul-data-converter.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.pradeeka
Size
... ... @@ -1,0 +1,1 @@
1 +121.2 KB
Content
integration-added.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.pradeeka
Size
... ... @@ -1,0 +1,1 @@
1 +196.2 KB
Content
ul-data-converter-added.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.pradeeka
Size
... ... @@ -1,0 +1,1 @@
1 +189.4 KB
Content
ul-data-converter-device-a.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.pradeeka
Size
... ... @@ -1,0 +1,1 @@
1 +168.3 KB
Content