datenschleuder97/artikel/homesweethome.tex

98 lines
16 KiB
TeX
Raw Permalink Normal View History

2013-07-23 01:44:50 +02:00
%\documentclass{datenschleuder}
2013-07-23 01:25:07 +02:00
\begin{DSarticle}[
2013-07-23 01:44:50 +02:00
runninghead={Home, sweet home},
2013-07-23 01:25:07 +02:00
author={Ralf Thomas Klar <ralf@entropia.de>},
title={Home, sweet home},
%\license{cc-by}
DSabstract={Gebäudeautomation gibt es schon viele Jahre, aber lange Zeit gab es in preislich erschwinglichen Bereichen für den kleinen Privateinsatz nur Bastellösungen, bevor einige Firmen den Sektor als Chance begriffen und mit eigenen, günstigen Entwicklungen begannen.}
]
Wer sich eine aktuelle Marktübersicht im Bereich Heimautomation verschaffen und das geeignete System für sich auswählen möchte, hat viel zu tun, zumal dieser Bereich gerade sehr in Bewegung ist. Anfang 2010 wurde ich vor die Aufgabe gestellt, im Rahmen einer Kernsanierung die Heimautomation für eine Wohnung zu planen sowie den Einbau vorzunehmen. Ich hoffe, mit dieser Schilderung Tipps, Anregungen und Anreize zu geben.
\section{Systemauswahl}
Aus Zeitgründen kamen Selbstbaulösungen nicht infrage. Kabelgebundene Lösungen wie KNX, LCN oder Dali scheiterten aus zwei Gründen: Einerseits war durch einige Stahlbetondecken und -wände zu wichtigen Stellen keine (bezahlbare) nachträgliche Kabelführung möglich, andererseits überstiegen professionelle Lösungen, wie sie beispielsweise auch etablierte Schalterhersteller anbieten, den gegebenen Finanzrahmen deutlich. Als grober Richtwert für professionelle Automatisierung bei Neubauten/Sanierungen sind fünf bis acht Prozent der Bausumme anzusetzen.
Weitere Nachforschungen führten zu Angeboten bei diversen Elektronikanbietern, exemplarisch seien Conrad und ELV genannt. Wie ausgeführt, kam nur ein Funksystem in Frage. Als weitere wichtige Randbedingung galt es, ein System zu finden, das möglichst einfach mittels eines Linuxsystems zu steuern sei.
Schlussendlich bestand die Auswahl aus zwei Systemen des Herstellers eQ-3: FS20 und HomeMatic. Beide Systeme arbeiten mit 868 MHz. Das FS20-System benutzt Amplitudenmodulation mit einer Bandbreite von 1kHZ, hat keine Fehlerkorrektur (weswegen jeder Befehl einfach dreimal nacheinander gesendet wird), hat keinerlei Authentifizierung, keine Verschlüsselung und bietet keinen Rückkanal. Diesen Nachteilen steht eine sehr große Auswahl an Aktoren, Sensoren und Schaltern gegenüber, sowie mehrere OpenSource-Projekte zur Ansteuerung.
Das HomeMatic-System benutzt Frequenzmodulation, verschlüsselte Challenge-Response-Authentifizierung und hat einen Rückkanal. Die Aktoren waren zum damaligen Zeitpunkt im Schnitt doppelt so teuer wie bei FS20, die Auswahl wesentlich kleiner, und man benötigte eine damals 500 Euro teure Zentrale.
So fiel die Entscheidung recht schnell für das FS20-System. Inwieweit die ungeschützte Datenübertragung ein Problem ist, muss jeder im Einzelfall entscheiden und hängt auch von den baulichen Gegebenheiten ab. Bei dicken Wänden ist die Dämpfung so gross, dass ein potentieller Störer nur Erfolg hat, wenn er direkt vor der Wohnungstür steht. Dass man das FS20 besser nicht für das Wohnungstürschloss verwendet, versteht sich von selbst.
Die Entscheidung für das FS20 erforderte prinzipiell keine Eingriffe in die bestehende Elektroinstallation. Um einen potentiellen späteren Umstieg auf ein beliebiges anderes System zu erleichtern, wurde jedoch der vorhandene Wohnungsunterverteiler mit 2x8TE durch einen mit 3x12TE ersetzt, zwei weitere Unterverteiler (3x12TE und 1x12TE) in der Wohnung montiert und die Installation im Rahmen der Möglichkeiten auf die drei Unterverteiler zentralisiert. Jeder dieser Unterverteiler bekam noch ein Netzwerkkabel sowie eine universelle 24V-Gleichspannungsversorgung vom geplanten zentralen Server-/Steuerstandort spendiert, ebenso wurde die Zuleitung zur Türsprechstelle dorthin verlängert.
\section{Systemaufbau}
Die ersten Komponenten, die in der Wohnung Einzug hielten, waren Heizungssteuerungen vom Typ FHT80B/FHT8v. Letztere sind Stellregler, welche anstelle normaler Heizkörperthermostate montiert werden, FHT80B sind frei im Raum platzierbare Steuereinheiten mit bis zu vier Schaltzeiten pro Tag, drei Betriebsmodi, sowie einer Party-/Urlaubsfunktion. Damit war das Bad morgens nach dem Aufstehen gleich mal kuschelig warm, und das Wohnzimmer wurde erst gegen Abend aufgeheizt. Liegt nichts Besonderes an, ist keinerlei Aktion an den Steuereinheiten nötig, also einmal Einstellen und dann (bis zum Batteriewechsel nach circa 2 Jahren) vergessen.
Als nächstes kamen ein paar Unterputz- und Zwischendeckendimmer (DI20-3 und DU-2 für Hochvolt-Halogenlampen, DI22-3 für Niedervolt-Halogenlampen mit elektronischem Trafo). Die Unterputzdimmer haben Anschlüße für einen Taster zur direkten Bedienung herausgeführt, bei den Zwischendeckendimmern ist nur ein versenkter Taster am Gehäuse, welcher hauptsächlich zur Programmierung verwendet werden soll, eine Bedienung über einen anschliessbaren Taster ist nicht vorgesehen.
Im Klartext: Liegt der Dimmer in der Zwischendecke und es gibt Funkstörungen, geht nichts. Ich führte also die Anschlüsse des eingebauten Tasters nach aussen. Da dieser direkt an einen hochohmigen Pin des Prozessors angeschlossen ist, funktioniert eine Verlängerung über ein paar Meter bis zum nächsten Wandtaster erwartungsgemäß wegen Störeinstrahlung nicht. So kam direkt neben den Funkdimmer ein Relais, an welches die herausgeführten, kurzen Leitungen angeschlossen werden und das seinerseits über den Wandtaster gesteuert wird.
Nachdem noch ein paar Steckdosenschalter und -dimmer verbaut wurden (DI-3, ST-3), konnte mit den FS20-Fernbedienungen (S4, S8) sowie den direkt oder per Relais angeschlossenen Tastern fast die gesamte Lichtinstallation gesteuert werden. Alle Dimmer (bis auf den LED-Zwischendeckendimmer FS20LD) besitzen drei Timer, mit denen beispielsweise Ein- und Ausschaltfadezeiten eingestellt werden können. Alleine für das langsame Ein- und Ausfaden hat sich der Aufwand schon rentiert.
\section{Rechneranbindung}
Im nächsten Schritt kam die FHZ1000 zum Einsatz, ein per USB anzusteuerndes Funkmodul, das die Kommunikation mit den Heizungsreglern sowie anderen FS20-Komponenten ermöglicht und das ich im Vorfeld schon an anderer Stelle erfolgreich getestet hatte. In der sanierten Wohnung jedoch hing sich das Modul immer nach wenigen Sekunden auf, eine Kommunikation mit den Heizungsreglern oder FS20-Schaltern/Dimmern war nicht möglich. Die Ursachensuche zog sich in die Länge. Dank eines befreundeten Funkamateurs wurde eine starke GSM-Station in der Nachbarschaft als Ursache ausgemacht. Eine Abschirmung des Funkmoduls durch Bleiakkus in Richtung der GSM-Station brachte leichte Besserung, aber keinen stabilen Betrieb.
Das Ingenieurbüro Tostmann ([1] \url{http://busware.de} ) entwickelt nette Projekte, unter anderem ein USB-Funkmodul mit einem AT90USB162-Prozessor und einem CC1101 ISM-Transceiver. Mittels einer speziellen Firmware kann dieses Modul für das FS20-System nutzbar gemacht werden -- damit lief es dann.
Die Firmware ist Teil eines OpenSource-Projektes namens fhem ( [2] \url{http://fhem.de} ) . Damit lassen sich u.a. FS20-Komponenten ansteuern und auswerten. Das Ganze ist in Perl geschrieben, hat eine funktionale Weboberfläche, erzeugt hübsche Diagramme (siehe letzte Seite) und bietet eine TCP-Schnittstelle zum Steuern und Abfragen.
Spätestens an dieser Stelle merkt man, dass es sinnvoll gewesen wäre, sich etwas früher mit der Adressierung innerhalb des FS20-Systems auseinanderzusetzen, da ein nachträgliches Ändern der vergebenen Adressen zwar möglich, aber aufwendig ist. FS20-Aktoren können mit bis zu vier Adressen versehen werden. Dadurch kann man Gruppen bilden, und zum Beispiel alle Deckenlampen in der Wohnung oder alle Lampen eines Raumes in einer Gruppe zusammenfassen und die Lampen der Gruppe mittels eines Befehles ein- oder ausschalten. Eine spezielle Adresse ist fest als globale Gruppe des gesamten Systems vorgegeben. Diese ist geeignet, um beim Verlassen der Wohnung alles (was für diese Gruppe konfiguriert wurde) auszuschalten.
Gruppenbildung kann bei größeren Installationen auch deshalb notwendig werden, weil das FS20-System im SRD-Band sendet, und bei der gegebenen Frequenz ein Tastgrad von einem Prozent nicht überschritten werden darf. Die CUL-/CUN-Devices überwachen die Sendezeiten und verzögern im Bedarfsfall die Signalsendung.
\section{Erste Spielerei}
Bei der Wohnungssanierung wurde versehentlich ein Kabel durchtrennt, was nicht rechtzeitig bemerkt wurde. So kam es, dass eine Unterputzdose mit zwei Tastern direkt neben der Eingangstür tot war. Mit dem S4UB aus der FS20-Serie kein Problem: Es handelt sich um eine Platine, die hinter die Schalter in eine Installationsdose passt, und an die bis zu vier Taster angeschlossen werden können. Die Batterielaufzeit soll dabei bis zu 10 Jahre betragen.
Dieser Sender wurde nun nicht direkt für Aktoren oder Gruppen konfiguriert, sondern bekam eigenen Code und wurde über fhem an ein Bash-Script gekoppelt. Beim Drücken des linken Tasters startet Bash-Script eins, bei Drücken des rechten Tasters Bash-Script zwei. Zu Anfang startet Script eins das Radio:
\begin{verbatim}
/usr/bin/sudo -u fhem -b mpg123 -@http://www.friskyradio.com/frisky.m3u
/bin/echo "set Sound on" | /bin/nc -w1 127.0.0.1 7072
\end{verbatim}
Script zwei schaltet dagegen alles aus:
\begin{verbatim}
/bin/echo "set Alles off" | /bin/nc -w1 127.0.0.1 7072
/usr/bin/killall mpg123
\end{verbatim}
Sound ist dabei eine in fhem konfigurierte Schaltsteckdose, an der ein kleines Surroundsystem angeschlossen ist, Alles ist hierbei die oben erwähnte globale Gruppe. Die Scripte wurden bald größer. Je nach Uhrzeit wurde ein anderer Radiosender gewählt, und je nach Uhrzeit und Bewölkung das Licht geschaltet. Ausserdem pflegten die Scripts Statusdateien, anhand derer ein Cronjob zu erkannte, ob Personen anwesend waren. Dieser schaltete dann - falls ja bei beginnender Dämmerung nach und nach ein paar Lampen zur Grundbeleuchtung hinzu.
\section{Weitere Spielereien}
Recht schnell sammelten sich am zentralen Verteiler Steckdosenschalter, was zu Problemen führte. FS20-Aktoren sollen einen Mindestabstand von 15cm zueinander haben, sonst kommt es zu Übertragungsstörungen. Abhilfe schaffte hier ein FS20SM8, eine 8-fach Schaltplatine mit Open Drain-Ausgängen, die die Endgeräte per Relais steuerte. Da die Relais mit 24V betrieben werden, die Ausgänge aber nur bis 12V spezifiziert sind, wurde noch eine 74HCT540/ULN2803-Kombination eingeschleift, um auf der sicheren Seite zu sein.
Wie bei FS20-Schaltaktoren üblich, gibt es für jeden Kanal drei Timer, mit denen verschiedene Betriebsmodi programmiert werden können. Zwei der Ausgänge wurden so programmiert, dass sie bei einem Einschaltbefehl für nur vier Sekunden einschalten. An diese Ausgänge wurde zum einen der Haustüröffner und zum anderen das dritte, ungenutzte Klingeltonsignal (Dreiklanggong) der Türsprechstelle angeschlossen.
Ein auf dem gleichen Rechner laufender Asterisk wurde nun so konfiguriert, dass beim Anruf von hinterlegten Nummern ein Script gestartet wird, das den Haustüröffner schaltet. Ein Cronjob schaltete sofern gemäß Statusfile die Wohnung belegt ist abends zur vollen Stunde den Gong, der somit als Ersatz für eine Standuhr diente.
Bauliche Gegebenheiten erforderten es, dass in der Küche der Heizkörper hinter der Spüle montiert wurde und die warme Luft über einen Schlitz in der Arbeitsplatte nach oben strömte. Erwartungsgemäß ist die Konvektion etwas schwach. In das Schutzgitter wurden deswegen vier Papstlüfter eingebaut, die mittels eines Relais an dem FS20SM8 ein- und ausgeschaltet werden. Ein kleines, per cron gesteuertes Perlscript liest den aktuellen Wert des Heizungsstellreglers aus fhem aus und schaltet die Lüfter ein, sobald der Stellwert zehn Prozent überschreitet - und nun klappt das auch mit der Küchenheizung.
Die acht Ports des FS20SM8 waren belegt, aber es mussten noch drei Lüfter im Bad, eine Schrankbeleuchtung sowie zwei Kontakte geschaltet und detektiert werden. Ein uraltes ELV M232-Messmodul fand dabei ein neues Einsatzgebiet. Das M232 hat einen RS232-Anschluss, acht GPIOs sowie sechs analoge Eingänge und lässt sich über ein rudimentäres Protokoll steuern. Vier der acht GPIOs dienen als Ausgänge zum Steuern von Relais, vier dienen als Eingang.
fhem beinhaltet auch ein Modul für das M232, jedoch kam hier ein eigener Daemon zum Einsatz: Da drei der Ausgänge die Lüfter steuern, deren Steuerung nicht ganz trivial ist, erschien es sinnvoll, die eigentliche Steuerung vom Daemon übernehmen zu lassen. An den Eingängen des M232 hängt unter anderem ein Magnetkontakt zur Wohnungseingangstür sowie ein Relais, das parallel zum Licht im Bad geschaltet wird. Der Daemon kann über eine Socket per TCP gesteuert werden. Der Begrüssungsstring liefert den aktuellen Status und wird durch ein Nagios-Script ausgewertet.
Erkennt der Daemon das Einschalten des Badlichtes, wird der aktuelle Sonnenstand berechnet und das Licht im Bad entsprechend heller oder dunkler geschaltet. Damit wird verhindert, dass zu nachtschlafender Zeit grelles Badlicht blendet oder tagsüber das Bad zu dunkel ist. Bleibt das Badlicht länger als drei Minuten an, startet der kleinste Lüfter und läuft dann bis zehn Minuten nach Ausschalten des Badlichtes.
Ein Cronjob liest regelmässig die per HMS100TF gemessene Luftfeuchtigkeit im Bad aus. Steigt diese um 15\% wird das als Indiz für Duschen gewertet und die Duschlüfter laufen an, bis die Luftfeuchtigkeit wieder unter einen definierten Schwellwert sinkt.
Der Magnetschalter der Eingangstür triggert ein Perlscript. Dieses prüft zuerst Uhrzeit, Sonnenstand und Bewölkungsgrad und schaltet in Abhängigkeit davon Licht und Radio und setzt den Wohnungsstatus. Das ist nicht nur angenehm, sondern durchaus praktisch, wenn man beispielsweise Einkaufstüten hereinträgt.
Bei den anfänglich erwähnten Tastern neben der Eingangstür war nach Inbetriebnahme des Magnetkontaktes der Starttaster obsolet. Er wurde zum Schlaftaster umgecodet. Das Script schaltet nun alles (Licht, Musik) aus, setzt den Wohnungsmodus auf ``Schlaf'' und schaltet im Schlafzimmer dezentes Licht ein.
Der aktuelle Zustand des Systems ist so, dass ein Ausfall des Steuerrechners zwar keine Probleme mit sich bringt, aber schon einen deutlichen Verlust an gefühltem Komfort zur Folge hat.
Und nun? Morgendliches Wecken mit Musik und langsam ansteigender Helligkeit kann bei Bedarf schnell gescriptet werden. Komplizierter wird es mit der Einbindung der Rolläden im Rahmen einer Beschattungsautomatik. Das verwendete Zweiwege-Funkprotokoll benutzt eine 128-bittige Verschlüsselung, die Rolläden können entweder über ein sündhaft teures PC-Modul oder Funktaster, bei denen direkt die Tastkontakte z.B. per Relais manipuliert werden, bedient werden.
Der Einsatz von Bewegungsmeldern könnte das Ein- und Ausschalten von Licht in bestimmten Wohnungsbereichen triggern. Da die Grundbeleuchtung der Räume mit LEDs erfolgt und in der Summe bei unter 10W liegt, ist das nicht dringlich. Interessanter ist das Überwachen der Batteriestände der FHT- und HMS-Komponenten über ein Nagios-Script. Ebenso kann man die Daten der HMS100TF für Schimmelwarnungen an schwer oder nicht zugänglichen Stellen aufbereiten.
Es gibt FS20-Komponenten für fast jeden Zweck. Neben den bisher genannten zum Beispiel ein Unterputzradio, eine Infrarot-Fernbedienung (dieser lehrt man die IR-Codes eigener Geräte wie der Hifi-Anlage, die man anschließend per FS20 steuern kann), danaben gibt es noch Komponenten zur Klingelsignalerkennung, einen Erschütterungssensor, einen Regensensor, und so weiter. Speziell für Bastler ist interessant, dass es mehrere FS20-Komponenten als Bausatz oder kleine Fertigplatinen gibt, die man schön in eigene Basteleien integrieren kann. Wenn die Grundstruktur einmal vorhanden ist, steht dem Spieltrieb kaum etwas im Weg.
Der anfänglich erwähnte fehlende Rückkanal mit der Option zur Statusabfrage von Aktoren ist unschön, ebenso die sehr störanfällige Amplitudenmodulation, aber das liegt an der Preisklasse. Da muß jeder überlegen, was er bereit ist zu zahlen, und wo die persönlichen Schwerpunkte gesetzt werden. Aber dann kann man mit Hausautomation Spass haben. Und ja, man kann damit auch eine Kaffeemaschine einschalten und Kartoffelbrei machen.
\end{DSarticle}