Robins Blog – Technik und Multimedia

Hausautomation mit Fhem auf Raspberry Pi mit Philips hue, Temperaturmodule, FH 20 Funksteckdosen

Update: 12.10.2013 Erweiterung Blog-Beitrag – 868 MHz Gesundheitsschädlich?

Update: 08.09.2013 Screen-Shot der Desktop-Version – Menü Lichtsteuerung
Update: 14.05.2013 Erweiterung des Blog-Beitrages -> Stromverbrauch messen
Fassen wir mal kurz meine Blog-Beiträge zusammen: Wir haben hier einen günstigen Raspberry Pi (-> Erfahrungsbericht), eine Philips Hue (-> Erfahrungsbericht) und mehrere Philips Living Colors Bloom. Als letzte Hardware kommt eine CC1101  (-> CUL V3 USB Stick CC1101 USB Lite 868MHz incl. Drahtantenne
) noch hinzu. Nun möchte man diese Komponenten mit einer Software steuern, oder sogar sinnvoll miteinander verbinden. Mehr noch, man müsste noch sagen können: Schalte um 5 Uhr das Licht an, fahre die Rolladen hoch, aber nur wenn an einem Arbeitstag ist und keine Ferien. Dafür gibt es Fhem.

Was ist Fhem? FHEM ist ein in perl geschriebener, GPL lizensierter Server für die Heimautomatisierung. Die Software ist kostenlos und kann auf Linux, NAS, Fritzbox 7390 und auf Windows-PCs (Lamp) installiert werden. Sehr gut funktioniert er mit Linux und besonders stromsparend auf einem Raspberry Pi. Der Verbrauch eines Raspberry Pi liegt bei ungefähr 3 W. Er läuft bei mir 24 Stunden und ich nehme ihn unter anderem als XBMC-Mediaserver.

Was kann man damit alles messen und schalten? Ziemlich viel! Es fängt mit Steckdosen an, geht über Temperaturmessung und hört bei zeitgesteuertes Einschalten von Lampen auf. Ich habe meine Philips Hue komplett in Fhem eingebunden. Ebenfalls habe ich meine Energiesparampel (-> Erfahrungsbericht)  mit in Fhem integriert und bekomme so eine Grafik über den Stromverbrauch im Haus. Neben den zahlreichen Plugins könnt ihr auch Euren Samsung TV damit steuern, z. B. die Lautstärke anpassen. Ihr könnt noch einiges mehr steuern, einfach mal auf die FHem.de Homepage gehen.

Wie kann man den Fhem steuern? Traditionell über den PC. Hierzu ruft man die URL des Servers  Eures Raspberry Pi nicht mit Port 80, sondern mit der Portadresse 8083 auf. Es erscheint nach der finalen Konfiguration ein Menü mit allen Informationen über Eure Sensoren und Aktoren. Da das Menü konfigurierbar ist haben viele Ihre Wohnung grafisch dargestellt und können so interaktiv agieren. Hierzu gibt es einige Beispiele: Interessant wird es aber, wenn man sich ein wenig mit der Programmiersprache Perl beschäftigt. Hier kann man mit einigen If / Else – Abfragen sinnvolle Statements scripten. Beispielsweise: Wenn es draußen regnet, dann schalte den Brunnen aus und fahre die Markise rein. Oder auch wenn es dunkel wird (Sonnenuntergang), dann fahre die Rolladen runter, aber auch nur wenn der Türkontakt geschlossen ist. Sonst sperrt man sich selber aus. Ansonsten gibt es ein Web-Interface für das iPhone / iPad oder Android.

Die benötigte Bauteile (Hardware): Als Zentrale hat man den Rasperry Pi:

