FHEM #2 – Raspbian / Ubuntu installieren

Ich verwende zur Zeit unterschiedliche Hardware für FHEM. Das bedeutet auch, das ich für FHEM zur Zeit die beiden Betriebsysteme Raspbian Jessie sowie Ubuntu 16.04 LTS einsetzte.

In diesem Artikel beschreibe ich kurz die Unterschiede sowie die Gemeinsamkeiten der beiden Betriebssysteme.

Ich zeige euch wie man die beiden Betriebssysteme installiert (siehe dazu auch Patricks OpenHab-Artikel) und auch welche ersten Grundeinstellungen ich danach vornehme.

Neben Raspbian und Ubuntu kann FHEM auch unter weiteren Unix basierten Betriebssystemen installiert werden. Ebenso lässt FHEM sich unter Windows oder mittlerweile eingeschränkt auch auf einer FritzBox installieren, aber für einen stabilen Dauerbetrieb würde ich davon abraten.

Raspbian – Installation

Raspbian ist ein speziell für die RaspberryPi-Plattform zugeschnittenes Betriebssystem. Die Installation gestaltet sich wesentlich einfacher als z. B. bei Windows.

Windows wird in der Regel über ein Installationsmedium wie z. B. eine CD/DVD oder einen USB-Stick mittels separatem Installer auf ein im Computer verbautes Speichermedium installiert.

Die Installation von Raspbian ist wesentlich einfacher und schneller, denn hier wird das Betriebssystem direkt auf eine microSD-Karte geschrieben. Die Möglichkeit die Speicherkarte am RasperryPi schnell, günstig und unkompliziert zu wechseln ist einer der vielen Gründe warum ich dieses System so mag und es auch einsetze.

Für das Schreiben auf die microSD-Karte findet Ihr die neueste Version des Images von Raspbian hier auf dieser Seite:

Raspbian Jessie

Zur Auswahl stehen 2 Varianten. Eine Pixel und eine Lite Version. Die Pixel Variante enthält eine direkt startende Benutzeroberfläche mit Mausbedienung ähnlich wie Windows. Allerdings verbraucht diese Variante auch logischerweise mehr Ressourcen.

Es gibt auf Situationen in denen man die Pixel Variante benötigt, z.B. wenn man das ZigBee Aufsteckmodul RaspBee verwenden möchte. Die Software dafür läuft nur unter der Benutzeroberfläche.

In der Regel reicht für FHEM eine ressourcensparende Minimalinstallation ohne Benutzeroberfläche, die mit der Lite Variante bereitgestellt wird. Hier wird dann alles in der berühmten Kommandozeile erledigt.

Nach dem Herunterladen und Entpacken kann das Image auf die Karte geschrieben werden. Hierzu verwende ich unter Windows das portable Tool

Win32 Disk Imager

Im Tool wählt man das eben entpackte Image aus. Danach das Laufwerk mit der microSD-Karte. Das Schreiben wird mit einem Klick auf den Button “Write” gestartet. Jetzt kann man sich einen Kaffee holen und warten bis die microSD-Karte beschrieben ist.

 

Werbung

 

Raspbian – SSH und WLAN einrichten

Da meine Hardware im Keller steht und ich nicht jedes mal runtergehen möchte um etwas einzustellen zu können habe ich für alle meine Geräte, soweit möglich, einen SSH-Zugang eingerichtet. Damit kann ich quasi von überall meine Geräte administrieren.

Standardmäßig ist unter Raspbian seit einiger der SSH-Zugang deaktiviert. Um ihn einfach zu aktivieren muss auf der eben verwendeten microSD-Karte eine Datei mit dem Namen “ssh” direkt im Hauptverzeichnis erstellt werden. Die Datei sollte dabei leer sein und keine Erweiterung haben.

Habt ihr einen RaspberryPi3 oder einen RaspberryPi Zero W, beide mit integriertem WLAN, könnt ihr ebenso wie für den SSH-Zugang, schon vor dem ersten Starten das WLAN einrichten.

Dafür müsst Ihr im Hauptverzeichnis eine Datei mit dem Namen “wpa_supplicant.conf” erstellen.

Danach öffnet Ihr die Datei mit einem beliebigen Editor und kopiert folgenden Inhalt hinein:

network={
       ssid="WLAN"
       psk="PASSWORT"
       key_mgmt=WPA-PSK
}

