Start a big project

sbman

New Member
Hi!  I'm new to 'home automation'.  I'm a software engineer and do PC, Web and a little embedded stuff also.
 
I'm starting on a long term project to automate the home I just purchased. We plan to be there for a long time and I have a lot of things I want to automate!
 
Choosing technologies seems to be a lot like bobbing for apples when you actually want to make an apple pie.
 
I've got a long list of things I want to do, mainly from a functionality perspective. I've tried to take the approach of answering 'what can the house do for me' instead of focusing on the particular technologies at first.  I've got a clear picture of my long term goals and what I want to do, but there is no single system I can find that will do it all from any perspective.  I don't want to go down a path that will require me to rebuild/replace stuff cause I used things that wouldn't be flexible in the future.  For the environmental / subjective rules, they include:
  1. No dealers
  2. No recurring fees
  3. No data collection by third parties
  4. Open APIs that I can play with and build custom sensors/actuators
  5. Reliable assuming I use it correctly
I don't expect (nor want) dealer level support.  As long as the product does what it is advertised to do, that's acceptable.
 
I'm leaning towards insteon and zigbee HA, and some WIFI.  I say that mainly because I can play with those using published protocols and buy it without violating any of my 'rules', especially rule #1.
 
I have looked at RadioRa2 and I like their stuff, but it violates rules #1, #2, and possibly #3, #4 depending on how I went about it. It appears that you have to have certifications to even get your hands on some software to play with and there are arbitrary 'device count' limits based on your level of 'training'. Sounds like a certain religion that is popular with celebrities.  If they don't want me as  DIY'r I don't want them either.
 
I am convinced I'll have to build my own Home Automation web app from scratch myself, nothing out there does all the things I want, and I'm fine with that.  All I really want is to have access to the sensors/switches/actuators/cameras/etc... so I can do whatever I want.
 
Possibly I should be forming a question, but at this point, I'm not sure what I'm asking.  After spending a large number of hours researching the home automation topic, I feel like I know less than I did before I started.  It's the most fragmented mess of a market I've ever seen and it seems to be changing at a fairly rapid rate.
 
It's been my experience in other complex hobbies that no matter what I do, I'll make mistakes and have to re-do significant portions of what I choose because there is too much to know and you can't ask the questions you aren't aware of.  Experience can be the only way to true enlightenment.
 
Your skills put you in a very advantageous position.  I would say consider an ISY for Insteon, an ELK for security and I/O, and add a Pogoplug running python or other scripting language of your choice.  That should make for a very flexible system.
 
Your preferred programming language, OS and development framework will probably be a big factor in  the software package you chose.  I use Open Source Automation http://www.opensourceautomation.com which is built on .NET and already has a simple web interface but you could still develop your own since OSA has an open API.
 
Welcome!  I think you'll find that, while there are a million companies popping up that claim to do Home Automation (and probably disappearing just as quick) the standards have been around long enough to be well established and tend to have open enough protocols.  For instance, Elk has an openly documented API; Nuvo and Russound do; UPB, ZWave, Insteon for lighting; etc... so these solutions tend to seem like they're more stagnant but they're more reliable and consistent and have a lot of integration support.
 
Also to Automate's point above - if I were you I'd skip the idea of trying to code every single aspect of the system yourself - I'd find something that already does 80% of what you want and has an environment that lets you easily accomplish the other 20% via code.  That'd be much easier than writing the server component that with all the associated drivers then having to still write whatever GUI you want.  Chances are you can find one that does a lot of what you want so you only have to code a couple drivers and just extend the GUI to suit you.
 
Those are great thoughts. I've been trying to look at as many software systems as possible and I keep finding new ones.  I'll be surprised if I can find something that does 80% of what I want, or even 50%.  
 
My background is in business apps and I have a lot of experience with .Net, so the Open Source Automation stuff looks interesting to me.  I looked at it briefly and it's still a ways off, but the closest I've seen, possibly with a new web interface it could meet somewhere close.  I also have looked at ISY994, but i think I would feel limited with a standalone device.
 
I'll probably start with some existing software or package just to get started, that will allow me to get some stuff going relatively quickly and see how things work.  The basics are well covered and integrating security sensors and lights is easily done with most of the existing software solutions.  I prefer PC based packages and will use an always on, low power PC to be the 'brains' of the system.  I think the OpenSource Automation platform is the best I've seen for what i want to do and having the code available makes it possible to add items and customize as much as I want.  I know there are other open source solutions, but this is the first .Net platform I've seen.
 
Some of the more complex stuff won't even be possible until I have a lot of the house setup with sensors and controls anyways, and some of it probably just isn't possible.  One thing I really want is to simplify my morning routines and make things much more automatic. I do the same thing every morning, in the same way.  As a scenario example: Turning off my alarm clock closes the bathroom door, starts the shower, turns on the exhaust fan and turns on low lighting.  Then mid-shower the lights start to come up, the heated towel bar turns on and when I end the shower, the towel bar turns off, exhaust fan runs for another 10 minutes, etc...  This is the kind of thing I want to be doing eventually!
 
