Why I Regret Making My House a Smart-House (2013)
Dr Brooks, of MIT Robotics fame, came up with a really elegant solution for the complexity of robots, he called it subsumption. As an architecture it worked by allowing all of the small bits of a robot to be independently functional but merely "influenced" by a higher authority. That worked through a series of behaviors that were built in that could be overridden by external input.<p>Consider the case of a 'leg'. A robot needs to lift its legs and move them forward in order to achieve forward locomotion. This means it needs a gait where it steps while keeping itself balanced. Brooks created a system where the highest ranked function that could run, would. So if the robot was stable, it unlocked the 'lift function' and if the leg was lifted it unlocked the higher priority forward function, and if the leg was forward it unlocked the higher priority balance function. I really liked it a lot and have used it in other embedded systems since then.<p>As a result I see the "smart" house system similarly, which is that I would build systems that were self contained, and could see input from outside. Take a light for example, it would have 'on', 'off', 'dim' and 'i don't care'. If you command it to any point, it goes there. Period. If it is in 'i don't care' the house controller is free to tell it to do something different.