OpenHAB2 auf dem dem Raspberry PI

Die folgenden Kapitel werden die Installation und Verwendung von Raspbian auf dem Raspberry PI sowie die Nutzung von openHAB auf diesem System erklären. Prinzipiell können für die Nutzung von openHAB auf dem Raspberry PI auch andere Betriebssysteme verwendet werden. Im Folgenden beschränke ich mich auf Raspbian. Hierbei handelt es sich wie bei den meisten Linux Systemen um ein offenes Betriebssystem. Raspbian wurde speziell für den Raspberry optimiert und basiert auf Debian. Dies ermöglicht die Nutzung vieler Pakete (Programme) die für Debian bereitgestellt werden. Der Name Raspbian setzt sich aus Raspberry und Debian zusammen.

Raspbian installieren

Das Raspbian Image kann entweder direkt von raspberry.org oder raspbian.org heruntergeladen werden. Alternativ kann für die Installation von Raspbian oder andere Betriebssysteme auf dem Raspberry NOOBS verwendet werden. Hierzu gibt es auf der Homepage raspberry.org ausführliche NOOBS-Installationsanleitungen und ein Video. Im Handel gibt es SD Karte auf denen Raspbian oder NOOBS bereits vorinstalliert ist. Dies erleichtert es für Anfänger, die sich nicht mit der Installation des Betriebssystems beschäftigen wollen.
Im Folgenden wird die Installation des Raspbian-Images beschrieben. Für die initiale Installation empfiehlt es sich an den Raspberry einem Monitor oder TV sowie einer Tastatur und Maus anzuschließen.

Materialien:
- Raspberry PI incl. passendes USB-Netzteil mit einem mindest Ausgangsstrom von 1 A - SD Speicherkarte mit mind. 4 GB Speicherplatz
(alternativ eine SD Karte mit vorinstalliertem Raspbian) - TV oder Monitor mit HDMI Eingang - HDMI Kabel - USB Tastatur - USB Maus (alternativ) - PC mit Card Reader
(wird nur benötigt, wenn keine SD Karte mit vorinstalliertem Raspbian vorliegt)

Vorbereitung:
Diese muss nur durchgeführt werden, wenn eine leere SD Karte vorliegt auf die das Raspbian-Image aufgespielt werden soll!

  • Die aktuelle Raspbian Version von www.raspberrypi.org herunterladen und entpacken.
  • Image auf SD Karte kopieren:
    • unter Windows:
      Um das Raspbian-Image von einem Windows Betriebssystem auf die SD-Karte zu kopieren, kann das Programm Win32DiskImager verwendet werden.
      Eingabefenster von Win32 Disk Imager
      Nach Installation und Programmstart die SD-Karte und das Image auswählen, anschließend den Vorgang starten.
    • unter Linux:
      Unter Linux kann das Programm dd verwendet werden. Das Programm dd ist bei den meisten Linux Distributionen bereits in der Grundinstallation enthalten. Um die Befehle ausführen zu können müssen die folgenden Befehle in einer Konsole ausgeführt werden.
      Um dd verwenden zu können, muss zuerst der Gerätepfad (hier /dev/sdd) für die SD Karte ausfindig gemacht werden!
    • df -h ausführen ohne gestekte SD Karte
    • SD Karte in Lesegerät stecken
    • df -h erneut ausführen die SD Karte sollte nun Beispielsweise wie folgt aufgelistet sein /dev/mmcblk0pl oder /dev/sdd1
    • dd bs=4M if=<Pfad zum Image>/2014-12-24-wheezy-raspbian.img of=/dev/sdd kopiert das Image auf die SD Karte
      In manchen Fällen ist das Aufspielen des Images mit dem Parameter bs=4M fehlerhaft, in diesem Fall das Ganze nochmals mit bs=1M testen.
  • Nach dem Aufspielen des Image auf die SD-Karte, diese in den Raspberry einstecken und am TV oder Monitor sowie die Tastatur und Maus anschließen. Beim ersten Start wird ein Konfigurationstool gestartet.
    Raspbian Konfigurationstool Sollte dies nicht der Fall sein, kann das Konfigurationstool mit folgenden Befehl gestartet werden:
    ´sudo raspi-config´. Im Konfigurationstool folgende Punkte nacheinander durchführen:
  • Advanced Options --> ssh (ggf. bei neueren Version nicht mehr Notwendig)
  • Change User Password
  • Internationalisation Options (Sprache und Tastaturlayout)
  • Expand_Filesystems

  • Nach dem Einrichten der wichtigsten Einstellungen die Konfiguration mit abschließen.
    Der Raspberry boote neu, sollte dies nicht der Fall sein, kann dies mit dem Befehl durchgeführt werden:
    sudo reboot -now

  • Nach einem Neustart kann man sich mit dem neu erstellten Passwort anmelden oder wenn dies nicht geändert wurde mit
    USER: pi, Passwort:raspberry
    Achtung: Zu beginn ist die Tastatur nicht auf deutsch eingestellt, wodurch y und z vertauscht sind!

