How to Enable and Set Up the Edge Device MQTT Broker
  • 04 Dec 2024
  • 2 Minutes to read
  • Contributors

How to Enable and Set Up the Edge Device MQTT Broker


Article summary

Purpose

Learn how to set up an external MQTT broker on Tulip Edge Devices

Beginning with OS 50.1, Tulip Edge Devices have an external MQTT broker to which client devices can connect.

Instructions

  1. Log into the Edge Device Portal.
  2. At the bottom of the "Network configuration" section, select the "MQTT Broker" option.

  1. Click "Enable", enter in a desired username and password, and hit "Save".

Using the MQTT Broker with Node-RED

To confirm the broker is available, we can use a Node-RED MQTT IN node.

  1. If Node-RED is off, turn it on and log in to the Node-RED editor.
  2. Add an MQTT node to your flow and edit the node.

  1. Click the pencil button to open the broker configuration and set "Server" to localhost.

  1. Click on the "Security" tab and enter the username and password configured for the broker.

  1. Click "Update" to save the settings.
  2. Click "Deploy" to check if the node can connect to the broker.

Example Node-RED Flow

The example below can be saved as a JSON file and imported to Node-RED to send a "world" message to the "hello" topic.

[  
   {  
      "id":"c8829f45.d66fd",  
      "type":"tab",  
      "label":"Flow 1",  
      "disabled":false,  
      "info":""  
   },  
   {  
      "id":"983032d6.f2f378",  
      "type":"debug",  
      "z":"c8829f45.d66fd",  
      "name":"",  
      "active":true,  
      "tosidebar":true,  
      "console":false,  
      "tostatus":false,  
      "complete":"topic",  
      "targetType":"msg",  
      "statusVal":"",  
      "statusType":"auto",  
      "x":800,  
      "y":180,  
      "wires":[  
           
      ]  
   },  
   {  
      "id":"39d4c518.6948ba",  
      "type":"inject",  
      "z":"c8829f45.d66fd",  
      "name":"",  
      "props":[  
         {  
            "p":"payload"  
         },  
         {  
            "p":"topic",  
            "vt":"str"  
         }  
      ],  
      "repeat":"",  
      "crontab":"",  
      "once":false,  
      "onceDelay":0.1,  
      "topic":"hello",  
      "payload":"world",  
      "payloadType":"str",  
      "x":480,  
      "y":120,  
      "wires":[  
         [  
            "33035adc.d4eae6"  
         ]  
      ]  
   },  
   {  
      "id":"f7839332.ea3a98",  
      "type":"mqtt in",  
      "z":"c8829f45.d66fd",  
      "name":"MQTT Receive All",  
      "topic":"##",  
      "qos":"2",  
      "datatype":"auto",  
      "broker":"6f327e4f.0a172",  
      "nl":false,  
      "rap":true,  
      "rh":0,  
      "x":450,  
      "y":200,  
      "wires":[  
         [  
            "983032d6.f2f378",  
            "97df7c35.a8d228"  
         ]  
      ]  
   },  
   {  
      "id":"33035adc.d4eae6",  
      "type":"mqtt out",  
      "z":"c8829f45.d66fd",  
      "name":"MQTT Send Hello",  
      "topic":"",  
      "qos":"",  
      "retain":"",  
      "respTopic":"",  
      "contentType":"",  
      "userProps":"",  
      "correl":"",  
      "expiry":"",  
      "broker":"6f327e4f.0a172",  
      "x":830,  
      "y":120,  
      "wires":[  
           
      ]  
   },  
   {  
      "id":"97df7c35.a8d228",  
      "type":"debug",  
      "z":"c8829f45.d66fd",  
      "name":"",  
      "active":true,  
      "tosidebar":true,  
      "console":false,  
      "tostatus":false,  
      "complete":"payload",  
      "targetType":"msg",  
      "statusVal":"",  
      "statusType":"auto",  
      "x":810,  
      "y":240,  
      "wires":[  
           
      ]  
   },  
   {  
      "id":"6f327e4f.0a172",  
      "type":"mqtt-broker",  
      "name":"",  
      "broker":"localhost",  
      "port":"1883",  
      "clientid":"",  
      "usetls":false,  
      "protocolVersion":"5",  
      "keepalive":"60",  
      "cleansession":true,  
      "birthTopic":"",  
      "birthQos":"0",  
      "birthPayload":"",  
      "birthMsg":{  
           
      },  
      "closeTopic":"",  
      "closeQos":"0",  
      "closePayload":"",  
      "closeMsg":{  
           
      },  
      "willTopic":"",  
      "willQos":"0",  
      "willPayload":"",  
      "willMsg":{  
           
      },  
      "sessionExpiry":""  
   }  
]

Did you find what you were looking for?

You can also head to community.tulip.co to post your question or see if others have faced a similar question!


Was this article helpful?