Licht- und Rolladensteuerung

Aus Dario's Home
Wechseln zu: Navigation, Suche
Haussteuerung
Sicherungskasten

Projektdatum: 2007

Die Aufgabe

Anfang 2007 bin ich umgezogen. In der neuen Wohnung habe ich den kompletten Strom selber verlegt. Ich als Nerd habe natürlich extrem viel Kabel verlegt, obgleich ich mich bei der Anzahl der Steckdosen zurückgehalten habe, so befindet sich auf jeder Wnad eigentlich nur eine Steckdose. Aber neben jeder Steckdose ist auch eine CAT-5 Dose. Wobei ich hier keine konsequente Sternverkabelung erstellt habe. Von einem zentralen Punkt geht ein CAT5-Kabel quasi als Bus immer in 4 Steckdosen. Aber im größten Raum, dem Wohnzimmer habe ich eine Kabelschlacht veranstaltet: Von 11 Lichtschaltern geht jeweis ein NYM-3x1,5 Kabel (ohne Schutzleiter) und von 5 Lampen jeweils ein NYM-J4x1,5 Kabel in den Sicherungskasten und dort auf Reihenklemmen. So kann ich bequem im Sicherungskasten quasi jede beliebige Schaltung verdrahten.

Ohne Computer geht's nicht

Nun wollte ich aber eine Haussteuerung, damit ich:

  • Alle Licher mit einem Tastendruck ausschalten kann
  • Die Rolladen besser steuern kann
  • alles vom Internet aus überwachen und steuern kann

Also habe ich mir zuerst einen ATmega8 genommen und daran jeweils 4x8Bit Schieberegister angelötet um so 32 Eingänge und 32 Ausgänge zu erhalten und vom ATmega dafür nur 5 Leitungen zu verschwenden, nämlich:

  • CLK out
  • DATA out
  • DATA in
  • LOAD Output Register
  • LOAD Input Register

An die Output Register sind zur Zeit

  • 4 Rolläden (jeweils 2 Ausgänge)
  • 15 Lampen
  • 1 Dunstabzugshaube
  • 1 Ventilator WC
  • 4 Steckdosen geschaltet

An die Input Register sind derzeit 22 Taster geschaltet. In der gesamten Wohnung gibt es keinen normalen Lichtschalter mehr, nur noch die Taster, wie man sie für den Türöffner normalerweise einsetzt. Diese schalten jeweils GND auf eines der Eingangsregister. Der Atmega pollt ständig den Status der 32 Eingänge und erkennt drei unterschiedliche Eingaben:

  • Klick
  • Doppelklick
  • Langer Klick

Etwas tricky ist die programmierung, weil das selbstverständlich für jeden Taster getrennt und asynchron funktionieren muss. Nach einem erkannten Ereignis an einer Taste, wird eine oder mehrere zuvor programmierte Aktion, teilweise in Abhängigkeit des aktuellen Zustandes einiger Ausgänge, ausgeführt. Diese Aktionen sind:

  • Ausgang einschalten
  • Ausgang ausschalten
  • Zustand am Ausgang ändern (toggle)
  • Rollade hochfahren
  • Rollade runterfahren
  • Rollade hoch-/runterfahren, je nach Status
  • Rollade auf bestimmte Position (in Prozent) fahren
  • Beleuchtungsscenarien einstellen (Mehrer Ausgänge gleichzeitig schalten)
  • Start eines Timers, der nach Ablauf eine anderes Ereignis auslöst