Scott Penrose

Rainbow House 4

Scott is an expert software developer with over 30 years experience, specialising in education, automation and remote data.

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)


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

  • Arduino