MQTT Broker installieren
Ab Version 1.7 wird MQTT direkt vom Core von SmartHomeMG unterstützt. Um MQTT zu nutzen, muss ein Broker verwendet werden, mit dem die MQTT Clients kommunizieren. Wenn im Netzwerk noch kein Broker installiert ist, kann auf dem Rechner auf dem SmartHomeNG installiert wird, auch ein Broker installiert werden.
Schritte der Installation
Mosquitto installieren
Ein populärer Open Source Broker ist Eclipse Mosquitto™. Die Installation dieses Brokers wird im folgenden beschrieben. Weitergehende Informationen zu dem Broker sind unter https://mosquitto.org zu finden.
Mosquitto ist bei Debian seit dem Stretch-Release im Standard Repository enthalten und kann daher einfach mit dem folgenden Kommando installiert werden:
sudo apt-get install mosquitto
Anschließend kann mit dem Befehl
sudo service mosquitto status
überprüft werden, ob der Broker läuft. Wenn der Service läuft, sieht man eine ähnliche Ausgabe wie folgende:
● mosquitto.service - LSB: mosquitto MQTT v3.1 message broker
Loaded: loaded (/etc/init.d/mosquitto; generated; vendor preset: enabled)
Active: active (running) since Wed 2018-05-30 13:39:47 CEST; 5min ago
Docs: man:systemd-sysv-generator(8)
CGroup: /system.slice/mosquitto.service
└─3548 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
Mai 30 13:39:47 SmartHomeNG systemd[1]: Starting LSB: mosquitto MQTT v3.1 message
Mai 30 13:39:47 SmartHomeNG mosquitto[3543]: Starting network daemon:: mosquitto
Mai 30 13:39:47 SmartHomeNG systemd[1]: Started LSB: mosquitto MQTT v3.1 message
Der Service kann dann mit den folgenden Befehlen gestartet, gestoppt und neugestartet werden:
sudo service mosquitto start
sudo service mosquitto stop
sudo service mosquitto restart
Mosquitto konfigurieren
Nach der Installation ist der Broker ohne weitere Konfiguration nutzbar. Allerdings kann jeder Client den Broker nutzen, da der Client sich nicht authentifizieren muss.
Wenn eine Authentifizierung gewünscht wird, muss Mosquitto entsprechend der Dokumentation (https://mosquitto.org/man/mosquitto-conf-5.html) konfiguriert und neu gestartet werden.
Gleiches gilt, wenn zusätzlich zum MQTT Protokoll (auf Port 1883) auch noch Websockets genutzt werden sollen.
Bemerkung
SmartHomeNG nutzt zur Kommunikation mit dem Broker nur das MQTT Protokoll.