I'm interested in toying with intelligent building stuff to take a a case study for a demo, and real hardware tends to impress more than simulations.
The sort of scenario I have in mind is having centralized computer control in the loop between switches and lights, monitoring door contacts and activity-noticing passive infra red sensors, between climate controls, thermometers, and heaters, etc. so that we can play with simple things like monitoring patterns of lighting usage, then replaying them to make the building look still-occupied, and more complex things like trying to tell when someone's left the heating way up and the door open but has probably left the area.
Here are my guesses about a cheap, adequate solution.
For a small enough building, one could have a single computer talking to all these things on a common low-speed serial bus. There seem to be stock chips around that can talk a range of serial protocols, and a bus with unremarkable wiring and haphazard topology would probably work well enough. The computer could be preset with what is on the bus where. There would be single-bit things like switches that the computer polls frequently to check their state. There would be single-bit things like lights that it writes to (the written value is held by a latch, and the control signal/circuitry is isolated from what may someday be a real 110V AC circuit by a suitable relay). There might be things like thermometers and dimmer switch arrangements that convey more than a bit of information.
Each entity on the bus could be addressed by the computer via a unique device ID, that matches DIP switch settings on the little circuit board of the entity, an ID with enough bits that random/corrupted data is unlikely to match.
It seems that a couple of wires would be needed to carry 0V, +5V, another couple of wires might be needed for sync and data lines for selecting particular devices by ID (wires which might double for both "selecting" the device, and telling it how long to keep its state wired to the bus once selected), and maybe a separate wire to carry that state, whether single-bit or analog signal, input or output. It seems unnecessary to carry multi-bit digital data around as the read or written state of the entity, given that the devices I can think of that have more than binary state don't need that state to be perfectly accurately reported - there can just be one A/D and one D/A converter at the computer end that gets it approximately correct.
So, how crazy does that sound? Would others do it differently? How few wires can I use while keeping everything fairly easy to design in a compact, cheap way? Before I start working out specifics, I figured it's probably good to make sure that the overall concept isn't already seriously flawed.
-- Mark