<
From version < 170.1 >
edited by Dilisi S
on 2025/03/19 21:00
To version < 167.1 >
edited by Dilisi S
on 2025/03/19 03:36
>
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -329,10 +329,72 @@
329 329  [[image:data-converter-list-showing-uplink-dc.png]]
330 330  
331 331  
332 +== 3.2 Downlink ==
332 332  
333 333  
335 +On the **Data converters** page, click on the ‘**+**’ button, and then click on the **Create new converter** from the dropdown menu.
334 334  
335 335  
338 +[[image:create-new-converter-menu.png||width="500"]]
339 +
340 +
341 +
342 +The **Add data converter** window will appear. Name it ‘**MQTT Downlink Converter NB/CB**’ and select the Type as **Downlink**.
343 +
344 +Click on the **TBEL** button if not selected it by default. Now copy and paste the following encoder function written in **TBEL (ThingsBoard Expression Language)** in to the **code editor**. This encoder function is compatible for both NB and CB series devices.
345 +
346 +
347 +{{code language="JavaScript"}}
348 +// Encode downlink data from incoming Rule Engine message
349 +
350 +// msg - JSON message payload downlink message json
351 +// msgType - type of message, for ex. 'ATTRIBUTES_UPDATED', 'POST_TELEMETRY_REQUEST', etc.
352 +// metadata - list of key-value pairs with additional data about the message
353 +// integrationMetadata - list of key-value pairs with additional data defined in Integration executing this converter
354 +
355 +/** Encoder **/
356 +
357 +var data = {};
358 +
359 +// Process data from incoming message and metadata
360 +
361 +data.tempFreq = msg.temperatureUploadFrequency;
362 +data.humFreq = msg.humidityUploadFrequency;
363 +
364 +data.devSerialNumber = metadata['ss_serialNumber'];
365 +
366 +// Result object with encoded downlink payload
367 +var result = {
368 +
369 + // downlink data content type: JSON, TEXT or BINARY (base64 format)
370 + contentType: "JSON",
371 +
372 + // downlink data
373 + data: JSON.stringify(data),
374 +
375 + // Optional metadata object presented in key/value format
376 + metadata: {
377 + topic: metadata['deviceType']+'/'+metadata['deviceName']+'/upload'
378 + }
379 +
380 +};
381 +
382 +return result;
383 +{{/code}}
384 +
385 +
386 +Click on the **Add** button.
387 +
388 +
389 +[[image:add-downlink-data-converter.png||height="529" width="500"]]
390 +
391 +
392 +You should see that the newly added **MQTT Downlink** Converter NB/CB is listed on the **Data Converters** page.
393 +
394 +
395 +[[image:data-converters-list.png]]
396 +
397 +
336 336  = 4. Add Integration =
337 337  
338 338  
... ... @@ -473,6 +473,7 @@
473 473  == 5.3 Viewing messages ==
474 474  
475 475  
538 +
476 476  Go back to the **Integrations** page.
477 477  
478 478  Click on the **MQTT integration NB/CB** in the **Integrations** page to see its details.
... ... @@ -495,7 +495,7 @@
495 495  
496 496  Select the Event type as **Debug** from the dropdown list.
497 497  
498 -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.
561 +Now you can see all the Uplink messages you are simulating through the MQTT broker. The status should
499 499  
500 500  
501 501  [[image:Screenshot 2025-03-16 at 18.38.59.png]]
... ... @@ -518,11 +518,6 @@
518 518  This section guides you on how to create a dashboard to display temperature and humidity data from the device on a time-series chart. You may also use other widgets in ThingsBoard to display data according to your requirements.
519 519  
520 520  
521 -First simulate a few messages using MQTT. This time, we have added the 'humidity' field to the payload. Eg:
522 -
523 -{{code language="none"}}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": 22, "humidity":80}'{{/code}}
524 -
525 -
526 526  In **ThingsBoard**, from the left navigation menu, click **Dashboards**. Then, click the **+** button and select **Create new dashboard** from the dropdown menu.
527 527  
528 528  
... ... @@ -579,11 +579,11 @@
579 579  
580 580  
581 581  {{code language="none"}}
582 -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": 22, "humidity":70}'
640 +mosquitto_pub -d -q 1 -h 011731f7928xxxxx.s1.eu.hivemq.cloud -p 8883 -t "tb/mqtt-integration-tutorial/sensors/S31B-NB/telemetry" -u "xxxxx" -P "xxxxx" -m '{"temperature":20, "humidity":70}'
583 583  
584 -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, "humidity":72}'
642 +mosquitto_pub -d -q 1 -h 011731f7928xxxxx.s1.eu.hivemq.cloud -p 8883 -t "tb/mqtt-integration-tutorial/sensors/S31B-NB/telemetry" -u "xxxxx" -P "xxxxx" -m '{"temperature":22, "humidity":71}'
585 585  
586 -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": 19, "humidity":80}'
644 +mosquitto_pub -d -q 1 -h 011731f7928xxxxx.s1.eu.hivemq.cloud -p 8883 -t "tb/mqtt-integration-tutorial/sensors/S31B-NB/telemetry" -u "xxxxx" -P "xxxxx" -m '{"temperature":18, "humidity":79}'
587 587  
588 588  {{/code}}
589 589  
... ... @@ -604,8 +604,8 @@
604 604  **AT Commands**
605 605  
606 606  * **AT+PRO=3,3    **~/~/ Use MQTT to connect to ThingsBoard. Payload Type set to 3.
607 -* **AT+SUBTOPIC=<MQTT subscribe topic> **
608 -* **AT+PUBTOPIC=<MQTT publish topic> Eg: TS01-NB**
665 +* **AT+SUBTOPIC=<MQTT topic>**
666 +* **AT+PUBTOPIC=<MQTT topic>**
609 609  * **AT+CLIENT=null**
610 610  * **AT+UNAME=<MQTT Username>**
611 611  * **AT+PWD=<MQTT Password>**
... ... @@ -614,9 +614,5 @@
614 614  Test your uplink by pressing the ACT button for 1 second.
615 615  
616 616  
617 -The following image shows the uplink payload of a real Dragino device. The publish topic is **TS01-NB**, and the device name is **861275077962896**, which is represented by the **IMEI**.
618 618  
619 -[[image:image-4.png]]
620 -
621 -
622 622  
Copyright ©2010-2024 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0