Hilfe! Mein FHEM funktioniert nicht!
Diese Seite gibt beschreibt die Vorgehensweise bei der Fehlersuche mit fhem auf der Basis von Linux.
Anmelden am fhem-Server
In dieser Hilfeseite läuft fhem auf einem Linux-System, z.B. ein Raspberry Pi, ein ODROID oder ein Beaglebone. Auf diesem Computer läuft eine Variante von Linux für Einplatinencomputer.
Das Linux als Betriebssystem stellt meist einen ssh-Server (ein verschlüsselter Zugang zum System auf der Kommandozeilenebene von einem zweiten Rechner aus) und/oder eine Console (die Anmeldung erfolgt lokal am angeschlossenen Bildschirm und Tastatur) zur Verfügung.
Anmeldung via ssh (OS X/Linux)
Auf einem Mac- oder Linux-Computer wird ein Terminal gestartet (xterm, Terminal) und dort mittels ssh eine Verbindung zum fhem-Server aufgenommen:
ssh <IP-Adresse fhem-Server> -l <useraccount>
hat der fhem-Server z.B. die IP-Adresse 192.168.1.22 und der Useraccount lautet pi lautet der Befehl
ssh 192.168.1.22 -l pi
oder einfacher
ssh pi@192.168.1.22
Sollte die Verbindung erfolgreich hergestellt werden, wird ein Paßwort erbeten. Danach steht die Kommandozeile auf dem fhem-Server zur Verfügung. Nur beim ersten Mal fragt ssh nach, ob der öffentliche Schlüssel des fhem-Servers gespeichert werden soll.
Anmeldung via ssh (Windows)
Windows kommt derzeit ohne ssh-Clienten, dieser muß daher zunächst installiert werden. Ein kostenloses, gutes Programm ist putty. Nach Download, Installation und Aufruf bietet putty eine graphische Oberfläche zur Verwaltung verschiedener ssh-Verbindungen.
Die IP-Adresse des fhem-Servers wird in das Feld Host Name (or IP address) eingegeben. Danach fragt ssh nach einem Benutzernamen (login as: ) und Paßwort.Für Raspberry PI Linux-Distributionen ist der Benutzername im Normallfall pi.
Nach erfolgreicher Eingabe der Informationen steht dann die Kommandozeile des fhem-Servers zur Verfügung und kann zur weiteren Fehlersuche genutzt werden:
Anmeldung an der Console
Sollte das Netzwerk des fhem-Servers nicht funktionieren oder dieser nicht erreichbar sein, bleibt nur die Anmeldung an der Console. Dazu wird ein Monitor und eine Tastatur am fhem-Server direkt angeschlossen (z.B. am HDMI-Port und am USB-Port).
Im Normalfall ist das Bild zunächst schwarz, da der Bildschirmschoner von Linux die Ausgabe deaktiviert. Mehrfaches drücken der Leertaste sollte eine Ausgabe im klassischen 80x25-Zeichenmodus oder in einer graphischen Oberfläche anzeigen.
Linux bietet mehrere virtuelle Consolen. Diese lassen sich mit
CTRL-ALT-F1 CTRL-ALT-F2
usw. bis zu
CTRL-ALT-F6
wechseln. Auf der ersten Console (CTRL-ALT-F1) stehen meist interessante Ausgaben wie Logfiles oder Fehlermeldungen. Auf der 7. Console (CTRL-ALT-F7) läuft meist die graphische Oberfläche.
Für eine Fehlersuche wird eine Textconsole (CTRL-ALT-F2 bis CTRL-ALT-F6) empfohlen. An dieser kann sich mit Username und Paßwort angemeldet werden und danach steht eine Kommandozeile zur Verfügung.
root-Berechtigung erlangen
Nicht alle Befehle unter Linux sind für normale Benutzer (wie Anwender oder der pi-Benutzer) zugänglich oder können aufgerufen werden. Systemnahe Befehle, d.h. Befehle, die in die Grundfunktionen des Betriebssystemes konfigurieren oder umstellen, sind nur für den Nutzer root zugänglich.
root-Rechte erlangt man mit den Befehlen
sudo -i
oder
su -
je nach verwendeter Linux-Distribution.
Doch Vorsicht: Linux geht davon aus, daß der Anwender root sehr genau weiß, was er tut. Befehle werden ohne weitere Sicherheitsabfragen ausgeführt - auch die Formatierung der Speicherkarte, externer Laufwerke oder die Löschung aller Dateien. Es ist sehr einfach, durch ein Leerzeichen zuviel oder eines zu wenig einen großen Datenverlust zu erzeugen.
Aus diesem Grund wird dringend empfohlen, die ersten Analyseschritte nur als normaler Anwender (z.B. pi) zu erledigen und wenn der Fehler gefunden wurde, die Behebung mit sudo vorzunehmen. sudo verleiht nur temporär root-Rechte und erfordert für jedes Kommando die explizite Angabe von sudo.
Ein Beispiel: ein normaler User kann
rm -rf /usr/*
nicht aufrufen. Dieser Befehl löscht alle Dateien im /usr-Verzeichnis, dort liegen die existenziell notwendigen Befehle für Linux. Nach Aufruf dieses Befehls ist die Linuxinstallation unwiderruflich defekt.
Der Nutzer root kann denselben Befehl ohne Sicherheitsabfrage aufrufen.
Der Nutzer pi kann den Befehl mit temporären root-Rechten
sudo rm -rf /usr/*
aufrufen und benötigt für den Aufruf sein Paßwort.