I debated long and hard about writing this reply as I am sure it will fuel the fire, so let me tell you the worst I am going to say first and then explain it - I see a lot of bad info here.
Take this info for what its worth, I have been involved in this industry since 1992.
First of all, any intelligent/programmable controller like Stargate with HomeSeer is way too much overlap. It is a huge waste of money. Anybody who wants to program a Stargate, their security system, MainLobby, and HomeSeer/HAL to automate their home is just plain crazy.
If your HA needs are not that big, perhaps just getting started, do not want to do anything involving the PC on a regular basis (e.g. speak the CNN breaking news headlines, have the weather control your sprinkler system, etc.) then an intelligent hardware system is what you should look for. If you do not want to do security, then Stargate is a great choice. If you want security, then HAI or Elk.
These companies can never make a programming language that will make you totally happy because they are hardware/firmware based. They must conform to the logic that is in the firmware of the controller itself. Additionally, as a hardware manufacturer, their first priority is on hardware and firmware, not software. Even high end systems like Lutron HomeWorks have very poor programming software. Take the time to learn HAI's programming language and it does not port to Stargate. Learn how to program Crestron, it does not port to MainLobby. Learn to program Vantage, it does not port to Lutron. Hardware manufacturers have people who write code compiled down to machine language level - they do not regularly use higher level languages. Changing the system means accessing the programming software, and perhaps 1% of the companies out there have a web interface allowing you to do it from anywhere. This means programming using PC remote access software or PC software on the PC connected to the controller. It is a wonderful environment for where it shines, which is what I described above.
When your needs are more - you want to program the system remotely, you want to customize the system, you want to be able to connect disparate systems together, then you have to go with a more extensible system, and that is always one based entirely upon software. Nothing implemented in hardware is ever going to be as flexible as pure software. Our newest protocols in this industry are UPB and Insteon. What if something completely new comes out - how do the hardware based controller react? If they can support it through a serial interface, they get the code written to support the device and start burning EEProms to ship out - they are the lucky ones. What if the device only has a USB interface or some new interface? If you are the Elk where you put a connector for daughter boards providing interface capabilities, you are very smart - but the hardware and software both still have to be created. If you do not have that capability, you are out of luck and your users can never support that device EXCEPT through a software interface which will almost always involve a PC. Software has to send out updated software, which sometimes can be installed remotely. Software can be configured remotely. For customization or interfacing with things that nobody else will build an interface to, you can pick up the language that the software home automation system uses and build that interface, but if it is like what HomeSeer does, then that language ports to other PC platforms! Use VB, JavaScript, Perl, Python, or whatever is your current favorite - it is the same language you may have picked up elsewhere, and it is portable to other computer systems. And let's face some other facts - the Internet is everywhere, and you can do/get just about anything over the Internet - find a hardware based controller that makes it easy to integrate Internet content in with a few lines of script code. And for text to speech (TTS), let's not go with a limited vocabulary of pre-recorded words - that never works well when you want it to say even simple things like pronouncing your name right! Systems like the Stargate implemented TTS by connecting the panel to a PC, so even Jeff knew he did not want to try to re-invent the wheel by putting it into the hardware.
So now if you are at the level where you need the power and flexibility of a PC based program, why would you leave your controllers smart? Go with a simple Caddx, Napco, or DSC security system, and make your I/O controller something inexpensive like an Applied Digital system, but don't go burying a bunch of logic there - make it a dumb slave - your maintenance of the system is BY FAR easier to maintain. The only time I entered C-Max on my Ocelot was when I used software to convert a bunch of infrared signals I downloaded from the Internet into the ADI format and I wanted to load them into the controller - not a single line of code is in my Ocelot, and I have 5 modules on my system including a SECU16-IR.
The same goes for Main Lobby - wonderful interface, and even David referred to it as a front end. Why would you want to put your automation there too? When you think about it, Main Lobby is the operating system for your touchscreen computers. If your automation needs are small and include a few touchscreens, that is fine - but when you need more and go into the areas I mentioned earlier, why use a program that was designed by Mario to be a graphical system and has automation added as an "oh by the way" feature? We love the combination of Main Lobby and HomeSeer because ML focuses on "pretty" and we focus on "power" and "extensibility". Use the products that try to do it all when your needs are basic, but as soon as you need to do more, position yourself to make it easier to get things done - the heart of the automation system in one place, "dumb" peripherals and sensors so that they can easily/quickly be replaced if they fail, and a fantastic front-end like ML, when you have a need for that in your system - each piece does their job and does it well and nobody has overlapping functionality.
OK, now I have to address what I am sure some of you are thinking about, and I am going to be very blunt. Many of you will say that "the PC is not reliable" to which I reply "hogwash". Sure I have my fights with my regular desktop PC, but my Home Automation PC has been pretty much as reliable as my HAI system, because like the HAI system it is dedicated to pretty much a single task. The blunt part is this - do not even bother posting your arguments against PC reliability - you will never convince me otherwise even if I agree with your statements JUST LIKE the fact that I will never be able to convince you of my argument if you have had nothing but problems with a PC. We developed a dedicated controller for HomeSeer (PRO100) because of the anti-PC feelings, not because we also felt they were unreliable. So let's leave it at a state of detente and agree to disagree. I have my proof with sites that run major facilities on PCs alone, and you have your proof of your own experiences. Not discussing it either way just helps prevent electron from having to pay for extra hard drive storage for the board.
Take this info for what its worth, I have been involved in this industry since 1992.
First of all, any intelligent/programmable controller like Stargate with HomeSeer is way too much overlap. It is a huge waste of money. Anybody who wants to program a Stargate, their security system, MainLobby, and HomeSeer/HAL to automate their home is just plain crazy.
If your HA needs are not that big, perhaps just getting started, do not want to do anything involving the PC on a regular basis (e.g. speak the CNN breaking news headlines, have the weather control your sprinkler system, etc.) then an intelligent hardware system is what you should look for. If you do not want to do security, then Stargate is a great choice. If you want security, then HAI or Elk.
These companies can never make a programming language that will make you totally happy because they are hardware/firmware based. They must conform to the logic that is in the firmware of the controller itself. Additionally, as a hardware manufacturer, their first priority is on hardware and firmware, not software. Even high end systems like Lutron HomeWorks have very poor programming software. Take the time to learn HAI's programming language and it does not port to Stargate. Learn how to program Crestron, it does not port to MainLobby. Learn to program Vantage, it does not port to Lutron. Hardware manufacturers have people who write code compiled down to machine language level - they do not regularly use higher level languages. Changing the system means accessing the programming software, and perhaps 1% of the companies out there have a web interface allowing you to do it from anywhere. This means programming using PC remote access software or PC software on the PC connected to the controller. It is a wonderful environment for where it shines, which is what I described above.
When your needs are more - you want to program the system remotely, you want to customize the system, you want to be able to connect disparate systems together, then you have to go with a more extensible system, and that is always one based entirely upon software. Nothing implemented in hardware is ever going to be as flexible as pure software. Our newest protocols in this industry are UPB and Insteon. What if something completely new comes out - how do the hardware based controller react? If they can support it through a serial interface, they get the code written to support the device and start burning EEProms to ship out - they are the lucky ones. What if the device only has a USB interface or some new interface? If you are the Elk where you put a connector for daughter boards providing interface capabilities, you are very smart - but the hardware and software both still have to be created. If you do not have that capability, you are out of luck and your users can never support that device EXCEPT through a software interface which will almost always involve a PC. Software has to send out updated software, which sometimes can be installed remotely. Software can be configured remotely. For customization or interfacing with things that nobody else will build an interface to, you can pick up the language that the software home automation system uses and build that interface, but if it is like what HomeSeer does, then that language ports to other PC platforms! Use VB, JavaScript, Perl, Python, or whatever is your current favorite - it is the same language you may have picked up elsewhere, and it is portable to other computer systems. And let's face some other facts - the Internet is everywhere, and you can do/get just about anything over the Internet - find a hardware based controller that makes it easy to integrate Internet content in with a few lines of script code. And for text to speech (TTS), let's not go with a limited vocabulary of pre-recorded words - that never works well when you want it to say even simple things like pronouncing your name right! Systems like the Stargate implemented TTS by connecting the panel to a PC, so even Jeff knew he did not want to try to re-invent the wheel by putting it into the hardware.
So now if you are at the level where you need the power and flexibility of a PC based program, why would you leave your controllers smart? Go with a simple Caddx, Napco, or DSC security system, and make your I/O controller something inexpensive like an Applied Digital system, but don't go burying a bunch of logic there - make it a dumb slave - your maintenance of the system is BY FAR easier to maintain. The only time I entered C-Max on my Ocelot was when I used software to convert a bunch of infrared signals I downloaded from the Internet into the ADI format and I wanted to load them into the controller - not a single line of code is in my Ocelot, and I have 5 modules on my system including a SECU16-IR.
The same goes for Main Lobby - wonderful interface, and even David referred to it as a front end. Why would you want to put your automation there too? When you think about it, Main Lobby is the operating system for your touchscreen computers. If your automation needs are small and include a few touchscreens, that is fine - but when you need more and go into the areas I mentioned earlier, why use a program that was designed by Mario to be a graphical system and has automation added as an "oh by the way" feature? We love the combination of Main Lobby and HomeSeer because ML focuses on "pretty" and we focus on "power" and "extensibility". Use the products that try to do it all when your needs are basic, but as soon as you need to do more, position yourself to make it easier to get things done - the heart of the automation system in one place, "dumb" peripherals and sensors so that they can easily/quickly be replaced if they fail, and a fantastic front-end like ML, when you have a need for that in your system - each piece does their job and does it well and nobody has overlapping functionality.
OK, now I have to address what I am sure some of you are thinking about, and I am going to be very blunt. Many of you will say that "the PC is not reliable" to which I reply "hogwash". Sure I have my fights with my regular desktop PC, but my Home Automation PC has been pretty much as reliable as my HAI system, because like the HAI system it is dedicated to pretty much a single task. The blunt part is this - do not even bother posting your arguments against PC reliability - you will never convince me otherwise even if I agree with your statements JUST LIKE the fact that I will never be able to convince you of my argument if you have had nothing but problems with a PC. We developed a dedicated controller for HomeSeer (PRO100) because of the anti-PC feelings, not because we also felt they were unreliable. So let's leave it at a state of detente and agree to disagree. I have my proof with sites that run major facilities on PCs alone, and you have your proof of your own experiences. Not discussing it either way just helps prevent electron from having to pay for extra hard drive storage for the board.