Update
Für alle, die einen RPI 2 Modell B besitzen und das neue Debian Jessie verwenden wollen, gibt es hier einen aktualisierten Beitrag.
Wer in den Genuß eines Smart-Homes kommen möchte, der kann dies mit wenig Geld realisieren. Alles was ihr braucht ist ein Raspberry Pi (oder ein BananaPi) und ein Funkmodul und die kostenlose Hausautomationssoftware FHEM (Freundliche Hausautomation und Energie-Messung).
Meine ersten Gehversuche sind in meiner Präsentation „Hausautomation mit dem RaspberryPi + FHEM“ im Hackerspace Bremen zu finden. Mittlerweile besitze ich 4 Raspberry Pis (1 x Pi2 Modell B, 2 x Pi1 Modell B, 1 x Pi1 Modell B+) und einen BananaPi sowie drei Funkmodule von Busware (COC und SCC V1.0 SCC V2.0). Meine Hausautomation läuft seit vielen Jahren sehr stabil und wird laufend erweitert und optimiert.
Die nachfolgende Anleitung bezieht sich auf die unterschiedlichen Konfigurationen, die ich bei mir laufen gehabt habe. Ich beschreibe auch kurz die Entwicklung meines Systems über die Zeit.
Aktuell verwende ich ein RaspberryPi 2 Model B mit einem SCC V2.0-Funkmodul (mit Hochfrequenz-Shield) und einer externen Antenne (+5dB) mit 3m Kabel.
Mein Tipp: Nutzt am besten eine externe Antenne (+ 5dB) und einen HF-Shield am SCC. Durch die externe Antenne seid ihr flexibler und unanfälliger für Strahlung vom RPi.
Kompatibilität von Funkmodulen und RaspberryPis
Für das COC-Modul benötigt man ein gepatchtes Betriebssystem, das man sich bei Busware auf der Homepage laden kann. Leider ist es dann nicht mehr möglich das System zu aktualisieren, da der Patch des Kernels dann überschrieben wird. Aus diesem Grund habe ich mir das Funkmodul SCC gekauft.
Lange Rede kurzer Sinn:
RPi Modell B+ und SCC funktionieren zwar,
aber die Reichweite (bei mir im 868MHz-Bereich) ist stark eingeschränkt. Dies liegt wohl an den Schaltregler für seine Spannungsversorgung, die für Hochfrequenzstörungen sorgen.
Also… einen BananaPi oder einen RaspberryPi Modell B oder einen RaspberryPi 2 Modell B+ verwenden. Diese drei Systeme habe ich bei mir getestet und für positiv bewertet (ohne Gewähr).
Um euch den Einstieg etwas zu erleichtern, habe ich die einzelnen Schritte kurz und knapp zusammengefasst. Die Installation dauert ca. eine Stunde, danach könnt ihr mit der Konfiguration von FHEM loslegen. Für die Installation habe ich eine sehr minimalistische Distribution ausgewählt. Darüber hinaus nehme ich noch ein paar Spezialanpassungen vor, die einem später das Leben erleichtern.
Was ihr braucht – (m)eine Empfehlung:
- Raspberry Pi 2 Modell B (keinen Pi 1 Modell B+)
- Netzteil mit 5V / 2A mit micro USB Lade-Anschluss
- SD-Karte (ab 4 GB, bitte auf Kompatibilität achten)
- Edimax WLAN-Adapter EW-7811UN (wenn WLAN gewünscht)
- Busware SCC – Stackable CC1101 w/ MPU for Raspberry Pi
- Gehäuse (leider gibt es noch nichts passendes für das SCC-Modul)
- Homematic Komponenten
- Intertechno Funksteckdosen 3-fach Set IT-1500
- ApplePi Baker für Mac OS X
- Raspbian Wheezy
- FHEM – Freundliche Hausautomation und Energie-Messung
Schritt 1: Installation Raspbian Wheezy
- Image laden
- ApplePi Baker laden und installieren
Um das Programm installieren zu können, sollte in den Systemeinstellungen unter dem Punkt „Sicherheit (Allgemein)“ „keine Einschränkungen“ bei der Einstellung „Apps-Download erlauben von“ ausgewählt sein. - SD-Karte in Mac stecken, ApplePi Baker starten
- SD-Karte auswählen (Pi-Crust), Image auswählen (Pi-Ingredients), Restore Backup auswählen und warten…
Schritt 2: Konfiguration Raspbian Wheezy
Dieser Teil ist zwar etwas länger, aber im Grunde nicht kompliziert. Einfach die einzelnen Befehle Zeile für Zeile in die Konsole kopieren uns los gehts.
Über eure Fritzbox die IP des RPi ermitteln und per SSH verbinden.
Benutzername: pi Passwort: raspberry
Das Passwort sollte nach dem Login mit dem folgenden Befehl geändert werden:
passwd NEUESPASSWORT
Ihr könnt auch den root-Zugriff aktivieren:
passwd root
Ich melde mich meistens als root an, dementsprechend ist diese Anleitung geschrieben.
Grundeinstellungen:
- Das System startet automatisch raspi-config. Hier könnt ihr die entsprechenden Einstellungen vornehmen. Anschließend sollte noch Tastaturlayout und Localization korrigiert werden, teilweise gibt der Terminal (auf dem Mac) Fehlermeldungen raus:
dpkg-reconfigure tzdata dpkg-reconfigure console-data export LANGUAGE=de_DE.UTF-8 export LANG=de_DE.UTF-8 export LC_ALL=de_DE.UTF-8 locale-gen de_DE.UTF-8 dpkg-reconfigure locales
- Wolfram-Alpha Engine entfernen, nimmt über 450 MB ein und nervt beim Update
apt-get remove wolfram-engine
- System aktualisieren (dies dauert!)
apt-get -y update apt-get -y upgrade
Schritt 3: FHEM installieren
Die Installation von FHEM ist sehr einfach. Es bedarf lediglich einiger zusätzlicher Perl-Module.
apt-get -f install && apt-get install perl libdevice-serialport-perl libjson-perl libio-socket-ssl-perl libwww-perl libxml-simple-perl -y
wget http://fhem.de/fhem-5.5.deb && dpkg -i fhem-5.5.deb
cd /opt
chmod -R a+w fhem && usermod -a -G tty root && usermod -a -G tty fhem
Ggf. solltet ihr noch überprüfen, ob Telnet installiert ist und bei Bedarf nachinstallieren:
apt-get install telnet
Schritt 4: Mplayer für Text2Speech installieren
Damit die Hausautomation auch sprechen kann, muss der Mplayer installiert werden. Es ist auch empfehlenswert das Modul mp3wrap zu installieren, damit die Sprachausgabe reibungslos funktioniert.
-
apt-get install mplayer mplayer-gui alsa-base alsa-utils pulseaudio mpg123
Beim RaspberryPi sind folgende Befehle auszuführen:
-
modprobe snd_bcm2835
-
echo 'snd_bcm2835' >> /etc/modules
Beim BananaPi muss ein anderes Modul gewählt werden:
-
modprobe spi-sun7i
-
echo 'spi-sun7i' >> /etc/modules
Die weitere Konfiguration ist gleich:
-
nano /etc/asound.conf
pcm.!default { type hw card 0 } ctl.!default { type hw card 0 }
- Optional kann mp3wrap installiert werden.
apt-get install mp3wrap
- Optional kann die libmpg123-0 installiert werden.
apt-get install libmpg123-0
echo "afm=mp3lib" >> /etc/mplayer/mplayer.conf
- Alsamixer öffnen und die Lautstärke erhöhen. Bei mir sind 90% gut, kommt aber auf die Lautsprecher an.:
alsamixer
- Mplayer testen:
mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols -http-header-fields "User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22m" "http://translate.google.com/translate_tts?tl=de&q=Das ist ein Test.";
- Mplayer für FHEM vorbereiten:
EDITOR=nano visudo ALL ALL = NOPASSWD: /usr/bin/mplayer
Schritt 5: SCC installieren
Eine ausführliche Anleitung findet ihr im Wiki des Herstellers. Sobald ihr den RPi wieder neu gestartet habt, blinkt eine orange LED am SCC.
- In der Dateien /etc/inittab folgenden Eintrag entfernen oder auskommentieren:
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
- In der Datei /boot/cmdline.txt nur noch folgendes stehen lassen:
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
- In der Datei /etc/init.d/fhem im Start-Case (ca. Zeile 19) folgende Befehle vor „starting fhem“ einfügen:
echo "resetting 868MHz extension..." if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi if test ! -d /sys/class/gpio/gpio18; then echo 18 > /sys/class/gpio/export; fi echo out > /sys/class/gpio/gpio17/direction echo out > /sys/class/gpio/gpio18/direction echo 1 > /sys/class/gpio/gpio18/value echo 0 > /sys/class/gpio/gpio17/value sleep 1 echo 1 > /sys/class/gpio/gpio17/value sleep 1
Anmerkung: Ich habe festgestellt, dass man gpio18 auch schalten muss, da sonst die Reichweite zu kurz ist. Keine Ahnung warum das so ist.
-
reboot
Schritt 6: Netzwerk konfigurieren
Damit der RPi auch immer unter der selben IP-Adresse erreichbar ist, empiehlt es sich, eine feste IP-Adresse zu vergeben. Bitte in dem folgendeb Beispiel die xxx entsprechend anpassen.
-
echo "Meinhostname" > /etc/hostname
-
nano /etc/network/interfaces
auto lo iface lo inet loopback allow-hotplug eth0 auto eth0 iface eth0 inet static address 192.168.xxx.xxx netmask 255.255.255.0 gateway 192.168.xxx.1 network 192.168.xxx.0 broadcast 192.168.xxx.255
Achtung: Bitte die IP-Adressen entsprechend eures Netzwerkes anpassen!
-
reboot
Voila, ihr könnt nun auf FHEM im Browser wie folgt zugreifen:
http://192.168.xxx.xxx:8083
Wie ihr FHEM konfiguriert, ziege ich in einem der nächsten Beiträge.
Erfahrungen aus dem Alltag
Meine Frau und ich wollen die Hausautomation nicht mehr missen. Es ist zwar teilweise viel Spielkram aber dennoch lassen sich wirklich nützliche Aktionen und Anwendungsszenarien erstellen, die einem das Leben erleichtern. Hier einige Highlights:
- Alarmanlage mit Sprachausgabe und Push-Notification auf unsere Handys
- Sprachausgabe, wenn Türen nach draußen geöffnet/geschlossen werden
- Anzeige eingehender Anrufe auf dem TV-Gerät
- Reduzierung der Lautstärke des TV-Geräts, wenn man den Hörer abhebt
- Steuerung von Beleuchtungsszenarien
- Schalten mehrer Geräte
- Erkennung der Anwesenheit der Hausbewohner durch Geofencing
- Steuerung von Aktionen durch Geofencing
- Push-Notification von Anrufen auf unsere Handys, wenn wir weg sind
Die Liste kann beliebig erweitert werden. Im Netz gibt es unzähliche Beispiele in Blogs oder im Wiki von FHEM.
Schreibt in den Kommentaren, was ihr für Anwendungsszenarien habt oder euch wünscht.
Weiter geht’s in der Serie „Wie konfiguriere ich FHEM richtig – Teil 1“.