Das (mehr oder weniger) intelligente Haus

Die Idee hinter dem intelligenten Haus ist recht einfach: Der Mensch (bzw. ich) ist an sich sehr faul. Dazu haben viele schlaue Menschen Geräte entwickelt, welche den Alltag erleichtern sollen – nur verursachen diese Geräte nicht selber wieder Arbeit. Wie wäre es, wenn die Geräte „mitdenken“ würden?

Das vernetze Heim

Die Außentemperatur sinkt – die Heizung springt an, draußen wird es dunkel – die Rollläden schließen sich und zum Frühstück hält die Kaffeemaschine schon eine heiße Tasse Kaffee bereit. Was wie ein Science-Fiction-Film klingt ist auch heute schon möglich. Über das „vernetzte Heim“ können Geräte auf verschiedenste Ereignisse reagieren und so das Leben erreichen. Der einzige Haken: Wer sich einmal die derzeitigen Preise ansieht wird recht schnell feststellen, dass diese Technik für den Durchschnittsbürger nicht bezahlbar ist.

Die Technik dahinter
Hinter diesem Konzept stehen meist normale Haushaltsgeräte, welche über einen Steuerungschip an ein Netzwerk angeschlossen wird. Dahinter steht je nach Aufbau ein zentraler Rechner oder dezentrales System zur Steuerung sowie diverse Sensoren.

Das geht auch billiger

Ganz nach dem Motto “selbst ist der Mann” kann man sich das Grundprinzip recht einfach nachbauen. In meinem ersten Versuch habe ich mich für einen alten Rechner mit Linux als Zentraleinheit entschieden. Die Steuerung der Geräte erfolgte über Relaisplatinen. Meine Variante der Firma Conrad war bereits fertig aufgebaut und ließ sich einfach erweitern – somit waren maximal 255 Karten mit je 8 Relais = 2040 Relais je Anschluss möglich. Als Eingang verwendete ich zuerst den Gameport über die Software joyd, später die Statusleitungen des Paralellport mit einem C/PHP-Mix. Zusätzlich sorgte eine Fernbedienung über lirc für eine weitere Kontrollmöglichkeit.

Inzwischen arbeite ich an der Umrüstung auf ein dezentrales Konzept. Die Sensoren und Geräte befinden sich an einem Bus und können sich auch ohne PC miteinander „Absprechen“. Der PC dient nur zur Programmierung und Kontrolle. Zum Einsatz kommen verschiedene Mikrokontroller der ATMega-Serie sowie zwischen den Sensoren/Aktoren ein CAN-Bus. Der PC kann über RS232 oder USB angebunden werden. Derzeit laufen einige selbstgebaute Knoten, die Hauptfunktionen sollen jedoch Knoten des iSysBus-Projektes übernehmen. Laufen die Grundfunktionen werde ich nach und nach die noch nicht verfügbaren Funktionen auf iSys umrüsten und soweit machbar entsprechende Baupläne und Software zur Verfügung stellen.

Was ist möglich

Hier der aktuelle Stand der Funktionen

  • Licht schaltet sich ein wenn Personen im Raum sind und die Helligkeit zu niedrig ist
  • Zum Wecken wird das Licht eingeschaltet, zusätzlich werden per Sprachausgabe Informationen zu Terminen, Wetter und ähnlichem ausgegeben. Nach dieser Ausgabe wird ein Webradio eingeschaltet.
  • Über ein Mediacenter (XBMC) kann von PC, Smartphone und mehreren Fernsehern auf Audio und Videodaten des Servers zugegriffen werden. Über eine TV-Karte ist zudem ein TV-Zugang mit Timeshift möglich.
  • Ein/Ausschalten und Kontrollen über Internet oder Telefon (Asterisk,CAPI) sind möglich.
  • Bei unbefugtem Zutritt wird über eine Webcam ein Bild aufgenommen und per Mail versendet.
  • Rauchmelder und andere Sensoren können im Alarmfall ebenfalls Warnmeldungen versenden und einen lokalen Alarm einschalten. Diese Systeme sind neben der Netzversorgung über Notstromsysteme abgesichert.
  • Momentan 6 Raum- und 15 Systemsensoren überwachen permanent die Temperaturen der einzelnen Abschnitte. Derzeit nur zur Statistik, auf Dauer ist eine Anbindung an das Heizsystem vorgesehen.

