How to get started if I want to program it myself...

the two main reasons are for the flexibility it'll give me, and for the challenge.
I can certainly understand the challenge part, but could you give some example of the 'flexibility'? The reason I ask is because I see this come up but have a really hard time understanding what you may want to do that an already existing commercial or opensource app can't do. And I know some that have tried and at the end have stuff nothing better than existing stuff when they started, It also seems alot easier to me if there is like 1 thing you want to do but isn't available, work with another person that has an existing more mature system already to build in that functionality. I am definitely not trying to discourage at all, but beside the obvious satisfaction and challenge in building it yourself I'm just curious what is so lacking that it would make someone want to start from scratch?
 
I can certainly understand the challenge part, but could you give some example of the 'flexibility'?

It may be that I develop something that could already be done in some existing package, but who knows?

An example...what if I wanted a system that would do the following with my garage door:
- ask me if I want it closed via a voice prompt, and potentially let me answer via a voice response
- only ask me that question if its after 10pm on a weeknight, or 11pm on a weekend
- don't ask me that question if the door was opened within the last 30 minutes, or if a motion detector in the garage shows motion
- make that time earlier if it's colder outside than a certain temperature
- make that time later if I've told my system that I'm on vacation (but home)

Now, maybe that's all very doable in some existing systems. Again, I'm not saying existing systems just can't do enough; I just want to do this myself for various reasons (the challenge, the geek-bragging-rights, keeping my skills sharp since I no longer program every day at work, etc).
 
No one wants to suppress your enthusiasm and determination. If you want to create your own HA app, go for it. But, quite honestly, we're all trying to channel your boundless energy into writing enhancements for the HA software we already use. :(

Everyone is interested in free plugins and drivers but not everyone is able to invest the time and effort to create them. You appear to have what it takes so we'd all like to see you playing for our team and not inventing a new league. :)
 
I won't disagree that it's a lot of fun when you have total control in the language you're used to, rather than having to work within the constraints of another application and how they've set it up... When you think like a coder, it's nice to be able to jump into the code and do whatever you want.
 
Now, maybe that's all very doable in some existing systems. Again, I'm not saying existing systems just can't do enough; I just want to do this myself for various reasons (the challenge, the geek-bragging-rights, keeping my skills sharp since I no longer program every day at work, etc).

I understand your reasoning, as a fellow computer programmer and someone who has been into HA for a few years I have some thoughts...

The previous posters suggestion of Homeseer is a good one. It allows you to program your own scritps and web pages using .NET but it does a lot of the low level grunt work for you. A lot of things that would be tedious to program and design like all of the interfaces to different devices is done for you, you can concentrate on the "business logic" so to speak. You still have complete control to script anything you want to do in .NET but you have the option of not having to. Of course like anything else it is not a perfect system but IMO it is far better than something I could come up with in my spare time.

Originally I wanted to go a similar route of programming everything myself, but once I got a bit into it I realized how much work it actually is to have a fully featured system. My case is a bit different then yours in the fact that I still do quite a bit of programming at work and I am not really all that exceited about coming home and doing a whole lot more programming in my free time.
 
Have a look at Johnny Nine's J9 Automation Engine. It's the latest custom-built HA application.
If you're hell bent on inventing your own app, he'd be the right person to contact. So would Vaughn Rupp, creator of vcrib. Or Dean Roddey, inventor of CQC. Or etc etc.

If you simply want to flex your programming muscles, I dare you to look at Premise (the gloves are off!). If you are a software developer, you will be intrigued by Premise's architecture. Developed by several ex-Microsofties, it was light years ahead of its time. Data, logic, and presentation layers. Object-oriented database. A large class library for common HA devices to help build the logic layer. IDE with integrated debugger with full simulation and a transaction viewer. Fully object-oriented; existing classes can be extended or create new ones. Device drivers can be built in C++, .NET languages, and an enhanced VBScript. Logic can be programmed with script, macros, logic diagrams, or a combination of all three methods. The UI is generated automatically based on the objects found in the logic layer. All classes and objects can be imported/exported in XML.

Premise originally cost over $700 and was created for professional integrators. It was discontinued after being acquired by Motorola. but released to the public for free. One of principal engineers is now running Digini where he has created Blade3D ... an equally amazing product (in the game-developer market).

I'm done; have fun.
 
Hello, first time poster here, so be gentle. :)

I'm looking to replace my current monitored alarm system with something with more capabilities, and that I can grow into a more expansive home automation system. I'm in the computer field by trade, and I'd like to write my own system to operate everything. I know there are fairly robust systems out there that will let me program them in their proprietary ways, but I want to do this all via Visual Basic and/or C#.

My first priority is alarm system. My existing system is all hard-wired to a box monitored by a service. What I'd like is some sort of system (ELK? Something else?) that can handle both hard-wired and wireless sensors (no sense wasting the good hard-wired door sensors). I'd like to be able to query the status of those sensors from my program, and send commands to the alarm system from my program. It's fine with me if I had to do SOME proprietary programming within some other system, but I want my separate application that I code to be able to interface with that system.

An example - if a door were opened, I'd like my application to be able to know, then based on the day/time text-message my cell phone. I could then decide if I wanted to set off the alarm by texting a command back to my application, which would then command the alarm system to sound an alarm. (Granted, a goofy example - I wouldn't necessarily want all that time to pass between a door opening and text messages flying around, but you get my point).

Later on I'll want to expand this with Insteon/X10/other home automation items.

Any suggestions? Will Elk with the tcp/ip add-in board do this, or something else that would be better?

The M1 with an ethernet module (m1xep) and some rules programming can handle that... I run my own mail server and use the m1sender.exe program (search for m1sender on this forum) to send commands to the M1 but there are lots of ways to do this. Between remote control by phone and remote control via a web browser you'll feel connected when away...
 
Back
Top