Changes for page ThingsBoard
Last modified by Dilisi S on 2025/04/23 19:23
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (1 modified, 7 added, 0 removed)
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.Uncomment217 +* 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/CB319 +* **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="5 11" 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-u plink-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**: ClusterURL (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":7,......}415 +{"IMEI": "350693903995577", "temperature":25, "humidity":80, "pressure":1005} 421 421 {{/code}} 422 422 423 -Once ThingsBoard receives this message, it automaticallycreates(provisions)the devicementionedinhe**IMEI**, forexample, 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 -12 2.5KB1 +123.8 KB - Content
- Screenshot 2025-03-26 at 19.47.52.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.pradeeka - Size
-
... ... @@ -1,0 +1,1 @@ 1 +168.4 KB - Content
- Screenshot 2025-03-26 at 19.49.31.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.pradeeka - Size
-
... ... @@ -1,0 +1,1 @@ 1 +133.0 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
- 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