22 Mrz

FHEM Home Automation – Bereinigung des Servers – Teil I

FHEM Home Automation – Bereinigung des Servers

Mein FHEM-Server arbeitet nun schon seit geraumer Zeit ohne Probleme, definitiv mehr als ein Jahr, wahrscheinlich näher an zwei Jahren. Zeit, einige Teile zu bereinigen, zumal die letzten Updates nicht erfolgreich installiert wurden und ich wieder auf die installierte Version zurückgreifen musste.

In den letzten Jahren haben die Dinge „funktioniert“ und während sie es noch tun, ist es an der Zeit, auch eine neue Konfiguration zu entwickeln – Dinge, die ich inzwischen gelernt habe. Hardware, die in der Zwischenzeit gekauft wurde. Neue Ideen, die sich in der Zwischenzeit entwickelt haben. Um all dies „in ein neues System“ zu bringen, habe ich mich entschieden, ein  fhem webinterface nicht erreichbar zu umgehen und selbst einen zu bauen. Das Betriebssystem der Wahl ist Debian 9, weil es dem Himbeer-Pi so ähnlich ist, dass ich die Installation schließlich auf den Server verschieben möchte.

fhem webinterface nicht erreichbar

Also sollte dieser schnell genug sein, um etwas zu spielen. Und vielleicht werde ich die Einstellungen später bereuen, der Raspberry Pi ist viel langsamer.

Ich habe mich für die „Desktop-Installation – das heißt: eine grafische Desktop-Umgebung (die nicht die gleiche ist wie die Raspberry Pi) – entschieden. Und ein Terminalfenster für „Kommandozeile bis zum bitteren Ende“…..

Nach Abschluss der Installation gibt es einige Dinge, die getan werden sollten – die erste ist, das System auf den neuesten Patch-Level zu aktualisieren (die beiden Befehle können von einem Terminalfenster aus im Superuser-Modus ausgeführt werden):

Als nächstes muss ich VMWare Tools installieren (was natürlich nur notwendig ist, wenn Sie VMWare Player oder VMWare Workstation verwenden). Das ist übrigens der Grund, warum in der Befehlssequenz oberhalb des net-tools-Pakets installiert ist…..

FHEM auf die Box bringen

Es gibt ein paar Dinge, die jetzt getan werden müssen – das erste ist natürlich die Installation von FHEM auf der Box. Dies geschieht am besten als „manuelle Installation“ – die aktuellsten Anweisungen finden Sie hier: debian.fhem.de

Die ersten drei Schritte der Anleitung zur manuellen Installation (endend mit dem Befehl dpkg -i fhem-5.8.deb) sind für die Installation der benötigten Bibliotheken, das Holen des FHEM-Pakets und dessen Installation verantwortlich. Dazu gehört auch die Erstellung des fhem system user:

zeigt die Definition des Benutzers an. Es zeigt auch, dass das Heimatverzeichnis des Benutzers /opt/fhem ist (wo sich die Installation befindet) und es gibt keine Shell, die zugewiesen ist – /bin/false -, was den Benutzer nicht in die Lage versetzt, sich anzumelden.

Technisch gesehen ist die letzte Anweisung vielleicht nicht ganz korrekt: Der Benutzer kann sich anmelden, aber es würde keine Shell und damit keine Befehlszeile erhalten (plus: kein Passwort, es sei denn, wir würden eine setzen….).

Nun stellt dies ein interessantes Problem dar: wenn Sie folgendes tun:

cd /opt/fhem
ls -l

um die Dateien und ihre Berechtigungen im FHEM-Installationsverzeichnis anzuzeigen, werden Sie feststellen, dass alle Dateien dem Benutzer fhem gehören und die Standardgruppe auf Dialout eingestellt ist.
Catch-22 mit den Konfigurationsdateien, Benutzern und Berechtigungen

Für mich stellt das ein kleines Problem dar: die Konfigurationsdateien, die wir für FHEM erstellen müssen. Natürlich: Sie können die Datei fhem.cfg direkt über das Webinterface bearbeiten, aber das ist eine mühsame und ziemlich dumme Art, es zu tun (imho). Nur zwei Gründe: Es gibt weitaus bessere Editoren als den eingebauten (ich bevorzuge z.B. Notepad++ auf einer Windows-Box) und es ist schwierig, die Versionskontrolle für Ihre Dateien direkt auf dem Unix-Dateisystem durchzuführen.

Natürlich gibt es viele Möglichkeiten, Dateien von und zu einem Linux-System zu bekommen (einschließlich direktem Drag & Drop in meine virtuelle Maschine), aber wenn man eine kopflose (keine Benutzeroberfläche) Umgebung auf meinem Raspberry Pi betrachtet, scheint der logischste Weg ein FTP-Server auf der Unix-Box zu sein.
Installation von ProFTPD in der Umgebung

Ein einfach zu installierender und leistungsstarker FTP-Server ist ProFTPD. Du kannst es installieren lassen über

Nach der Installation und dem Start wird standardmäßig auf TCP/IP v6 zugegriffen – was das erste ist, was ich ändern muss. Gleichzeitig können wir sicherstellen, dass ein Benutzer, der sich über FTP anmelden darf, keine Shell-Zuweisung benötigt (wie der oben beschriebene fhem-Benutzer) und last but not least können wir das Standard-Startverzeichnis für die FTP-Benutzer steuern.

Das meiste davon spielt auch schon im Unix Permission Concept mit, so dass es hier eine gemischte Diskussion geben wird.