Installation des Midnight Commander (mc)

Nach erfolgreicher Installation von Linux sollte das sehr hilfreiche Programm ´mc´ nicht fehlen. Damit der Midnight Commander installiert wird, nach dem Hochfahren und Anmelden folgenden Befehl ausführen:
´sudo apt-get install mc´
Danach wird man aufgefordert, das root-Passwort einzugeben, dies ist das gleiche wie für den user pi. Nach Installation kann das Programm mc wie folgt aufgerufen werden: ´mc´ (ohne root Rechte) oder ´sudo mc´ (mit root Rechte)
Midnight Commander

Statische IP-Adressen einrichten

Standardmäßig läufen die Netzwerkkarten mit DHCP. Ist es erforderlich einer der Netzwerkkarten eine feste IP-Adresse zuweisen, muss unter Linux entweder die Datei /etc/network/interfaces oder /etc/dhcpcd.conf angepasst werden. Der folgende Abschnitt beschreibt die beiden Möglichkeiten.

Anpassen der Datei "/etc/networks/interfaces"
(Ältere Linux Distributionen z. B. Raspbian Wheezy oder Debia Wheety)

Die Datei selbst kann nur von root angepasst werden.
Um die Datei anzupassen, wie folgt vorgehen:

  1. Wechseln in das entsprechende Verzeichnis ´cd /etc/network´

  2. Starten des Midnight Commander und öffnen der Datei interfaces
    ´sudo mc´

  3. Standardmäßig sollte folgendes drin stehen:
    Inhalt der Datei interfaces

  4. Zum einrichten der festen IP Adresse, muss der Block für eth0 wie folgt geändert werden:
    Inhalt der Datei interfaces mit fester IP-Adresse Erklärung:
    static - Definition für feste IP-Adresse
    address - Die IP-Adresse für das Interface
    broadcast - Die Broadcast-Adresse (Endet meist auf .255)
    netmask - Die Subnetzmaske
    gateway - Das Gateway für Zieladressen die nicht im Lokalen Netz liegen

Quelle: http://juliusbeckmann.de/blog/statische-ip-adressen-in-debian-und-konsorten-einrichten.html

Anpassen der Datei "/etc/dhcpcd.conf"
(Neuere Linux Distributionen z. B. Raspbian Jessy)

Diese Dateien können nur von root geändert werden, daher ist darauf zu achten, das vor dem Befehle sud vorangestellt wird.
Zum einstellen der statischen IPv4 wie folgt vorgehen:

  1. Prüfen ob das verwendete System systemd verwendet
    cat /proc/1/comm
    Wird systemd zurückgemeldet, können sie Fortfahren. Wird etwas anderes ausgegeben, kann vermutlich die Datei /etc/network/interfaces direkt bearbeitet werden, siehe hierzu den Anschnitt /etc/network/interfaces

  2. Die Datei dhcpcd.cond zum bearbeiten mit nano öffnen
    sudo nano /etc/dhcpcd.conf

  3. Am Ende der Datei folgenden Text anhängen:
    Inhalt der Datei dhcpcd.conf
    Erklärung:
    interface eth0 - Netzwerkschnitstelle die angepasst wird
    static ip_address=192.168.1.2/24 - Die IP-Adresse für das Interface, die 24 ist eine Kodierung für die Subnetzmaske 255.255.255.0
    static routers=192.168.1.1 - Die IP- Adresse für das Gateway
    static domain_name_servers=192.168.1.1 - Die IP-Adresse für den DNS Server, meist gleich wie IP-Adresse des Gateway

  4. Netzwerkkonfiguration neu starten (alternativ kann das System neu gestartet werden)
    sudo service networking restart

  5. Überprüfen des Netzwerkstatus
    sudo service dhcpcd status
    Zeigt die Ausgabe noch wie im Beispiel unten eine Warnung, so muss noch der Befehl sudo systemctl daemon-reload ausgeführt werden
    Ausgabe von sudo service dhcpcd status

