UPB (Universal Powerline Bus) is the same idea at X10 and unfortunately much more expensive because of licensing issues, but the reliability of the communications is really good. It comes with a (poorly written) windows program that allows you to setup commands and stuff, but because of the ease of the UPB protocol I've just written my own C++ code to monitor the Bus and send commands to do things. I send an email to my house when I leave work, then the software reads the UPB temperature sensors inside and outside to determine when and if the heat should be turned on. When the light sensor notices that it's dark outside, the porch lights go on. When my car comes in the driveway (induction sensors) and I'm not hope the first floor lights go on. I unlock the front door with a key fob. And lots more. Blinds open and close depending on sun levels, inside, and outside temperature. Lots of really cool logic! I'm working right now on artificial intelligence to guess when I'm coming home, when I'm going to bed, all of that stuff, it's just hard because my schedule isn't very regular. Anyway, to get back on topic. I had to write all of this myself because the offerings out there are no good, if you want anything beyond the basics you won't get it. If you're a good hacker, it's worth it just to write a service that can read and write UPB commands and you can do anything you want (there's also a UPB-X10 bridge if you want to use X10 hardware).