Ihr solltet vor dem abspeichern noch “WLAN” und “PASSWORT” mit Eurem persönlichen WLAN und Passwort anpassen.

Raspbian – IP-Adresse

Falls Ihr direkt am RaspberryPi mit Monitor und Tastatur sitzt könnt ihr euch mit Standardnamen “pi” und Standardpasswort “raspberry” einloggen

Danach bekommt Ihr die IP-Adresse einfach mit dem Befehl

 

ifconfig

Sollte der RaspberryPi ohne Monitor und Tastatur betrieben werden (Headless-Betrieb), findet Ihr die IP-Adresse auch in eurem Router in der Regel unter dem Namen “raspberrypi”. Bei mir z. B. in der FritzBox:

Bei mir und im Folgendem lautet die IP-Adresse für den RaspberryPi: 192.168.178.71

Natürlich lässt sich auch eine feste, statische IP-Adresse vergeben. Aus verschiedenen Gründen kann das sinnvoll sein. Einer kann das Gruppieren von IP-Adressen zur besseren Übersicht sein. Ein weiterer Grund kann das Gruppieren von Smart-Home Geräten in virtuelle LANs (VLAN – Layer2) sein. VLANs wirken wie physisch voneinander getrennte Netzwerke obwohl alle Geräte an einem Switch angeschlossen sind. Mit VLANs können Netzwerkgeräte also voneinander isoliert werden. Dies ist aus Sicherheitsgründen besonders sinnvoll. Es können aber auch mehrere VLANs miteinander verbunden werden (InterVLAN Routing – Layer3)

Zum Beispiel können bei mir Sensoren die über WLAN angebunden sind (WeMos, IoT) nur mit dem FHEM-Server kommunizieren, da diese sich in einem separaten VLAN befinden. Die Kommunikation zu anderen Geräten in anderen VLANs oder gar mit dem Internet ist nicht mehr möglich.

Ein weiteres Beispiel betrifft meine Homematic-LAN-Adapter. Als ich noch ein gemeinsames Netzwerk für alle Geräte hatte, haben viele Geräte und Apps teils sinnlose Broadcasting-Anfragen im Netzwerk verteilt. Hinweis: Skype hat sich dabei bei mir zu Hause als Smart-Home Killer erwiesen, denn es sendet bei Benutzung solche Broadcasting-Anfragen. Auch IP-TV Lösungen wie z. B. das von Telekom Entertain können zum Killer werden. Hier werden Streams an alle Netzwerkports eines Switches per “Multicast” gleichzeitig weitergeleitet. Die Folge bei nicht korrekt konfiguriertem Switch kann ein Überlasten des eigenen Netzwerks sein. Die Lösung hier bringen neben VLANs auch IGMPv3-fähige Switche.

Bei wenigen Geräten im Netzwerk (Subnetz) funktionieren Broadcasting-Anfragen noch einigermaßen, aber je mehr Geräte desto mehr solche Anfragen. Netzwerkgeräte reagieren unterschiedlich gut darauf. Der Homematic-LAN-Adapter reagiert sehr empfindlich auf solche Anfragen und schaltet sich sogar zeitweise ab. Lösen kann man das Problem mit dem Auslagern des Adapters in ein VLAN.

Die Thematik wird später noch in einem eigenen Serienteil “FHEM – Das richtige Netzwerk” genauer behandelt.

 

Das Festlegen der statischen IP-Adresse kann über mehrere Wege erfolgen. Ich verwende für den RaspberryPi eine Konfiguration über den DHCP Client Deamon (DHCPCD).

Wenn der DHCPCD noch nicht läuft lässt er sich mit folgendem Befehl starten:

sudo service dhcpcd start

sudo systemctl enable dhcpcd

Danach kann über den Befehl

sudo nano /etc/dhcpcd.conf

die Konfiguration angepasst werden.

Am Ende der Konfigurationsdatei ergänze ich dann folgende Zeilen:

interface eth0
   static ip_address=192.168.178.71/24
   static routers=192.168.178.1
   static domain_name_servers=192.168.178.1

Man sollte jetzt hier eine freie IP-Adresse eintragen. Das “/24” hiner der IP-Adresse beschreibt in Kurzschreibweise die Subnetmaske “255.255.255.0”. Router und Domainserver sind bei mir in der FritzBox mit der Standard-IP-Adresse 192.168.178.1 vereint. Diese IP-Adresse der FritzBox stellt das Standard Heim-(Sub-)Netz dar.

