Lights

This is probably the easiest useful application of home automation. The quick way to do this is to use a single TTL bit and use this to directly drive a Solid state relay. These devices cost about $15 and make for very simple circuits.

A cheaper circuit uses mechanical relays driven by ULN 2803 drivers to get the same switching circuit. This has a few advantages:

I've tended to use relays in small inductive, or larger resistive loads suchs as solenoids, gas valves and lights. I use SS-Relays for controling motors like fans and pumps, because of their better handling of inductive loads.

An even more advanced circuit, which is still at the testing and design stage consists of a Triac switch with variable on time for dimming purposes. This is quite difficult, as the std. variable on time dimmer circuits use a variable resistance, rather than a variable voltage or digital input. This circuit may cost more than a SSR(but it will dim... :-).

The basic design will use a triac switched by something like the MOC3021. the tricky bit is converting a digital signal into a phase angle. Two posibilities I can think of: use the standard light dimmer circuit with a digital (tricky - isolate the pot from the 1-wire network) or do the phase calculation on the isolated side and use some kind of programmable delay to trigger the triac (probably easier).

For halogen bulbs I have a rather simple, yet cute circuit using a 2N3055 and a rectified and filtered 12.8V supply. This already does dim, but it is not as efficient, or high powered as the triac based system.