Natürlich benötigt man spezielle Aktoren und Sensoren um zum Ziel zu kommen. Ich habe bei amazon.de mehrere Temperatur-Module (-> amazon.de: Funk-Temperatur-/Luftfeuchteaußensensor S 300 TH
) gekauft. Bei mir stehen sie im Badezimmer, auf dem Balkon und eines im Eisfach. Diese senden alle paar Minuten die Temperatur sowie die Luftfeuchte zum CUL. Ein CUL sieht aus wie ein USB-Stick und empfängt und sendet die codierten Daten zu den Sensoren und Aktoren. Der CUL wurde bei mir direkt am Raspberry  Pi angeschlossen. Foto siehe weiter unten.  Ebenfalls habe ich die Schaltsteckdose (amazon.de -> FS20 ST-3 Funk-Schaltsteckdose
) gekauft, um eine Lampe in einem anderen Zimmer script-mäßig ein- und auszuschalten. Ein weiteres Highlight ist das Philips-Hue-System, welches ich mir im März gekauft habe. Die Verbindung Fhem / Hue klappt tadellos, wenn man sich einmal durch die Installation durchgekämpft hat. Doch dazu später mehr. Es gibt noch viel mehr Hardware, welche mit der Fhem harmoniert. Und es kommen immer mehr Komponenten dazu. Eine Auflistung der Hardware bekommt man auf der Website. Alles in allem funktioniert sämtliche Hardware bei mir tadellos.

Nachtrag 08.11.2013 Es gibt eine günstigere Alternative zu den recht teuren ASH550 / S555TH, S300th Sensoren, um Luftfeuchte und Raumtemperatur mit FHEM zu messen. Dazu benötigt ihr aber einen Jeelink-Transceiver und die preisgünstigen Sensoren von La Crosse (z. B. TX29-IT). Mehr Informationen gibt es in meinem Blog-Beitrag!

Die Installation auf dem Raspberry Pi: Ich möchte Euch jetzt nicht mit der Installation langweilen, deshalb hier nur mal Probleme, die bei mir bei der Installation aufgeschlagen sind. Bei der Grundinstallation bin ich nach diesem Dokument vorgegangen.

CUL wird nicht richtig erkannt: Falls im Log solche Fehlermeldungen stehen ->

[sourcecode language=“text“ gutter=“false“]YYYY.MM.DD HH:MM:SS 1: usb create starting
YYYY.MM.DD HH:MM:SS 3: Opening CUL device /dev/ttyACM0
YYYY.MM.DD HH:MM:SS 3: Can’t open /dev/ttyACM0: Permission denied
YYYY.MM.DD HH:MM:SS 1: usb create end[/sourcecode]

muss man in der SSH-Kommandozeile folgende Zeilen eingeben:

[sourcecode language=“text“ gutter=“false“]
$ sudo usermod -a -G tty pi
$ sudo usermod -a -G tty fhem
$ sudo usermod -a -G tty root
[/sourcecode]

Steckdose anlernen:
Ist auch ganz interessant:
Hier muss man die Steckdose mit gedrückter Funktionstaste in die Steckdose stecken. Anschließend wird von Fhem per autocreate ein Eintrag erzeugt. Dann auf diesen Eintrag gehen und ein- und ausschalten. Fertig. Das Problem bei der Steckdose ist, das diese keine Einstellungen (DIP-Schalter) für den House-Code hat. Wichtig: Ihr könnt nicht jede x-beliebige Baumarkt-Steckdose, welche im 3er Set für 12,90 Euro angeboten wird, an die Fhem stecken. Diese Steckdosen haben andere Kommunikations-Codes und können von der Software nicht dekodiert werden.
[asa]B0030T7RWC[/asa]

Temperaturmodule S300 TH anlernen:

S 300 TH Temperaturmodul, klicken um zu vergrößern

Das geht ganz einfach. Einfach jedem Temperatur-Modul unterschiedliche Codes geben und Fhem erkennt die Module innerhalb weniger Minuten. An der Rückseite des Temperatur-Feuchtigkeitsmessung-Moduls befinden sich 3 DIP-Schalter. Mit ihnen kann man bis zu 8 Temperatur-Sensoren an dem Fhem anschließen. Die Batterien halten je nach Beanspruchung bis zu 3 Jahre. Ein weiterer Pluspunkt: Der Server erstellt auch sofort ein Plot-Diagramm von jedem Modul. Zur Veranschaulichung gibt es am unten ein Screen-Shot. Eine weitere und kostengünstigere Variante bietet sich die Temperaturmessung über One-Wire-Sensoren an. Dazu habe ich einen separaten Blog-Beitrag geschrieben.

Philips-Hue anlernen:
Das ist etwas schwieriger. Derzeitig (April 2013) gibt es eine Fehlermeldung das JSON nicht installiert wurde. Hierzu muss mit cpan JSON die benötigten Bibliotheken auf dem Pi installiert werden.

Dann das Device (hier die Hue Bridge) anlegen:

[sourcecode language=“text“ gutter=“false“]
define bridge HUEBridge [/sourcecode]