Im Anschluss die Konfigurationsdatei speichern und mit folgendem Befehl neu starten:

sudo reboot

Raspbian – SSH-Login mit PuTTY

Habt Ihr die IP-Adresse könnt Ihr euch mit einem Terminalprogramm einloggen. Ich verwende dafür das Tool PuTTY, welches Ihr hier bekommt:

PuTTY

In PuTTY tragt ihr dann die IP-Adresse ein.

Nach Klick auf “Open” kommt noch ein Warnhinweis, da PuTTY den server noch nicht kennt. Hier könnt Ihr mit “Ja” bestätigen.

Im nächsten Schritt kann man sich mit dem Standardnamen “pi” und Standardpasswort “raspberry” einloggen.

Erscheint folgendes Fenster seit Ihr eingeloggt und befindet euch in der Kommandozeile.

Raspbian – Passwort ändern

Aus gegebenen Anlass sollte an dieser Stelle auch das Standardpasswort von Raspbian geändert werden. Dazu wird in der Kommandozeile

passwd

eingegeben. Danach muss man den Anweisungen folgen und das alte sowie das neue Passwort eingeben.

Raspbian – Einstellungen

Mit

sudo raspi-config

erscheint ein Menü in dem zahlreiche Einstellungen vorgenommen werden können. Manche sind allgemein, manche betreffen speziell den RaspberryPi und dessen Hardware.

Das Expandieren des Dateisystems im Punkt ist nicht mehr notwendig, da Raspbian dies mittlerweile während des ersten Starts automatisch macht.

Unter Punkt 4 sollten die Einstellungen für Sprache und Zeitzone vorgenommen werden. Meine Einstellungen sehen dafür wie folgt aus:

Wer das integrierte WLAN des RaspberrPi3 oder des RaspberryPi Zero W verwendet sollte unter “I4 Change Wi-fi Country” sein Land auswählen da andere Länder teilweise andere WLAN-Frequenzbänder verwenden.

Ubuntu – Vorbereitung ESXi-Server

Ich zeige hier die einzelnen Schritte wie ich Ubuntu auf meinem ESXi 6.0.0-Server in einer virtuellen Maschine installiere.

Das Image von Ubuntu habe ich dabei schon vorher hier heruntergeladen:

Ubuntu 16.04 LTS Server

Im ersten Schritt wird eine neue virtuelle Maschine im ESXi-Server erstellt und deren Einstellung vorgenommen:

In der Übersicht noch unten Haken setzen:

In den Eigenschaften der neuen virtuellen Maschine kann jetzt noch verschiedene virtuelle Hardware hinzugefügt oder geändert werden. Wichtig ist es hier das Image von Ubuntu in ein virtuelles CD-/DVD-Laufwerk zu laden und beim Start zu verbinden.

Danach seht ihr die neue Virtuelle Maschine in der Übersicht auf der linken Seite.

Mit einem Klick auf den grünen Pfeil wird die Maschine gestartet. Danach kann man auf den Reiter “Konsole” wechseln und sieht den Bildschirm der virtuellen Maschine.

Ab jetzt verhält sich die Installation von Ubuntu identisch zu einer ohne ESXi-Server.

 

Werbung

 

Ubuntu – Installation

Ubuntu existiert in mehreren Varianten. Ich verwende für FHEM die minimalistische Server-Variante. Die könnt ihr hier downloaden:

Ubuntu 16.04 LTS Server

Ich verwende die LTS Variante (Long-Term-Support), weil diese für 5 Jahre Support, bis April 2021, bietet. Für einen stabilen Dauer- und Langzeitbetrieb bieten sich die LTS-Varianten hervorragend an.

Es gibt auch schon die Version 17.04 mit neueren Features, aber mit entsprechend weniger Support-Zeit – aktuell 9 Monate.

Die Installation von Ubuntu 16.04 wird wie bei einer Windows Installation durchgeführt. Man lädt sich das Image herunter und kopiert es auf einen USB-Stick oder brennt es auf eine DVD. Danach wird es mit einem Installer auf ein im Computer verbautes Speichermedium installiert.

