Vor ein paar Monaten habe ich mit FHEM auf der Fritz!Box 7390 meine ersten Schritte in Sachen Hausautomation gemacht. Leider hat die Fritz!Box immer wieder mal Probleme mit der Performance und Abstürze, weshalb ich mich nun für eine Installation von FHEM auf dem Raspberry Pi („Himmbeer-Kuchen“ :-) ) entschieden hab.
Installation RaspBMC
Der Raspberry Pi ist ein Einplatinen-Computer mit 700Mhz ARM-CPU, 100Mbit-Netzwerk-Karte, 512MB RAM und HDMI-Ausgang, für den mehrere Linux-Distributionen verfügbar sind.
Der Raspberry PI (Model B) kostet nicht einmal 40 Euro + zusätzlich 8 Euro für Gehäuse + 8 Euro für eine SD-Karte (als Festplatte => 8 bis 16 GB Class 10 genügen) + USB-Netzkabel (mind. 1.2A) – macht insgesamt (wenn man teuer einkauft ca. 60 Euro.
Gekauft habe ich alles zusammen bei Amazon – lustiger weise wurden die 4 Teile in 3 Pakten verschickt und in zwei Packstationen geliefert (die 20 m auseinander liegen) => das nenne ich mal Logistik :-))
Auf der Raspberry PI Downlaod-Seite habe ich ersteinmal für OpenELEC entschieden – habe aber nach Installation auf der SD-Karte und erstem Bootvorgang festgestellt, dass es sehr minimal ist und man quasi alles per Hand nachinstallieren muss.
Deswegen habe ich mich dann im zweiten Versuch für RaspBMC entschieden. Die Installations-Anleitung inkl. Image für die SD-Karte findet man im Wiki, das Windows-Tool lädt automatisch das Image herunter und schreibt es auf die SD-Karte.
Hat man seinen Raspberry Pi in’s Gehäuse eingebaut, Netzwerk per LAN verbunden und die SD-Karte eingesetzt und mittels HDMI an einen Fernseher angeschlossen kann man in über den USB-Netz-Stecker einstöpseln und damit starten.
RaspBMC installiert einiges aus dem Internet nach – dauert ca. 15 bis 20 Minuten – danach kann man den Raspberry als Media-Center PC verwenden – der Clou dabei, dank HDMI und CEC-Unterstützung kann man mit aktuellen Fernsehern direkt per TV-Fernbedienung alles steuern – einfacher geht’s wirklich nicht.
FHEM-Installation
Dabei habe ich mich an folgende Anleitung gehalten.
Soweit so gut nun hab ich noch meine bereits vorhandenen Scripte per SFTP von der Fritz-Box auf den Raspberry übertragen und die fhem.cfg entsprechend dem Raspberry angepasst.
Natürlich wollte ich auch FHEM von außen erreichen – nicht nur vom internen Netzwerk – dazu habe ich also in der Fritz-Box ein Port-Forwarding (Portfreigabe) von Port 808X an den Raspberry-Port 808X – leider hat das aber nicht’s gebracht.
RaspBMC hat als Default die Firewall über iptables aktiviert und noch ein paar besondere Gimmicks eingebaut.
Da der Raspberry aber eh über die FritzBox-Firewall geschützt ist habe ich diese mal für ein paar Ports deaktiviert.
Dazu muss man folgende Datei editieren:
sudo vi /etc/network/if-up.d/secure-rmc
Am Ende findet sich der Part:
if [ "$IFACE" != "lo" ]; then
NETMASK=$(get_subnet $IFACE)
iptables -A INPUT -s $NETMASK -i $IFACE -j ACCEPT
iptables -A INPUT -i $IFACE -j DROP
fi
Dort muss man bspw. folgendes ergänzen, um den Port 80 freizugeben:
if [ "$IFACE" != "lo" ]; then
NETMASK=$(get_subnet $IFACE)
iptables -A INPUT -s $NETMASK -i $IFACE -j ACCEPT
iptables -A INPUT -i $IFACE -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i $IFACE -j DROP
fi
Nach Speichern per :wq
sollte man nun noch den Raspberry Pi neu starten:
sudo shutdown -r now
Probleme hatte ich noch mit dem automatischem Start von FHEM.
Dazu muss man noch ein Startscript anlegen:
vi /etc/init.d/fhem
Das folgendes enthält:
#! /bin/sh
# /etc/init.d/fhem start|stop
# Copyright Stefan Gubo
### BEGIN INIT INFO
# Provides: fhem
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: FHEM Server
### END INIT INFO
# Carry out specific functions when asked to by the system
case “$1″ in
start)
echo “Starting FHEM ”
perl /opt/fhem/fhem.pl /opt/fhem/fhem.cfg
;;
stop)
echo “Stopping FHEM”
/opt/fhem.pl 7072 “shutdown”
;;
*)
echo “Usage: /etc/init.d/fhem {start|stop}”
exit 1
;;
esac
exit 0
Danach wird die Datei entsprechend Berechtigt und in das Bootskript mit aufgenommen:
chmod 755 /etc/init.d/fhem
update-rc.d fhem defaults
Jetzt kann fhem ganz einfach wie folgt gestartet und gestoppt werden:
Start: /etc/init.d/fhem start
Stop: /etc/init.d/fhem stop