Blog Serie
Inhalt:
Teil 3 NAS - allg. Informationen
Teil 4.3 Betriebskosten / Verbrauch
Teil 4.4 Inbetriebnahme / 1. Eindruck
Teil 4.5 Benutzer und Ordner (NAS)
Teil 5 Virtualisierung - mein Projekt
Teil 5.1 Virtualisierung Homematic/Raspberrymatic
Teil 5.2 Virtualisierung ioBroker
Teil 7 Mosquitto nativ auf Synology DSx installieren
Teil 7 Mosquitto nativ auf Synology installieren
Stammleser werden jetzt denken, wieso noch ein Teil? Die Serie war doch beendet.
Stimmt.
Aber aufgrund aktueller Themen im Forum ( smarthome-forum.eu ) habe ich auf meiner Synology einen Mosquitto-Server nativ installiert und bin über einige Fallstricke erstmal gestolpert. Mit Hilfe von erstellten Threads im ioBroker-Forum und im Synology-Forum konnte ich aber alle mir fehlenden Informationen erhalten um den Mosquitto nativ zu installieren.
Mein Antrieb ist es, diese Informationen hier für Euch zu bündeln.
Hintergrund:
Wie in einigen Forenthreads zu lesen ist und wie auch ich es feststellen mußte, ist die Firmware des Shelly Wall Display aktuell nicht kompatibel zum MQTT-Adapter des ioBroker.(Version 4.1.1 und 5.0.0) Das ganze fußt wohl auf der im MQTT-Adapter nicht vollständig unterstützten MQTT-Version 5.0, wobei anscheinend gleichzeitig dem Wall-Display die Abwärtskompatibilität fehlt, die andere Shelly beherrschen.
Erstaunt war ich über den Hinweis im ioBroker-Forum, wo sogar expliziet empfohlen wird, bei größeren Installationen einen externen MQTT-Broker zu nutzen!
Zitat aus meinem dortigen Thema:
ZitatDas sehe ich auch so, für mich ist das auch eine sinnvolle Trennung von Diensten, wenn es sich nur um ein, zwei Geräte handelt (bitte keine Diskussion über die Anzahl), dann ist das im
ioBroker
vielleicht noch gut aufgehoben, aber wenn es mehr wird, dann ist das vielleicht besser in einemMQTT Server
aufgehobenMosquitto
od.emqx
oder andere.
Da Allterco mit Mosquitto testet lag es also nahe, mit Mosquitto gegenzutesten.
Ich selbst glaube, dass das Walldisplay eventuell nur der Beginn dieser Kompatibilitätsproblematik ist und von daher kann ein 2. MQTT-Broker nur hilfreich sein.
2 mögliche Lösungen für die Installation:
Es gibt grundsätzlich 2 Wege, den Mosquitto-Server auf der Synology zu installieren. Ich möchte hier nicht besser oder schlechter beurteilen. Beide Wege haben Ihre Vor- und Nachteile. Und wie ich immer zu sagen pflege: Jeder nach seinem Gusto.
Weg 1
Man installiert den Mosquitto im Docker.
Dazu finden sich im Internet unzählige Beiträge und Howto-Videos.
Zu dieser Lösung kann ich selbst leider keine weiteren Details und Fakten liefern, da ich mich dagegen entschieden habe. Ich betreibe meine DS in 2 getrennten IP-Bereichen und beim Recherchieren - ich habe noch nie mit Docker gearbeitet - bin ich auf viele Problem-Threads in den Tiefen verschiedener Forenwelten gestoßen, was die Kommunikation mit der Außenwelt angeht, sprich man muß sich je nach Konstellation und Setup mehr oder weniger intensiv um Themen wie Routing und Portweiterleitung kümmern.
Vorteile:
- graphische Benutzerführung beim Setup
- Bei Fehlern läuft halt der Mosquitto-Container nicht
- keine Gefahr, die DS lahmzulegen
- daher: die wahrscheinlich bessere Variante für Einsteiger und Linux-Unerfahrene
Weg 2
Die native Installation.
Was bedeutet eigentlich "native" Installation?
Der Mosquitto-Broker läuft dabei nicht nicht in einer virtuellen Umgebung wie z.B. Docker sondern direkt auf der Synology.
Was man wissen muß:
- Für diesen Weg muß man auf eine externe Paketquelle zurückgreifen
- im Umgang mit Linux sollte man Erfahrung haben, da für das Setup des Mosquitto in der Bash und mit root-Rechten gearbeitet werden muß! Für die Bearbeitung der Setup-Dateiendes Mosquitto nutze ich vi
- Durch fehlerhaftes Arbeiten kann theoretisch das gesamte NAS unbrauchbar gemacht werden., da im Dateisystem gearbeitet wird.
Wer Probleme mit Begriffen des letzten Absatzes hat, ist mehr als gut beraten, Weg 1 zu nehmen!
Und nun geht es an die eigentliche native Installation.
(aufgrund der oben erläuterten Fakten: Ich übernehme keinerlei Haftung, sollte beim Nachbau etwas schiefgehen! Wer diesen Weg geht, handelt auf eigenes Risiko!)
Ich möchte noch betonen, dass hinsichtlich der Erlangung der Root-Rechte des NAS kein Hacking-Eingriff oder Ähnliches nötig ist. Der Weg ist in der Synology Knowlege Base offiziell beschrieben.
Schritt1: Externe Paketquelle hinzufügen
Über das Paketzentrum --> Einstellungen --> Paketquellen fügt man die "SynoCommunity" als Paketquelle hinzu.
Danach kann die Software auf der DS installiert werden und der Mosquitto-Server steht. schon einmal in der DS bereit .
Durch anklicken kommt man zur "Bedienoberfläche" mit Informationen zum Release und zum Zustand des Mosquitto, der hier auch gestartet und angehalten werden kann:
Das Problem und der Grund für meine obigen Hinweise ist, dass nach der Installation mit einem Popup darauf hingewiesen wird, dass Mosquitto jetzt unter 127.0.0.1 (also localhost) und Port 1883 erreichbar ist. Für die Aussenwelt wie die Shelly wäre der Mosquitto so nicht erreichbar!
Setup bearbeiten:
Um nun die Setup-Datei bearbeiten zu können, müssen wir zunächst den SSH-Zugang zur DS freischalten:
Systemsteuerung --> Terminal und SNMP --> "SSH-Dienst aktivieren" anhaken und mit "übernehmen" aktivieren.
Nach den Arbeiten sollte aus sicherheitstechnischer Sicht der SSH-Dienst wieder deaktiviert werden, wenn man Ihn nicht anderweitig braucht!
Das Popup bei der Aktivierung von SSH sollte gelesen werden. Es beinhaltet die Warnung zu den bereits erläuterten Gefahren für das Gesamtsystem.
Wie man sich nun per SSH-Sitzung mit den Daten des Benutzers "admin" auch root-Rechte erhält, steht im Synology Knowledge-Center
Wie kann ich mich über SSH mit Root-Berechtigung bei DSM/SRM anmelden? - Synology Knowledge Center
Achtung: Auf die richtige DSM-Version achten!
Quelle des Screenshots:
Synology DS923+
Ist die Verbindung mit root-Rechten hergestellt findet man die Setup-Dateien des Mosquitto im Pfad:
Der Pfad wird auch bei der Installation angezeigt:
Um den Mosquitto nun für die Aussenwelt erreichbar zu machen, muß man zuerst die Dateirechte der Datei mosquitto.conf mit chmod auf 666 setzen. Anschließend wir die Datei mit vi (oder auch einem anderen Editor) bearbeitet und mindestens die IP und der Port angepasst:
IP-Adresse 127.0.0.1 wird durch die IP der DS ersetzt
Port 1883 ist der Standardport und kann bleiben oder angepasst werden, falls (auf der DS!) schon anderweitig benutzt.
(Im Beispiel ist mit dieser Zeile 234 der Mosquitto unter 192.168.1.30:1883 erreichbar)
Um nach dem Speichern das neue Setup zu aktivieren, muß der Mosquitto einmal gestoppt und anschließend neu gestartet werden.
Die Verbindung prüft Ihr am einfachsten mit dem MQTT-Explorer, wo das Ganze dann ungefähr so aussehen sollte:
$SYS => Daten zum Broker
1 Shelly WallDisplay connectet
Natürlich sollte man für einen produktiven Einsatz noch Sicherheitseinstellungen vornehmen, wie Benutzer und Passwort. Dazu existieren im Netz genügend Tutorials.
Gedanken um Routing und Portweiterleitungen braucht es bei diesem Weg, wie Ihr seht, nicht.
Ich hoffe und freue mich, wenn diese Anleitung dem Ein oder Anderen eine Inspiration und Hilfe ist.
Viel Spass damit.