FHEM auf Raspberry Pi installieren

FHEM auf einem Raspberry zu installieren bringt das Smarthome auf ein anderes Level! Herausragend ist sicherlich, dass über die Lösung die Produkte verschiedenster Hersteller miteinander verknüpft werden können. Das geht natürlich auch in Homekit, Alexa oder Google Home. Allerdings ist man bei den genannten Smarthome Lösungen immer auf die Zertifizierung der Produkte für das jeweilige System angewiesen. FHEM hebt diese Grenzen auf.

Im weiteren beschreibe ich nun die Installation von FHEM auf einem Raspberry Pi. Die Kombination hat die weiteren Vorteile, dass zum einen die Hardware günstig zu erwerben ist. Zum anderen FHEM als Open Source Software eine große Community hat und kostenlos ist. Dadurch werden die verfügbaren Module immer aktuell gehalten. Darüber hinaus kommen regelmäßig neue Module hinzu.

Raspbian auf Raspberry installieren

Der Raspberry Pi ist ein Mini Computer der völlig individuell aufgebaut und erweitert werden kann. Die kompakte Bauform erlaubt den Pi völlig unauffällig zu platzieren. Er besteht lediglich aus einer Platine mit diversen Anschlüssen, einem Netzteil, einer SD-Karte auf dem das Betriebssystem sowie die Dateien gespeichert werden, sowie einem Gehäuse. Darauf verzichten sogar Fans des beliebten Mini Computers. Zum Start in das Thema kann ich daher folgendes Starter-Kit empfehlen.

Sobald der freundliche Paketdienst den Raspberry übergeben hat geht es nach dem Zusammenbau mit der Installation des Betriebssystems weiter. Das bekannteste OS dürfte Rasbian sein. Es kann unter folgendem Link herunter geladen werden. Ich nutze die Lite Version, da ich nur mit dem Terminal arbeite. Somit spare ich mir den Arbeitsspeicher für den Desktop

https://www.raspberrypi.org/software/operating-systems/

Ist der Download erfolgt müssen die Dateien auf eine SD-Karte geschrieben werden. Dazu nutze ich das Program Etcher, welches hier herunter geladen werden kann. Das Programm kann auf allen Plattformen verwendet werden und ist einfach zu bedienen.

1. Image auswählen.

Etcher Select Image Dialog.
Etcher Select Image

2. Speicherziel auswählen

Etcher Ziel Volume auswählen
Etcher Select Target

3. Flash Vorgang starten und Fortschritt beobachten

Etcher Flash complete Dialog
Etcher Flash complete

Wurde der Schreibvorgang erfolgreich abgeschlossen muss anschließend die SD-Karte erneut verbunden werden. Auf der Karte findet man zwei Partitionen. Die Boot Partition ist unter allen Systemen lesbar. In diese Partition muss jetzt noch eine leere Datei mit dem Namen ssh ohne Dateiendung angelegt werden. Die Datei aktiviert den SSH Zugang.

Jetzt kann die SD-Karte ausgeworfen werden, um Sie im Raspberry Pi zu booten.

Pi Einstellungen und Raspbian Update

Bevor mit der FHEM Installation gestartet werden kann benötigt der Raspberry noch ein paar grundlegende Einstellungen. Ich nutze dafür Putty für Windows oder den Terminal auf MAC. Für den Login benötigt man nun die IP-Adresse des Pi. Der Standard Benutzer lautet: pi – Das Standard Passwort lautet: raspberry

Die Anmeldung im MAC Terminal lautet: ssh pi@eure.ip.des.raspberry

Direkt nach dem erstmaligen Login taucht folgende Abfrage auf, die mit yes bestätigt werden muss:

The authenticity of host ‚eure.ip.des.raspberry (eure.ip.des.raspberry)‘ can’t be established.ECDSA key fingerprint is…

