Installation und Konfiguration des RPI für den Betrieb als Hausautomations-Server

Vorwort

Die nachfolgende Anleitung erläutert die Installation aller (ggf. später) benötigter Komponenten „von beginn an“, d.h. es sind keine vorbereitenden Arbeiten notwendig. Spätere Anleitungen werden ggf. nur einen Teil dieser installierter Komponenten benötigen. Es wird dazu an gegebener Stelle aber einen Hinweis geben und eine Erläuterung wie nur die gerade benötigten Komponenten installiert werden können.
Die vorgestellten Schritte nutzen das eigens dafür erstellte Installations-Skript easy-knx. Zur Zeit* werden dabei folgende Komponenten installiert:

  • Apache2 (Webserver)
  • PHP
  • MySQL
  • EIBD (Zum Empfangen und Senden von KNX-Paketen/Signalen)
  • Logik-Ebene (LinKNX und SmartHome.py)
  • Visualisierungen (KnxWeb2 und SmartVisu)

*Da das Installation-Skript fortlaufend weiterentwickelt wird, könnten bei einer konkreten Installation weitere Komponenten mit installiert werden!

Primär beziehen sich alle weiteren Anleitungen und Erklärungen auf das Paket bestehend aus SmartHome.py und SmartVisu. Dies hat den Hintergrund, da SmartHome.py in Kombination mit SmartVisu weitaus mehr Konfigurationsmöglichkeiten als LinKNX mit KnxWeb2 zulässt. In der Praxis ist das Paket aus LinKNX mit KnxWeb2 aber besser zum erstmaligen Testen des Buszugriffs geeignet, weshalb Einsteiger zunächst alle Komponenten installieren sollten.

 

SD-Karte vorbereiten

Als Basis kommt die Linux-Distribution Raspbian zum Einsatz. Diese muss zunächst auf eine mindestens 4 GiB große SD-Karte installiert werden.

Dazu zunächst das Image von dieser Übersichtsseite herunterladen (Direktdownloadlink) und an einem beliebigen Ort speichern (Ort merken). Anschließend kann das Image mithilfe verschiedener Werkzeuge auf die SD-Karte installiert werden. Die Art der Installation auf SD-Karte unterscheidet sich dabei, welches Betriebssystem eingesetzt wird.

Windows

Eine Installationsanleitung in der Sprache Englisch ist hier zu finden. Nachfolgend eine sinngemäße Übersetzung:

  1. Einstecken der SD-Karte in den Computer (Merken des Laufwerkbuchstabens z.B. E:)
  2. Herunterladen des Win32DiskImager (link)
  3. Entpacken des Win32DiskImager
  4. Doppelklick auf Win32DiskImager (ggf. als Administrator, Rechtsklick -> ausführen als Administrator)
  5. Auswählen des heruntergeladenen Raspbian-Image
  6. Auswählen des Laufwerkbuchstabens der SD-Karte (z.B. E:, siehe Schritt 1)
    1. WARNUNG: Es ist absolut wichtig, den korrekten Pfad zur SD-Karte anzugeben, da sonst ggf. ein falsches Gerät überschrieben wird!
  7. Klick auf write
  8. Beende Win32DiskImager und entferne SD-Karte

Linux

Eine Installationsanleitung in der Sprache Englisch ist hier zu finden. Nachfolgend eine sinngemäße Übersetzung:

  1. Öffne eine Konsole
  2. Führe df -h aus
  3. Einstecken der SD-Karte in den Computer
  4. Führe df -h erneut aus, vergleiche mit vorheriger Ausgabe, der neu hinzugekommene Eintrag stellt die SD-Karte dar
  5. Merken des Pfads zur SD-Karte ohne Partitions-Nummer (sollte z.B. /dev/mmcblk0 sein)
  6. Prüfen welche SD-Karten-Partitionen eingehängt sind via Befehl mount
  7. Aushängen (unmount) der SD-Karte bzw. aller SD-Karten-Partitionen  via unmount /dev/mmcblk0p1, unmount /dev/mmcblk0p2, usw.
  8. Kopieren des Images auf SD-Karte (als root oder via sudo)
    1. mit dd if=[Pfad zu Image] of=[Pfad zu SD-Karte] bs=4M
    2. z.B. dd if=/home/brootux/raspbian.img of=/dev/mmcblk0 bs=4M
    3. WARNUNG: Es ist absolut wichtig, den korrekten Pfad zur SD-Karte bei of anzugeben, da sonst ggf. ein falsches Gerät überschrieben wird!
    4. Der Kopiervorgang kann länger dauern und es gibt keine Rückmeldung! Daher einfach warten bis wieder ein Eingabe-Prompt erscheint
    5. Eventuell sollte bs=1M genutzt werden, sollte etwas schief gehen oder der Pi später nicht booten
  9. Ausführen von sync (als root oder via sudo)
  10. Entferne SD-Karte

