Difference between revisions of "Automation - MQTT"

From Da Nerd Mage Wiki
Jump to navigation Jump to search
 
(25 intermediate revisions by the same user not shown)
Line 1: Line 1:
*Proven on Mint 19.3
{{{!}} class="wikitable" style="float: right; width: 322px;" border="2"
*Proven on SparkyLinux 5.11
{{!}}+ Proven on:
*Proven on raw Debian (With a [[#Debian Caveat{{!}}caveat]])
{{!}}- <!-- Debian -->
*Proven on raw Ubuntu
{{!}} style="text-align: center; width: 60px;" {{!}} [[File:Logo Debian.png{{!}}60px{{!}}link=https://www.debian.org/{{!}}center{{!}}middle{{!}}frameless]]
{{!}} style="text-align: center; width: 40px;" {{!}} 11 (bullseye)
{{!}} ([[#Debian / Version Caveat{{!}}caveat]])
<br>
{{!}}- <!-- LMDE -->
{{!}} style="text-align: center; width: 65.675px;" {{!}} [[File:Logo LMDE.png{{!}}60px{{!}}link=https://linuxmint.com/edition.php?id=279{{!}}center{{!}}middle{{!}}frameless]]
{{!}} 4
{{!}} ([[#Debian / Version Caveat{{!}}caveat]])
<br>
{{!}}- <!-- Linux Mint -->
{{!}} style="text-align: center; width: 67.5125px;" {{!}} [[File:Logo Mint.png{{!}}60px{{!}}link=https://linuxmint.com{{!}}center{{!}}middle{{!}}frameless]]
{{!}} 19.3 / 20.3
{{!}}
<br>
{{!}}- <!-- Ubuntu -->
{{!}} style="text-align: center; width: 65.7px;" {{!}} [[File:Logo Ubuntu.png{{!}}60px{{!}}link=https://ubuntu.com/{{!}}center{{!}}middle{{!}}frameless]]
{{!}} 20.04.3
{{!}}
<br>
{{!}}- <!-- Sparky Linux -->
{{!}} style="text-align: center; width: 65.7px;" {{!}} [[File:Logo Sparky.png{{!}}60px{{!}}link=https://sparkylinux.org/{{!}}center{{!}}middle{{!}}frameless]]
{{!}} 5.11
{{!}} ([[#Debian / Version Caveat{{!}}caveat]])
<br>
{{!}}}


[https://mosquitto.org/ Mosquitto MQTT Broker]
[https://mosquitto.org/ Mosquitto MQTT Broker]
{{{!}} class="wikitable" style="border-collapse: collapse; width: 33%; left;"
{{!}}- style="text-align: center;" 
! style="width: 50%;" colspan="2" {{!}} As always...
{{!}}-
{{!}} {{!}}
Start with:
{{!}} {{!}}
*<code>sudo apt update</code>
*<code>sudo apt upgrade</code>
{{!}}}


= Installing Mosquitto =
= Installing Mosquitto =
Line 11: Line 46:
Pretty simple, eh?
Pretty simple, eh?


(Tho...  If you want the latest & gratest and you're feeling adventurous...  There's a [[Mosquitto from Source|CopyPasta page here]].)
== Ensure that Mosquitto broker is running ==
== Ensure that Mosquitto broker is running ==


Line 16: Line 52:
expected result is <u><code>Active: active (running)</code></u>
expected result is <u><code>Active: active (running)</code></u>


== Debian Caveat ==
== Note: Ubuntu repositories have an outdated version ==
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.
 
* <code class="mwt-code">sudo vi /etc/mosquitto/mosquitto.conf</code>
 
& add in:
 
listener 1883
allow_anonymous true


Then,
If you want to know which version you've installed...


* <code class="mwt-code">sudo service mosquitto restart</code>
*<code>sudo mosquitto</code>
(Ignore the error message "Error: Address already in use". It's already running as a service.)


= Install client tools for testing etc =
= Install client tools for testing etc =
Line 54: Line 77:


Subscribing to '''<code>#</code>''' gives you a subscription to everything except for topics that start with a '''<code>$</code>''' (these are normally control topics anyway).
Subscribing to '''<code>#</code>''' gives you a subscription to everything except for topics that start with a '''<code>$</code>''' (these are normally control topics anyway).
= Debian / Version Caveat =
(Ignore this if you built from source.  It's apparently a repo thing...)
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...
Apparently, mosquitto 2.0 binds only to the loopback interface unless specifically told otherwise.
& Debian installs v2.0 or higher...
But for now, It's a simple matter of editing the config file for Mosquitto.
* <code>sudo vi /etc/mosquitto/mosquitto.conf</code>
& add in:
listener 1883
allow_anonymous true
Then,
* <code>sudo service mosquitto restart</code>
[[Category:ServerBuilding]]
[[Category:AutomationServers]]

Latest revision as of 00:00, 3 March 2024

Proven on:
Logo Debian.png
11 (bullseye) (caveat)


Logo LMDE.png
4 (caveat)


Logo Mint.png
19.3 / 20.3


Logo Ubuntu.png
20.04.3


Logo Sparky.png
5.11 (caveat)


Mosquitto MQTT Broker

As always...

Start with:

  • sudo apt update
  • sudo apt upgrade

Installing Mosquitto

  • sudo apt-get install mosquitto

Pretty simple, eh?

(Tho... If you want the latest & gratest and you're feeling adventurous... There's a CopyPasta page here.)

Ensure that Mosquitto broker is running

  • sudo service mosquitto status

expected result is Active: active (running)

Note: Ubuntu repositories have an outdated version

If you want to know which version you've installed...

  • sudo mosquitto

(Ignore the error message "Error: Address already in use". It's already running as a service.)

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).

Debian / Version Caveat

(Ignore this if you built from source. It's apparently a repo thing...)

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...

Apparently, mosquitto 2.0 binds only to the loopback interface unless specifically told otherwise.

& Debian installs v2.0 or higher...

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