sbman said:
Some of the more complex stuff won't even be possible until I have a lot of the house setup with sensors and controls anyways, and some of it probably just isn't possible.  One thing I really want is to simplify my morning routines and make things much more automatic. I do the same thing every morning, in the same way.  As a scenario example: Turning off my alarm clock closes the bathroom door, starts the shower, turns on the exhaust fan and turns on low lighting.  Then mid-shower the lights start to come up, the heated towel bar turns on and when I end the shower, the towel bar turns off, exhaust fan runs for another 10 minutes, etc...  This is the kind of thing I want to be doing eventually!
Doesn't seem far fetched - depending on what you use for an alarm clock - many people use Android with Tasker which can kick off a routine - or a tabletop android device (check out HomeSeer's) - or just press a button on your nightstand via a tabletop controller.  I have a UPB controller next to my bed - one button press could turn on the exhaust fan and set the lighting level - and whatever home control software or even the Elk M1 could see the command, set a timer, then turn up the lights.  The fan/towel heater is all on timers so that's easy.  The only hard part there is the water, and I believe the Kohler DTV system has a way to interface - probably don't need to start the water until the motion sensor in the bathroom detects that you've entered but the security system would see that, so in turn would the automation system. 
 
Nothing here is too difficult - and remember that probably the best place to get external input/output would be the security system - an Elk or Omni can detect all sorts of inputs like motion and contact closure and even analog voltage, and can trigger all kinds of remote relays - so it can control a lot of things that don't need more advanced RS232 or Serial control.
 
The other thing I really like about my M1 is that it has the native interface to everything - lights, HVAC, audio, I/O, etc... which means all one has to do is integrate with it to automatically get control of everything it controls - which means I can buy a single off-the-shelf app (eKeypad) to control pretty much everything in my house.  Way easier than writing separate drivers for everything in the house.  That said, I prefer more advanced UPB integration so my HA software has a UPB interface as well - I actually have 3 UPB interfaces stacked for access via a RUC, HA Software and the Elk - and having the HA software talk to the UPB lights actually improves the Elk's function because it sees the status updates too.
 
Lots of ways to accomplish these goals - it's not all that far fetched at all.
 
sbman said:
Those are great thoughts. I've been trying to look at as many software systems as possible and I keep finding new ones.  I'll be surprised if I can find something that does 80% of what I want, or even 50%.  
 
My background is in business apps and I have a lot of experience with .Net, so the Open Source Automation stuff looks interesting to me.  I looked at it briefly and it's still a ways off, but the closest I've seen, possibly with a new web interface it could meet somewhere close.  I also have looked at ISY994, but i think I would feel limited with a standalone device.
 
In home automation the software part is usually easy, especially for people with programming background. There are a lot of software packages available for a variety of platforms, some more advanced than others, or you can write your own code from scratch. The more difficult part is to find the adequate hardware that will let you do the actual automation. The good quality hardware choices are only a few, and the more "exotic" automation functions you may want the harder it is to find and install the right components. Ideally you want you hardware to be at a minimum 1) reliable 2) have an extensive integration support via API 3) extendable for the future 4) affordable (the most difficult factor to satisfy). At a basic level the HA controller is a collection of sensors and relays to control the valves, motors, and other automated equipment. In addition to already mentioned Elk M1 the other popular controllers with sensor/IO support are HAI Onmi, Webcontrol and Arduino.
 
For a beginner I would recommend to get a few simple devices, for example X10, z-wave or Insteon, and spend some time playing with them to see what the possible challenges will look like. They are easy to install and program, come in a variety of functions, but may be not very reliable, especially in large installs. As a rule of thumb, anything hard-wired will be more reliable and less expensive than the wireless alternatives. It is also much easier to install automation during construction, as you can pre-wire for a lot of stuff that can be activated in the future. 
 
Automating the shower is not difficult if you have the walls open, then you can install an electronic water valve. In existing construction this will be challenging. I am not sure why you'd want to start the shower automatically, perhaps it would be better to have water recirculation pump activated if you just want the instant hot water.
 
The Elk, Omni, etc.. are a great resource. I have had alarm systems in other houses before and had thought they were all completely closed systems, I had no idea there were products like the Elk.  After seeing their offerings and comparing among some of their competitors, Elk seems like a good choice for me to get started with the basics.  Door/Window/Motion done easily with the ability to add tons of discrete I/O for any purpose, Insteon integration, etc... You already know all that, but looks like a really nice system, thanks for the new info!
 
sbman said:
I prefer PC based packages and will use an always on, low power PC to be the 'brains' of the system.
 
Same here.  I run OSA on a completely fan-less Intel Atom PC with a SSD.  Zero moving parts..  
 
I chose to use OSA for the following reasons:
Open source - If there is feature it doesn't have I can develop it, and it's not dependent upon a single person or company that might discontinue support.
Built upon SQL database - I want to do a lot of data logging of temperatures, humidity, A/C and Heating system run time etc., this is easy and built into OSA
Plugin based - Allows OSA to be expanded to communicate with just about anything. Plugins can be stopped, started and replaced without affecting the rest of OSA
Object Oriented - The objects in OSA are very powerful and flexible. All object have the same capabilities, therefore there are no objects with limited features.
Solid Foundation - OSA is built upon a well thought out framework and is very stable. In years of use, I have never had the main OSA service crash.
.Net based - This makes development easier since there are lots of libraries that can be used without the developer re-inventing the wheel.
 
Back
Top