Kommt der Fehler Host key verification failed., kann mit dem Befehl rm -f ~/.ssh/known_hosts eine Bereinigung erzielt und der Login erneut ausgeführt werden.

War der Login erfolgreich können nun die ersten Befehle abgesetzt werden

Raspberry Pi Login Maske des MAC Terminal
Raspberry Pi Login Maske Terminal

Raspberry Grundeinstellungen:

# Einstellen der Zeitzone und Zeitsynchronisierung per Internet 
sudo timedatectl set-timezone Europe/Berlin
sudo timedatectl set-ntp true

# Konfigurieren lokale Sprache deutsch 
sudo sed -i -e 's/# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/' /etc/locale.gen 
sudo locale-gen 
sudo localectl set-locale LANG=de_DE.UTF-8 LANGUAGE=de_DE

# System aktualisieren  
sudo apt-get update 
sudo apt-get upgrade 

sudo apt-get autoremove
sudo apt-get clean
sudo apt-get purge $(dpkg --get-selections | grep deinstall | cut -f1 | xargs)

#Neustart ausführen 
reboot

Nach einiger Zeit ist die Aktualisierung von Raspbian abgeschlossen und das Betriebssystem bereit zur Installation weiterer Software. Um die Möglichkeiten im Smarthome zu erweitern kann ich FHEM oder auch Homebridge für Appple Homekit User uneingeschränkt empfehlen. In meinem Fall nutze ich beide Lösungen.

In diesem Beitrag erfahrt ihr mehr über die Bereitstellung und Installation von Homebridge.

FHEM installieren

Die Hardware ist nun bereit für die FHEM Installation. Die folgenden Schritte sollten schnell abgearbeitet sein, sodass anschließend dem Aufbau des Smarthomes nichts mehr im Wege steht.

1. Installationsvorraussetzungen

Dieser Schritt ist in zwei sudo Abschnitte aufgeteilt! Bitte nacheinander ausführen!

sudo apt-get -y install perl-base libdevice-serialport-perl libwww-perl libio-socket-ssl-perl libcgi-pm-perl libjson-perl sqlite3 libdbd-sqlite3-perl libtext-diff-perl libtimedate-perl libmail-imapclient-perl libgd-graph-perl libtext-csv-perl libxml-simple-perl liblist-moreutils-perl fonts-liberation libimage-librsvg-perl libgd-text-perl libsocket6-perl libio-socket-inet6-perl libmime-base64-perl libimage-info-perl libusb-1.0-0-dev libnet-server-perl

sudo apt-get -y install libdate-manip-perl libhtml-treebuilder-xpath-perl libmojolicious-perl libxml-bare-perl libauthen-oath-perl libconvert-base32-perl libmodule-pluggable-perl libnet-bonjour-perl libcrypt-urandom-perl

2. Download FHEM

sudo wget http://fhem.de/fhem-6.0.deb

3. FHEM installieren

sudo dpkg -i fhem-6.0.deb

Der user fhem wird automatisch angelegt, was am Ende der Installation in der Eingabemaske bestätigt wird.

FHEM Installation Abschlussmeldung

Nun ist alles geschafft und über http://eure.ip.des.raspbian:8083 der Zugriff auf die FHEM Web Oberfläche möglich sein.

Im Menü auf der linken Seite unter Select Style wähle ich das default Style aus. Ist nicht schön aber von der Schriftgröße gut.

Weiterhin setze ich noch folgende Einstellung direkt im FHEM Eingabefeld ab. Es geht um die automatische Erkennung von Geräten über den USB Port, was zu hoher Last führen kann, selbst wenn keine USB-Devices angeschlossen sind.

attr initialUsbCheck disable 1

Zum Schluss kann ich folgenden Beitrag erwähnen falls der Einsatz von Homematic Komponenten geplant ist.

Ich hoffe der Artikel hat euch gefallen und ihr besucht meine Seite bald wieder. Gerne könnt ihr auch einen Kommentar hinterlassen.