MacOS

Eine Installationsanleitung in der Sprache Englisch ist hier zu finden. Da die Linux-Anleitung in etwa 1:1 für Mac-OS angewandt werden kann, wird an dieser Stelle eine Übersetzung ausgelassen.

 

Erstkonfiguration Raspberry Pi

Nach der Installation des SD-Karten-Images auf SD-Karte kann diese in das Raspberry Pi gesteckt und dieser durch einstecken des Netzteils gestartet werden. Beim ersten Start sollte das RPI dabei zunächst via HDMI oder S-Video-Out an einem Bildschirm/TV angeschlossen sein. Außerdem sollte eine funktionierende Tastatur per USB angeschlossen sein.

Beim ersten Start sollte dann am Bildschrim/TV ein Konfigurationsdialog angezeigt werden. Dabei sollten folgende Einstellungen durchgeführt werden:

  • Expandieren des Dateisystems (Expand Filesystem)
  • Einstellen eines Passworts (Change User Password)
  • Kein automatisiertes Starten von X nach Systemstart (Boot to Console)
  • Einstellen der Lokalisierung/Zeitzone/Tastaturlayout (Internationalisation Options)
  • Einstellen des GPU-Speichers auf den geringsten Wert (Advanced Options -> Memory Split -> 16)
  • SSH Aktivieren (Advanced Options -> SSH -> Enable)

Weiterhin besteht die Möglichkeit das RPI zu Übertakten (Overclock) dies stellt aber u.U. ein höheres Risiko für den Defekt des RPI dar und sollte nur durchgeführt werden wenn spätere Anwendungen nicht schnell genug bearbeitet werden. Abschließend wird man auf die Kommandozeile des RPI weitergeleitet.

An dieser Kommandozeile kann man sich dann mit dem Benutzernamen pi und dem selbst ausgesuchten Passwort anmelden.

Möchte man das RPI nun schon vom Bildschirm/TV trennen und nur noch per Netzwerk  zugreifen, so sollte man sich zunächst die aktuell zugewiesene IP merken. Dies kann mittels

ifconfig

geschehen. Bei der angezeigten Übersicht sollte nach dem Eintrag hinter inet addr: für die Schnittstelle eth0 gesucht werden. Die dort angezeigte IP sollte aufgeschrieben werden. Im folgenden Beispiel hat das RPI die IP-Adresse 192.168.0.20.

eth0     Link encap:Ethernet  HWaddr 00:11:af:fe:af:ab
inet addr:192.168.0.20  Bcast:192.168.0.255  Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:10297 errors:0 dropped:0 overruns:0 frame:0
TX packets:14519 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1753040 (1.6 MiB)  TX bytes:1770873 (1.6 MiB)

Möchte man, dass das RPI immer unter der gleichen IP-Adresse verfügbar ist, so kann dieses Tutorial genutzt werden.

Nun sollte man das RPI mittels

sudo shutdown -h now

herunterfahren und dann vom Netzteil trennen.

Hinweis: Möchte man weiter am Bildschirm/TV arbeiten, so kann der nachfolgende Schritt übersprungen werden.

 

Verbindung herstellen