Quelle: https://www.elektronik-kompendium.de/sites/raspberry-pi/1912151.html

Java Installieren

Bei den meisten Linux Distributionen ist Java bereits vorinstalliert, allerdings handelt es sich dabei nicht um das von openHAB empfohlene Oracle Java Oracle Java 8 Rev > 101. Vor der Installation von openHAB wird empfohlene die installierte Java Version zu kontrollieren und ggf. zu deinstallieren.

Bei Verwendung von Raspbian Lite ist noch kein Java installiert, was die Installation vereinfacht da nichts deinstalliert werden muss.

Um Java auf dem Raspberry zu installieren, folgende Befehle ausführen:

  1. Hinzufügen der Paketquellen damit Java installiert werden kann
    echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | sudo tee /etc/apt/sources.list.d/webupd8team-java.list echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | sudo tee -a /etc/apt/sources.list.d/webupd8team-java.list

  2. Den Schlüssel vom Schlüssel-Server herunterladen damit der Paket-Manager die Pakete verifizieren kann
    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886

  3. Update der Paket-Liste durchführen
    sudo apt-get update

  4. Java installieren
    sudo apt-get install oracle-java8-installer

  5. System neu starten damit die Änderungen wirksam werden
    sudo reboot

  6. Java Version überprüfen
    java -version
    Die Ausgabe sollte nun in etwa wie folgt aussehen: Ausgabe von java -version

Quelle: http://docs.openhab.org/installation/linux.html

openHAB2 auf dem Raspberry installieren

Da es sich bei Raspbian um eine Debian basierte Distribution handelt, empfiehlt es sich openHAB2 über die Paketquellen zu installieren. Hierzu müssen dem Linux Paketmanager zuerst die Quellen hinzugefügt werden, damit die die openHAB2 Pakete installiert werden können. Ein weitere Vorteil der Installation von openHAB über den Paketmanager ist, dass bei Updates openHAB mit aktualisiert wird.

Hinzufügen der Quellen zum Paketmanager:

  1. Schlüssel für das openHAB Paket vom Schlüssel-Server herunterladen damit die Installation verifiziert werden kann
    wget -qO - 'https://bintray.com/user/downloadSubjectPublicKey?username=openhab' | sudo apt-key add -

  2. Installation benötigter Abhängigkeiten
    sudo apt-get install apt-transport-https

  3. Hinzufügen der Paketquellen damit openHAB installiert werden kann
    echo 'deb https://dl.bintray.com/openhab/apt-repo2 stable main' | sudo tee /etc/apt/sources.list.d/openhab2.list

  4. Paket-Liste aktualisieren damit das Installationsprogramm openHAB findet.
    sudo apt-get update

  5. openHAB2 installieren.
    sudo apt-get install openhab2

  6. Der folgende Schritt muss nur durchgeführt werden, wenn openHAB offline betrieben wird und openHAB die benötigten Bindings nicht nach Bedarf aus dem Internet nachinstallieren kann.
    sudo apt-get install openhab2-addons
    Ausgabe der openHAB2 Installation

Nach erfolgreicher Installation kann openHAB2 nun mit folgendem Befehl gestartet werden.

  • sudo /bin/systemctl start openhab2.service

Ergänzend noch der Befehl um openHAB2 zu stoppen bzw. den Status abzufragen:

  • sudo systemctl stop openhab2.service
  • sudo systemctl status openhab2.service

Ausgabe von systemctl openhab2.service

Autostart von openHAB2 einrichten

Damit openHAB nach einen Neustart des Betriebssystem automatisch gestartet wird, müssen noch zwei Befehle ausgeführt werden um das System zu konfigurieren. Dies funktioniert nur, wenn openHAB2 wie zuvor beschrieben installiert wurde.

Autostart konfigurieren:
1. sudo systemctl daemon-reload
2. sudo systemctl enable openhab2.service

Ausgabe beim einrichten des openHAB2 Autostart