Auf den Screenshots seht Ihr genau die Einstellungen die auch ich vorgenommen habe. Im Ubuntu-Installer werden schon einige Dinge während der Installation konfiguriert die im Vergleich zu Raspbian gar nicht oder erst nach der Installation vorgenommen werden.

Ich bin kein Fan von automatischen Updates unter Ubuntu, deshalb wähle ich hier den ersten Punkte aus der Liste:

Hier wähle ich noch zusätzlich den SSH-Server aus, damit ich mich später per SSH-Terminal einloggen kann:

Ist die Installation erfolgreich durchgelaufen erscheint das Login-Fenster.

Nach dem Einloggen befinde Ihr euch in der Kommandozeile.

Wer sich an dieser Stelle per SSH einloggen möchte kann genau so vorgehen wie unter Raspbian – IP-Adresse und Raspbian – SSH-Login mit PuTTY beschrieben. Allerdings muss hier die während der Installation vergebene User/Passwort-Kombination verwendet werden.

Ergänzung IP-Adresse: Auch unter Ubuntu kann eine feste IP-Adresse vergeben werden. Ich gehe dazu in die Konfigurationsdatei mit folgendem Befehl:

sudo nano /etc/network/interfaces

Danach ändere ich die Einstellungen ab, so dass sie so aussehen:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# Ethernet
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.178.70
netmask 255.255.255.0
gateway 192.168.178.1
dns-nameservers 192.168.178.1

Update Betriebssystem

Im nächsten Schritt wird das Betriebssystem auf den aktuellen Stand gebracht. Der folgende Befehl kann sowohl unter Raspbian als auch unter Ubuntu verwendet werden.

Mit

sudo apt-get -y autoremove && sudo apt-get -y clean && sudo apt-get update && sudo apt-get -y dist-upgrade

entferne ich alle ungenutzten Abhängigkeiten, leere den Paketcache, lese die Paketlisten neu ein und installierte Pakete werden aktualisiert sowie unnötig gewordene Pakete entfernt.

Update der Systemzeit

Die aktuelle Systemzeit ist ein wichtiger Bestandteil einer FHEM-Installation. Die Uhrzeit wird z. B. auf Geräte im Smart-Home synchronisiert. Ist die Uhrzeit im System falsch werden auch auf den Smart-Home Geräten die falsche Uhrzeit angezeigt oder Zeitsteuerungen funktionieren nicht richtig. Auch für die Datenbankeinträge und Logfiles ist eine korrekte Uhrzeit unabdingbar.

Die korrekte Zeitzone habe ich, wie oben beschrieben, schon eingestellt. Jetzt geht es noch darum die Systemzeit regelmäßig und vor allem automatisch upzudaten. Dazu lege ich in der crontab einen cronjob an.

Unter raspbian gelangt Ihr zur crontab mit Befehl

sudo nano /etc/crontab

Unter ubuntu heißt der Befehl

sudo crontab -e

Danach wird in der crontab folgende Zeile eingetragen

0 4     * * *   root    ntpd -q -g -x -n

Damit wird jeden morgen um 4 Uhr die Zeit online abgeglichen und wenn notwendig korrigiert. Ich hab die Uhrzeit so gewählt das alle Geräte noch genug Zeit haben sich sich mit der neuen Zeit zu versorgen bevor ich aufstehe.

Auch die Umstellung der Sommer- und Winterzeit ist berücksichtigt denn diese wird nachts vor 4 Uhr umgestellt, so dass ich auch nach der Zeitumstellung morgens nach dem Aufstehen immer die korrekt Systemzeit habe.

Danach mit

sudo service cron restart

die neuen Einträge in der crontab einlesen.

Reinhard
Autor von frombeyond.de. Smart-Home-Verrückter.

Nutzt Zuhause FHEM zusammen mit HomeMatic, JeeLink, 1-Wire, Flammtronik / Atmos HV, Buderus KM271, Philips HUE, Xiaomi Yeelight, Alexa, Sonos, FritzBox, Ubiquiti UniFi APs, APC UPS, APC PDU, IPMI. MariaDB, InfluxDB und Grafana zur Auswertung. Als Hardware-Untersatz kommen mehrere RaspberryPis und Supermicro Serverhardware zum Einsatz. Softwareseitig werden hauptsächlich Raspbian, Ubuntu, ESXi und Docker verwendet.