19 Gedanken zu „FHEM auf Raspberry Pi installieren

  • 22. Februar 2020 um 20:30
    Permalink

    Hi, danke für die schöne Anleitung. Frage: Homekit und FHEM laufen bei dir parallel? Mit den gleichen Devices?

    Antwort
    • 23. Februar 2020 um 7:55
      Permalink

      Die beiden Lösungen laufen bei mir auf dem gleichen Raspberry. Das primäre System ist aber FHEM. Da bilde ich derzeit einen Großteil der Logik, also Automationen ab. Homebridge kennt alle Geräte, dich in Homekit haben möchte. Das sind aber nicht alle Geräte, die in FHEM verfügbar sind. Homebridge ist bei mir derzeit die Brücke zwischen FHEM und Homekit. Ich überlege aber, um die Komplexität zu reduzieren, komplett auf Homebridge als Smart Home Zentrale umzusteigen.

      Antwort
  • 22. März 2020 um 17:21
    Permalink

    Hallo,
    als erstes Danke für deine Anleitung.

    Ich bin Anfänger mit keinen IT Kenntnissen und versuche mich hier in dieser neuen Welt zurecht zu finden. Ich war von deinem Beitrag begeistert zu sehen, das es technisch Möglich ist meine RTS Storen mittels Homekit zu steuern.
    Das hat mich motiviert einen Raspberry Pi 4 zu kaufen und den SIGNALduino Stick zu bestellen, den ich nächste Woche erhalten sollte.
    Leider habe ich schon bei der FHEM Installation resp. beim Punkt 1 Installationsvorraussetzungen meine ersten Probleme.
    Ich erhalte die folgende Meldung:

    Paketlisten werden gelesen… Fertig
    Abhängigkeitsbaum wird aufgebaut.
    Statusinformationen werden eingelesen…. Fertig
    Hinweis: »perl« wird an Stelle von »libmime-base64-perl« gewählt.
    E: Paket apt-get kann nicht gefunden werden.
    E: Paket install kann nicht gefunden werden.

    Habe nach dem Download von FHEM trotzdem versucht die Installation durchzuführen, was entsprechend mit der folgenden Fehlermeldung endete:

    ~ $ sudo dpkg -i fhem-5.9.deb
    Vormals nicht ausgewähltes Paket fhem wird gewählt.
    (Lese Datenbank … 132894 Dateien und Verzeichnisse sind derzeit installiert.)
    Vorbereitung zum Entpacken von fhem-5.9.deb …
    Entpacken von fhem (5.9) …
    dpkg: Abhängigkeitsprobleme verhindern Konfiguration von fhem:
    fhem hängt ab von libdevice-serialport-perl (>= 1.0); aber:
    Paket libdevice-serialport-perl ist nicht installiert.
    fhem hängt ab von libwww-perl (>= 1.0); aber:
    Paket libwww-perl ist nicht installiert.
    fhem hängt ab von libio-socket-ssl-perl (>= 1.0); aber:
    Paket libio-socket-ssl-perl ist nicht installiert.
    fhem hängt ab von libcgi-pm-perl; aber:
    Paket libcgi-pm-perl ist nicht installiert.
    fhem hängt ab von libjson-perl; aber:
    Paket libjson-perl ist nicht installiert.
    fhem hängt ab von sqlite3; aber:
    Paket sqlite3 ist nicht installiert.
    fhem hängt ab von libdbd-sqlite3-perl; aber:
    Paket libdbd-sqlite3-perl ist nicht installiert.
    fhem hängt ab von libtext-diff-perl; aber:
    Paket libtext-diff-perl ist nicht installiert.

    dpkg: Fehler beim Bearbeiten des Paketes fhem (–install):
    Abhängigkeitsprobleme – verbleibt unkonfiguriert
    Fehler traten auf beim Bearbeiten von:
    fhem

    Kannst du mir bitte sagen was ich falsch gemacht habe oder anders machen sollte?

    Danke im Voraus für deine Unterstützung.

    Antwort
    • 23. März 2020 um 8:28
      Permalink

      Nimmst du die Installation im Kontext sudo vor? Also hast du den Code 1:1 kopiert? Die Grundvoraussetzungen müssen installiert sein. Sonst bekommst die gemeldeten FHEM Fehler.

      Antwort
    • 24. März 2020 um 18:10
      Permalink

      Schon mal gegoogelt, was der Fehler bedeuet? E: Paket apt-get kann nicht gefunden werden.

      Antwort
  • 23. März 2020 um 15:33
    Permalink

    Ich habe gemäss Kapitel FHEM installieren bei 1-3 den Code 1:1 kopiert und somit im sudo Kontext, ja.
    Lediglich das Kapitel ‚Pi Einstellungen und Raspbian Update‘ habe ich übersprungen. Die Konfiguration der Sprache und Zeitzone habe ich auf der Desktop Version vorgenommen. Weiss nicht in wie fern dies eine Rolle spielt.

    Habe die folgende Version:

    PRETTY_NAME=“Raspbian GNU/Linux 10 (buster)“
    NAME=“Raspbian GNU/Linux“
    VERSION_ID=“10″
    VERSION=“10 (buster)“
    VERSION_CODENAME=buster

    Antwort
    • 24. März 2020 um 18:06
      Permalink

      Das Raspbian Update würde ich immer durchführen! Nur so ist gewährleistet, dass auch die letzten sicherheitsrelevanten Patches eingespielt sind und das OS aktuell ist. Vielleicht liegt der Fehler ja auch genau daran?! Bitte die Anleitung 1:1 durchgehen.

      Antwort
  • 24. März 2020 um 17:40
    Permalink

    Hallo zusammen,
    mir geht es genauso wie Flavio bin blutiger Anfänger und bekomme den selben Fehler bei
    1. Installationsvorraussetzungen

    Ich habe den Code 1:1 kopiert.

    Danke euch

    Antwort
    • 24. März 2020 um 18:04
      Permalink

      Da kann ich leider gerade nicht helfen, da ich keinen Pi zum Testen habe, um zu prüfen, was sich möglicherweise geändert hat. Daher empfehle ich euch den FHEM Wiki Artikel: https://wiki.fhem.de/wiki/Raspberry_Pi

      Antwort
  • 27. März 2020 um 18:16
    Permalink

    So lautet die richtige Eingabe bei raspbian:
    sudo apt-get perl-base libdevice-serialport-perl libwww-perl libio-socket-ssl-perl libcgi-pm-perl libjson-perl sqlite3 libdbd-sqlite3-perl libtext-diff-perl libtimedate-perl libmail-imapclient-perl libgd-graph-perl libtext-csv-perl libxml-simple-perl liblist-moreutils-perl fonts-liberation libimage-librsvg-perl libgd-text-perl libsocket6-perl libio-socket-inet6-perl libmime-base64-perl libimage-info-perl libusb-1.0-0-dev libnet-server-perl apt-get libdate-manip-perl libhtml-treebuilder-xpath-perl libmojolicious-perl libxml-bare-perl libauthen-oath-perl libconvert-base32-perl libmodule-pluggable-perl libnet-bonjour-perl libcrypt-urandom-perl

    Antwort
    • 28. März 2020 um 12:18
      Permalink

      Danke, bis zuletzt hatte ich den obigen Code selbst immer verwendet. Was ist denn am obigen Code nun falsch oder anders und warum?

      Antwort
  • 7. April 2020 um 14:16
    Permalink

    sudo apt-get -y install perl-base libdevice-serialport-perl libwww-perl libio-socket-ssl-perl libcgi-pm-perl libjson-perl sqlite3 libdbd-sqlite3-perl libtext-diff-perl libtimedate-perl libmail-imapclient-perl libgd-graph-perl libtext-csv-perl libxml-simple-perl liblist-moreutils-perl fonts-liberation libimage-librsvg-perl libgd-text-perl libsocket6-perl libio-socket-inet6-perl libmime-base64-perl libimage-info-perl libusb-1.0-0-dev libnet-server-perl APT-GET -Y INSTALL libdate-manip-perl libhtml-treebuilder-xpath-perl libmojolicious-perl libxml-bare-perl libauthen-oath-perl libconvert-base32-perl libmodule-pluggable-perl libnet-bonjour-perl libcrypt-urandom-perl

    Du hast APT-GET -Y INSTALL mitten in den Paketen nocheinmal stehen, deswegen kommt der Fehler….

    Antwort
    • 7. April 2020 um 19:55
      Permalink

      Ja stimmt, kommt daher, dass es zwei Befehle sein sollten. Aber dann müssen diese natürlich getrennt sein. Danke für den Hinweis. Habs geändert.

      Antwort
      • 8. April 2020 um 12:45
        Permalink

        Hallo Udo,
        da scheint noch was zu klemmen. beim Ausführen des ersten Befehls bei diene Installationsvoraussetzungen kommt das:

        Reading package lists… Done
        Building dependency tree
        Reading state information… Done
        Note, selecting ‚perl‘ instead of ‚libmime-base64-perl‘
        Package ttf-liberation is not available, but is referred to by another package.
        This may mean that the package is missing, has been obsoleted, or
        is only available from another source
        E: Package ‚ttf-liberation‘ has no installation candidate

        Antwort
        • 3. Mai 2020 um 8:31
          Permalink

          Habs korrigiert, sollte jetzt wieder funktionieren.

          Antwort
  • 12. April 2020 um 9:11
    Permalink

    It’s actually a nice and useful piece of information. I’m glad that you
    simply shared this helpful info with us. Please keep us up to date
    like this. Thanks for sharing.

    Antwort
  • 16. April 2020 um 15:06
    Permalink

    Hallo
    danke ersmal für deine tolle Anleitung!!!
    Sie ist die neuste die ich gefunden hab!!!
    Seit einer Woche versuche ich Fhem auf meinem PI zu installieren.
    Mit dem ersten packet geht’s schon los, das sieht dann so aus

    pi@pi4:~ $ sudo apt-get -y install perl-base libdevice-serialport-perl libwww-perl libio-socket-ssl-perl libcgi-pm-perl libjson-perl sqlite3 libdbd-sqlite3-perl libtext-diff-perl libtimedate-perl libmail-imapclient-perl libgd-graph-perl libtext-csv-perl libxml-simple-perl liblist-moreutils-perl fonts-liberation libimage-librsvg-perl libgd-text-perl libsocket6-perl libio-socket-inet6-perl libmime-base64-perl libimage-info-perl libusb-1.0-0-dev libnet-server-perl apt-get libdate-manip-perl libhtml-treebuilder-xpath-perl libmojolicious-perl libxml-bare-perl libauthen-oath-perl libconvert-base32-perl libmodule-pluggable-perl libnet-bonjour-perl libcrypt-urandom-perl
    Paketlisten werden gelesen… Fertig
    Abhängigkeitsbaum wird aufgebaut.
    Statusinformationen werden eingelesen…. Fertig
    Hinweis: »perl« wird an Stelle von »libmime-base64-perl« gewählt.
    E: Paket apt-get kann nicht gefunden werden.
    pi@pi4:~ $

    Muss ich da packelte ersetzen ??? und wenn ja gegen welche ???
    Danke im Voraus
    Grüße Ralph

    Antwort
    • 3. Mai 2020 um 8:31
      Permalink

      Habs korrigiert, sollte jetzt wieder funktionieren.

      Antwort
  • 27. Oktober 2020 um 16:19
    Permalink

    Hallo,
    tolle Anleitung, danke!
    Bei mir musste noch der Eigentümer auf fhem gesetzt werden und dann lief es.

    Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.