Überblick über die Verwendete Hardware
RELAISKARTE 8FACH SERIELL (Conrad Electronic)
Die Relaiskarte von Conrad wird an eine serielle Schnittstelle angeschlossen. Insgesamt 8 Relais können auch 230V (aka Steckdosen) problemlos schalten. Sollten mehr Relais benötigt werden lassen sich bis zu 255 Karten hintereinander anschließen, ohne weitere Anschlüsse am PC zu belegen. Um diese unter Linux zu Steuern kommt die Software „relaisprogramm“ zum Einsatz. Leider scheint die Seite des Autors nicht mehr im Netz zu sein. Sollte jemand die Dateien brauchen kann er sich aber gerne an mich wenden. Gesteuert wird es einfach über die Konsole.
Joystick-Eingänge (nicht mehr verwendet)
Die Eingänge am Gameport wurden einfach einem alten Joystick entnommen. Ausgelesen werden die Schalter über die Software JoyD. Leider sind simultane Tastenanschläge anscheinend nicht möglich. Derzeit gibts bei mir 4 Eingänge.
ParPort-Eingänge (Nur noch überbleibsel)
Die Eingänge am ParPort lassen sich auch gleichzeitig problemlos nutzen. Realisiert wurde das über eine Schaltung, welche lediglich die Eingänge nutzt. die Datenleitungen bleiben frei. (Schaltplan folgt). Zum Auslesen verwende ich einen C/PHP-Mix, welcher in einer Schleife läuft. Nicht gerade optimal gelöst, aber funktioniert. Quelltext auf Anfrage.
ParPort Ausgänge
Die Datenleitungen des PP wurden mit LEDs belegt. Diese können z.B. den Internetstatus, den Eingang neuer Email o.ä. anzeigen. Die eigentliche Steuerung erfolgt über ein C-Programm. Wo es den Quelltext gibt könnt ihr ja raten.
AVR ATMega und ATTiny
Diverse AVRs sorgen für weitere IO-Ports. Der größte Teil kommuniziert über ein CAN-System, welcher auf dem Code des Projektes ISysBus basiert. Auch einige 433MHz-Funkstrecken und Systeme mit LAN-Anbindung sind im Einsatz.

5 Gedanken zu „Das (mehr oder weniger) intelligente Haus“

  1. Hallo,
    ich finde deine Hausautomation sehr interessant.
    Könntest du darüber mal eine ausführliche BitNotiz machen? Mich würde dabei sehr interessieren, wie du das morgens beim wecken mit den Infos und Sprachausgabe machst. Wo bekommst du die Infos her? Liest du dazu eine Webseite aus? Wenn ja wie verarbeitest du die weiter, dass dann eine Sprachausgabe bei rauskommt?
    Ansonsten bleibt mir nur zu sagen, dass ich deine Aktivitäten sehr gut finde und ich hoffe du machst hier immer weiter.
    Vielen Dank
    Gruss
    Frank

  2. Hallo Herr Knodt,
    ich bin voller Interesse auf das neue asysbus Projekt mit canbus gestoßen.
    Folgender Fehler kommt peim kompilieren:
    /home/mod/Arduino/libraries/asysbus-master/asb.cpp: In member function ‚bool ASB::hookAttachModule(ASB_IO*)‘:
    /home/mod/Arduino/libraries/asysbus-master/asb.cpp:324:92: error: ‚done‘ was not declared in this scope
    }while(address < _cfgAddrStop && check != 0xFF && check != 0x00 && done < num);
    exit status 1
    Fehler beim Kompilieren für das Board Arduino Nano.

    (ich nutze Ubuntu 16.04 + Arduno IDE 1.6.13 + neueste Bibliotheken)

    1. Wenn ich done < num entferne, kommt keine Meldung. Wofür ist die Prüfung gegen done?

    2. asbDOut0.attach(0x1001, 5, ASB_IO_DOUT_DIO, 0, 0);
    schaltet auch keinen Ausgang. Ist hier noch eine Deklaration als Output nötig?

    Sonst klappt alles incl. mqtt-Gateway

    Besten Dank für dieses Pojekt. Es passt super zu meinem Smarthome.

    Hans-Joachim Jaep

  3. Du machst alles richtig mit deinem Hausautomatisierungsprojekt und ich teile deine Ansichten (und werde dir bald mit einem eigenem Projekt folgen).

    In meinem Haus bin ich bei der Verkabellung. Ich habe vor, neben jeder Steckdose einen Stecker für CAN Bus zu plazieren, so dass ich dann Dimmer und Schalter nachrüsten kann und nicht unnötig viele Leitungen zentral in den Keller gehen. In den Unterputzdosen werde ich Keystone verbauen und hierzu suche ich eine gute Lösung. Mit 100% Canbus Komformiät wird es schwierig (120 Ohm und alles geschirmt).

    Welche Leitungen nimmst Du? Ich denke dein System fährt mit 125kBit auf Ethernet? Welche Leitungslängen hast du? Ich dachte an Keystone mit USB stecker für Can Bus, aber 90 Ohm Wellenwiderstand sind wirklich schon außerhalb der Can Spec.

    Es wäre nett, von dir zu hören.
    Kann aber auch verstehen, dass Du sehr beschäftigt best.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nerd Inside