r

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

  1. Image laden
  2. 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.
  3. SD-Karte in Mac stecken, ApplePi Baker starten
  4. SD-Karte auswählen (Pi-Crust), Image auswählen (Pi-Ingredients), Restore Backup auswählen und warten…

ApplePi-Baker

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:

  1. 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
    
  2. Wolfram-Alpha Engine entfernen, nimmt über 450 MB ein und nervt beim Update
    apt-get remove wolfram-engine
  3. 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.

  1. apt-get install mplayer mplayer-gui alsa-base alsa-utils pulseaudio mpg123

Beim RaspberryPi sind folgende Befehle auszuführen:

  1. modprobe snd_bcm2835
  2. echo 'snd_bcm2835' >> /etc/modules

Beim BananaPi muss ein anderes Modul gewählt werden:

  1. modprobe spi-sun7i
  2. echo 'spi-sun7i' >> /etc/modules

Die weitere Konfiguration ist gleich:

  1. nano /etc/asound.conf
    
    pcm.!default {
    type hw
    card 0
    }
    ctl.!default {
    type hw
    card 0
    }
    
  2. Optional kann mp3wrap installiert werden.
    apt-get install mp3wrap
  3. Optional kann die libmpg123-0 installiert werden.
    apt-get install libmpg123-0
    echo "afm=mp3lib" >> /etc/mplayer/mplayer.conf
  4. Alsamixer öffnen und die Lautstärke erhöhen. Bei mir sind 90% gut, kommt aber auf die Lautsprecher an.:
    alsamixer
  5. 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.";
  6. 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.

  1. In der Dateien /etc/inittab folgenden Eintrag entfernen oder auskommentieren:
    T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
  2. 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
  3. 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.

  4. 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.

  1. echo "Meinhostname" > /etc/hostname
  2. 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!

  3. 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“.