See Rainbow House

This is my 4th iteration of house control. The first 1 was really just manual switches; 2nd using Dallas one wire to a linux box; 3rd a PS2 keyboard (as the demuxer for the various inputs around the house) to a linux box. The 4th version is a dedicated Arduino.

Basic requirements

These are taken from the existing system, including the optional ones.

  • Up to 50 inputs - momentary (switches, PIRs etc) or switches
  • Up to 50 outputs
    • Low voltage control (relays)
    • 240 volt control (low priority)
  • Power up dependencies (super simple)
    • e.g. Turning on TV also requires AV box
    • e.g. Turning on lights requires inverter
    • e.g. Lights power supply off, switches dependent lights off
  • Maximum times
    • e.g. Wardrobe light only stays on for 20 minutes
  • Group control
    • e.g. An input can turn off all lights
  • Set output states
    • Off & On - the obvious ones
    • Swap - the current states
    • Timer - force the default maximum time to something new
  • Combined Group & States
    • e.g. Turn off all lights that are currently on in 15 seconds (good night)
  • Logging (optional, rolling buffer)
    • Input & Output events
  • Network (optional)
    • Read log
    • Individual Output & Group state control (on,off,swap,set time)
    • Change settings (timeouts, which button does what)

Hardware

  • Input
    • PS2 Keyboard (104 inputs, and 3 outputs)