Automation - MQTT

From Da Nerd Mage Wiki
Jump to navigation Jump to search
  • Proven on Mint 19.3
  • Proven on SparkyLinux 5.11
  • Proven on raw Debian (With a caveat)
  • Proven on raw Ubuntu

Mosquitto MQTT Broker

Installing Mosquitto

  • sudo apt-get install mosquitto

Pretty simple, eh?

Ensure that Mosquitto broker is running

  • sudo service mosquitto status

expected result is Active: active (running)

Debian Caveat

During an install on a raw Debian system, I discovered that Mosquitto refused connection when I tried to access it with anything other than "localhost" as the hostname...

There is SOME possibility it's a newer version of Mosquitto causing the issue. Further research required...

Apparently, mosquitto 2.0 binds only to the loopback interface unless specifically told otherwise. Why this only seems to be true under Debian is a mystery.

But for now, It's a simple matter of editing the config file for Mosquitto.

  • sudo vi /etc/mosquitto/mosquitto.conf

& add in:

listener 1883
allow_anonymous true

Then,

  • sudo service mosquitto restart

Install client tools for testing etc

(Do this on any machine expected to manually use MQTT)

  • sudo apt install mosquitto-clients

Testing

In a terminal:

  • mosquitto_sub -h localhost -t "mqtt" -v

In another terminal:

  • mosquitto_pub -h localhost -t "mqtt" -m "Hello MQTT"

Now the message “mqtt Hello MQTT” will be displayed in the first terminal where the topic “mqtt” is subscribed.

Subscribing to # gives you a subscription to everything except for topics that start with a $ (these are normally control topics anyway).