How to Install and Run The Mosca MQTT Broker on Node-Red

node-red-mosca-iconRather than use an external broker like mosquitto with node-red you can install Mosca which is a MQTT broker written in node.js.

Because Mosca isn’t part of the core nodes you need to install it using the npm package manager or through the Node-red Admin control panel.



Mosca Install Using Node-red Admin

In the node-red admin go to Settings and manage Pallette.

node-red-settings

Click on the install tab and search for node-red-contrib-mqtt.

You should see a list of options. The node-red-contrib-mqtt-broker is the module you need to install.Install-mosca-broker

Mosca-node

After the install you should find a new node called mosca under the input categories.

Drag and drop on the Canvas to use.

Mosca Node Configuration

The node properties is a single page and with very few settings.mosca-node-properties

You need to set the ports for standard MQTT and MQTT over websockets.

I used 1884 as I also run mosquitto on 1883.

The username and password fields don’t seem to have any effect as so you can leave them blank.

The mongo database field should I assume log serve data to a database but I haven’t configured this as yet.

Testing The Install

You can use any MQTT client for testing the broker.The easiest is to use the MQTT input and output nodes.

Here is a screen shot of my test flow:

Mosca-test-flow

Here is the flow code which you can import into your own flow:

[{"id":"72147d2d.44f4d4","type":"debug","z":"eb695aa9.0527e","name":"","active":true,"console":"false","complete":"false","x":331,"y":164,"wires":[]},{"id":"91f5338c.38bbc8","type":"mosca in","z":"eb695aa9.0527e","mqtt_port":"1884","mqtt_ws_port":8080,"name":"","username":"steve","password":"password","dburl":"","x":149,"y":105,"wires":[[]]},{"id":"1a2ed5c8.b06cf2","type":"mqtt in","z":"eb695aa9.0527e","name":"","topic":"sensors/moscatest","qos":"0","broker":"c6953943.ef9508","x":132,"y":165,"wires":[["72147d2d.44f4d4"]]},{"id":"87156fac.5e8bb","type":"mqtt out","z":"eb695aa9.0527e","name":"","topic":"","qos":"","retain":"","broker":"c6953943.ef9508","x":331,"y":230,"wires":[]},{"id":"d7f781ca.ab16e","type":"inject","z":"eb695aa9.0527e","name":"send message","topic":"sensors/moscatest","payload":"test message","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":145,"y":230,"wires":[["87156fac.5e8bb"]]},{"id":"c6953943.ef9508","type":"mqtt-broker","z":"","name":"Mosca","broker":"localhost","port":"1884","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"willTopic":"","willQos":"0","willPayload":"","birthTopic":"","birthQos":"0","birthPayload":""}]

Summary

The Node-Red mosca node is useful for testing it may also be useful for small home automation networks.

It is not really suitable for a production environment.

I will be watching to see what happens with this node going forward.

Related Tutorials and Resources

Please rate? And use Comments to let me know more
[Total: 1    Average: 3/5]

Leave a Reply

Your email address will not be published. Required fields are marked *