Licht schalten zu bestimmten Uhrzeiten: Hierzu kann man ein kurzes Script schreiben, welche abhängig von der Zeit des Sonnenuntergangs Lampen ein- oder ausschaltet. Bei mir schaltet sich eine Billig-Baumarkt-Steckdose (433 MHz) an, an der eine LED-Lampe angeschlossen ist.

Das sieht dann so aus:

[sourcecode language=“text“ gutter=“false“]

define at_AbendStundAN at *{sunset("REAL",-1800,"16:00","21:00")} set Laterne_LED on[/sourcecode]

7 Zoll Tablet als Schaltzentrale: Bei eBay habe ich ein preiswertes 7-Zoll-Tablet gekauft (-> Erfahrungsbericht A-Sure Tablet). Damit schalte ich meine Steckdosen und Lampen einfach vom Schreibtisch aus. Ebenfalls lasse ich mir hiermit den Stromverbrauch anzeigen und auch die aktuellen Temperaturen (außen / innen) sowie die Wettervorhersage. Die Panel-Anzeige ist einfaches HTML mit einzelnen SVG-Grafiken als Schaltflächen. Weitere Infos bekommt ihr im Fhem-Forum. Das Tablet habe ich auf einem Acryl-Rahmen von IKEA mit einer Heißluft-Klebepistole geklebt. Euch fällt bestimmt noch was besseres ein! Her mit den Fotos, falls ihr die Ergebnisse zeigen wollt! Der Verbrauch des Tablets hält sich bei mir im 24h-Modus in Grenzen. Ich habe 3,3 W – 3,7 W gemessen.

Strom sparen mit Fhem:

Strom wird ständig teuerer. Mit Fhem und der Stromsparampel (-> siehe Blog-Beitrag) könnt ihr Euch einen Chart erstellen lassen, um Stromfresser zu identifizieren. Die Genauigkeit der Energiespar-Ampel ist hinreichend genug. Bei meinen Messungen seit Anfang Februar 2013 bis heute Mai 2013 hat der Sensor sich um gerade mal 10KWh vermessen. Bei einem Gesamtverbrauch in diesem Zeitraum von 865 KWh ein minimaler Wert. Fhem erkennt den ELV-Sender und dadurch könnt ihr auch eine Grafik erstellen lassen.

Sender der Stromspar-Ampel verbunden mit fhem-Hausautomations-Server

CUL 1101 Antenne:

CUL zum Anschluß am Respberry Pi, klicken um zu vergrößern

Ich hatte bei amazon (CUL V3 USB Stick CC1101 USB Lite 868MHz incl. Drahtantenne
) eine Antenne Lamba/4 anlöten lassen. Mit dieser Antenne war ich nicht zufrieden. Der CUL hat keine Daten von der ESA 2000 WZ empfangen. Ich habe diese Antenne wieder abgelötet mit 2 qmm Kupferdraht eine eigene Antenne gebastelt, mit der ich zufrieden bin. Mit get CUL_0 ccconf kann man die aktuelle Frequenz aus der CUL holen. Ich habe mit folgenden Parametern den besten Erfolg gehabt. Frequenz: 868.000 MHz, bWidth: 406KHz, rAmpl 42dB,  Sens: 8 DB. Ihr könnt jeden Wert einzeln anpassen, indem ihr nacheinander im Administrationsbereich eingebt:

[sourcecode language=“text“ gutter=“false“]
set CUL_0 freq 868.300
set CUL_0 bWidth 406
set CUL_0 rAmpl 42
set CUL_0 sens 8
[/sourcecode]

bei CUL_0 auf Groß/Kleinschreibung achten!

Ist der Frequenzbereich von 433 Mhz oder auch 868Mhz gesundheitsschädlich? Hierzu schauen wir mal vergleichsweise die Sendeleistungen anderer bekannter Frequenzen an:

Man sieht, das wir hier von keiner Beeinträchtigung der Gesundheit ausgehen können.

Dieser Beitrag wird fortlaufend aktualisiert!

Das könnte Euch auch interessieren:

Temperatur-Plot, Ansicht auf einem iPad

fhem Lichtsteuerung Desktop-Version

fhem Temperaturen desktop version

CUL – Sende – Empfangseinheit, angeschlossen am Raspberry Pi unter Fhem

 

Die mobile Version verlassen