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.
- Raspberry Pi 4 / 4GB RAM Model B / Broadcom 2711,...
- Raspberry Pi 4 Gehäuse Rot/Weiß
- Raspberry PI 4 Netzteil weiß 5.1V, 3A
- Raspberry Pi 4 Kühlkörper Set
- 64 GB Micro SD microSDHC / UHS-I U1 / Class10 /...
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.
2. Speicherziel auswählen
3. Flash Vorgang starten und Fortschritt beobachten
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 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.
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.
- Raspberry Pi 4 / 4GB RAM Model B / Broadcom 2711,...
- Raspberry Pi 4 Gehäuse Rot/Weiß
- Raspberry PI 4 Netzteil weiß 5.1V, 3A
- Raspberry Pi 4 Kühlkörper Set
- 64 GB Micro SD microSDHC / UHS-I U1 / Class10 /...
Hi, danke für die schöne Anleitung. Frage: Homekit und FHEM laufen bei dir parallel? Mit den gleichen Devices?
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.
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.
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.
Schon mal gegoogelt, was der Fehler bedeuet? E: Paket apt-get kann nicht gefunden werden.
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
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.
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
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
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
Danke, bis zuletzt hatte ich den obigen Code selbst immer verwendet. Was ist denn am obigen Code nun falsch oder anders und warum?
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….
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.
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
Habs korrigiert, sollte jetzt wieder funktionieren.
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.
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
Habs korrigiert, sollte jetzt wieder funktionieren.
Hallo,
tolle Anleitung, danke!
Bei mir musste noch der Eigentümer auf fhem gesetzt werden und dann lief es.
Ich bin blutiger Anfänger, habe die obige Anleitung befolgt und kann nach der Installation die FHEM-Seite öffnen. Ich kann die angeschlossenen Geräte an HUE und Fritzbox in FHEM anmelden und steuern. Nach Abschalten und Wiederanschalten des Raspberry lässt die FHEM-Seite im Browser nicht mehr aufrufen. Ein Weiterarbeiten mit FHEM ist nur nach erneuter Installation möglich. Was habe ich versäumt einzugeben?
Hallo Manfred,
ich kann dir leider nicht mehr zu FHEM weiterhelfen. Bin vor 2 Jahren auf Home Assistant umgestiegen. Das bedeutet ich habe keine FHEM Umgebung mehr, um etwas zu testen. Die Community im Forum kann dir aber sicherlich gut und schnell weiterhelfen.
Viele Grüße
Udo
Danke Udo!
Schade, dass Du keine FHEM-Umgebung mehr hast. Deine Anleitung hat bestens zur Installation beigetragen, mit anderen hatte ich nicht so viel Erfolg. Mein Problem kann ich Anlassen des Raspis lösen, bis ich eine bessere Lösung gefunden habe.
Danke für dein Feedback Manfred. Es mich aber trotzdem, dass die Anleitung immer noch nützlich ist.