Ist nun das RPI konfiguriert und am gewünschten Ort aufgestellt kann mithilfe von SSH per Netzwerk darauf zugegriffen werden, als würde man direkt auf einem Bildschirm/TV damit arbeiten. Es muss dazu die IP bzw. der Computername (hostname) bekannt sein!

Es kann sich dann z.B. via Putty (Direktdownloadlink) unter Windows oder unter Linux/MacOS via

ssh -l pi [IP/Hostname]

zum RPI verbunden werden. Dazu kann die im vorhergehenden Schritt aufgeschriebene IP-Adresse genutzt werden*.

*Hat sich die IP geändert, so kann man häufig durch Zugriff auf das DSL-Modem herausfinden welche IP vom RPI genutzt wird. Sollte dies nicht Möglich sein, so sollte das RPI wieder an den Bildschirm/TV angeschlossen werden und die oben genannte Möglichkeit zur Konfiguration einer statischen IP genutzt werden!

 

Installation starten

Hat man es geschafft sich per SSH zum RPI zu verbinden, kann nun (endlich) die eigentliche Installation beginnen. Dazu muss zunächst sichergestellt sein, dass eine Verbindung ins Internet möglich ist. Dies kann man Überprüfen indem man

ping www.google.de -c 4

auf der Konsole eingibt. Nach vier Versuchen http://www.google.de zu erreichen, sollte die Ausgabe folgendermaßen aussehen:

--- www.google.de ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 28.737/29.242/29.761/0.384 ms

Sollte dort etwas wie 0 received 100% packet loss zu finden sein, muss die Verbindung ins Internet überprüft werden!

Ist der Test geglückt muss zunächst das Versionsverwaltungswerkzeug git installiert werden. Dies kann man auf der Konsole sehr einfach mithilfe des – bei Linux standardmäßig mitgelieferten – Paketverwaltungssystem apt-get erledigen. Dazu

sudo apt-get install git

eingeben und anschließend die Installation mit y oder yes bestätigen.

Nun kann der aktuelle Stand des Installations-Skripts geholt werden. Dazu einfach

git clone https://github.com/Brootux/easy-knx.git

eingeben. Anschließend mit

cd easy-knx

in den neuen Ordner easy-knx wechseln. Dann sollte man sicherheitshalber mittels

chmod 744 easy_install.sh

das Installations-Skript ausführbar machen. Abschließend kann durch eingeben von

sudo ./easy_install.sh

und abschließender Bestätigung via Enter das Skript gestartet werden. Die Installation sollte nun laufen und einige Minuten benötigen. Bis auf die Eingabe eines Passwortes für das Datenbanksystem MySQL (welches man sich natürlich merken oder aufschreiben sollte) müssen keine Eingaben getätigt werden. Nach Abschluss der Installation muss das Raspberry Pi mittels

sudo shutdown -r now

neu gestartet werden.

 

Ergebnis

Nun kann mittels Browser auf das RPI zugegriffen werden (IP oder Computername des RPI eingeben). Man sollte dann zunächst auf folgende Übersichtsseite gelangen:

Uebersichtsseite

Hinweis: Die in der Abbildung gezeigte Webseite kann je nach Stand des Installationsskriptes anders aussehen, da dieses ständig verbessert wird.

Die Installation der benötigten Komponenten ist damit abgeschlossen. Alle weiteren Anleitungen basieren auf einem solchen Installationsstand.

5 Kommentare

    1. Hallo Reto, entschuldige die späte Antwort und vielen Dank für das Lob 🙂

      Da ich bei mir Zuhause SmartVisu + SmartHome.py einsetze kenne ich WebKnx2 + LinKNX gar nicht so umfassend. Ich hoffe Du konntest alleine schon weiteres herausfinden.

      1. Hallo brootux

        Da ich nicht so Linux versiert bin und kein FT1.2-Adapter installiert habe, brachte ich die EIBD Schnittstelle leider nicht zum Laufen.
        Ich denke es gibt viele die einen normalen IP Adapter (Feller, ABB etc.) als Schnittstelle zu KNX verwenden und da bin ich leider mit den Einstellungen im EIBD gescheitert 😉

        Gruss
        Reto

Hinterlasse einen Kommentar