The most capable controller software?

@Dean & znelbok: What is the language structure of CQC? Is it like Javascript, C or ...?

The thing that is drawing me to HomeSeer is (it appears) that it allows for drag and drop building, but then you can dive deeper with Javascript-like coding.

Thoughts?

You generally don't need to do any programming at all. There are effectively two primary ways in which you would interact with an automation system (of the sort that allows you customization of the interface.) One is to create user logic, and the other is to create the user interface. In both those cases CQC really doesn't require any programming. The user interface designer is a fully object oriented system in which the same logic creation interface is used to create interactions between the 'widgets' on the interface as is used to create user automation logic (and hence they can be very much intertwined where needed.

The logic creation interface is consistent and used all over the system. Effectively you always are doing two things, you are selecting a source for some 'action' and you are then creating that action. The source can be an IR remote sending a command, a button press on an interface, a scheduled time, some change in a device under CQC's control, a standard event trigger like motion occuring or a lighting load going on or off or a button on some panel, etc... You are always effectively associating an action with some source that makes it happen. The creation of the action itself is always done via the same consistent interface, which is almost totally point and click. You do have to type something occasionally, if you need to give something a name, or something like that. But, otherwise, it's all point and click.

Since the interface design tool is completely integrated into the system, you have full access to everything from within it. It's not like some programs where you have to copy and paste commands from one place to another. You have access to everything from within everything, because CQC is a fully integrated suite of applications, designed to work in a multi-user, client/server sort of way.

If you do want to do some programming, e.g. write your own drivers or perhaps do some advanced user logic, you would use our CML language. It's very C++/C#/Java like, with some Modula2 features thrown in. It's single threaded, single inheritance. It's designed for a high level of robustness, not the ability to hack code quickly. It has a lot of features designed to help in the automation process as well. And, the IDE is fully integrated into the system just like everything else.

If you want to get a feel for it, watch the tutorial videos on the web site. They will give you a good idea of how it works.
 
Here is a simple CML class. This is one designed for direct invocation (as apposed to just helper code used from other code.) It takes the driver moniker for an IR blaster device driver, an IR 'device model' which is the name of a set of IR commands for a particular IR controlled device, and the location information for a piece of media that the caller has determined is on that changer (in the form drivername.slotnum.) It breaks the location info apart into driver and slot number. Then it sends a folder command to the changer, then it sends a command for each digit in the slot number, then an enter command. I.e. it selects the slot as though it were being done via an IR remote.

Not something you'd want to do, since hopefully you'd at least be using a directly controllable changer, and not many folks even use changers these days. But it's a reasonable example that was just lying around.

Anyhoo, it's pretty straightforward to anyone who has worked with C++, Java, or C#, and using similar sorts of features and syntax. The bulletin board editor removed all the empty lines and a lot of the spacing, which makes it a little harder to read.


Code:
Class=[NonFinal]
    ClassPath MEng.User.BlasterHelper;
   ParentClass MEng.Object;
EndClass;
 
Imports=
    MEng.System.CQC.Runtime.SimpleFldClient;
EndImports;
 
Literals=
    Card4	 kSleepTime(250);
    String kFldName("Invoke");
EndLiterals;
 
Members=
    SimpleFldClient m_FldIO;
    Time		 m_TimeInfo;
EndMembers;
 
Methods=[Public,Final]
 
Constructor()
Begin
EndConstructor;

Method Start([In] String DevMoniker
	 , [In] String DevModel
	 , [In] String LocInfo) Returns Int4
Begin
	 Locals=
		 Card4 Index(0);
		 String Cmd;
		 String Changer;
		 String SlotNum;
		 Card4 DigCnt;
	 EndLocals;
	
	 // Break out the changer and slot part of the location info
	 Changer := LocInfo;
	 Changer.Split(SlotNum, '.', True);
	 DigCnt := SlotNum.GetLength();
	 // Send a folder command
	 Cmd := DevModel;
	 Cmd.AppendChar('.');
	 Cmd.Append("Folder");
	 m_FldIO.WriteStringField(DevMoniker, kFldName, Cmd);
	 m_TimeInfo.Sleep(kSleepTime);
	 While(Index < DigCnt)
		 // Set up the command for this round
		 Cmd := DevModel;
		 Cmd.AppendChar('.');
		 Cmd.AppendChar(SlotNum.GetAt(Index));
		 // Write the value, and sleep a bit
		 m_FldIO.WriteStringField(DevMoniker, kFldName, Cmd);
		 m_TimeInfo.Sleep(kSleepTime);
		 Index++;
	 EndWhile;
	 // Send an enter
	 Cmd := DevModel;
	 Cmd.AppendChar('.');
	 Cmd.Append("Enter");
	 m_FldIO.WriteStringField(DevMoniker, kFldName, Cmd);
	 m_TimeInfo.Sleep(kSleepTime);
	 Return 0;
EndMethod;

EndMethods;
 
Well I would spend some time and download each ie Homeseer, CQC, Elve, Cinemar Main Lobby trial versions and see which one meets your expectations. I spent months making a decision. Spend time on their forums to see how the support is as well. I spent months trying all of them except Premise. I am not a software person at all and I really liked Main Lobby cinemar but after trying CQC and watching all the videos I really liked the open platform they offered even though the learning curve is very steep for a non softare person like me. Lastly the support that CQC has seemed to me to be outstanding. Dean has been awesome and has spent inordinate time helping me and many folks with their solutions as well as the rest of the community.
 
I'm a Homeseer user (many years now)(X2 these days) and use an HAI Omni Pro II (years now X2).

I have a kind of hodgepodge of X10, Insteon, UPB and Z-Wave. Both Homeseer and the HAI panels are doing fine and have for many years.

That said I've been "testing" a Sprinkler application which I ran as a plugin on Homeseer for many years now ported over to a Seagate Dockstar running Arch Linux.

It's been tested now for about a year and now running it "in production" just fine. Attached is a picture of the Dockstar inside of the legacy rainbird box.

The second picture is the touchscreen interface to the application.
 

Attachments

  • pic-1.jpg
    pic-1.jpg
    273.5 KB · Views: 57
  • TS-1a.jpg
    TS-1a.jpg
    194.8 KB · Views: 56
Since you're looking, take a long one at home control assistant. With multi protocol support, client server mode that lets you design android based panels that run your house from your smartphone, and with one of the best visual based programming capabilities in the industry its an obvious candidate. Here's their site:

http://www.hcatech.com

Check out my weather panel, that sits on an Android powered wall display at home. It leverages HCA to not only build the html itself but also populate it from weather data which is periodically gathered from local metar/wunderground sites. I use HCA's weather capabilities to control everything from sprinkler systems to our central/mini-split based HVAC system.

http://fortressweather.theparadigmgrid.com
 
Since you're looking, take a long one at home control assistant. With multi protocol support, client server mode that lets you design android based panels that run your house from your smartphone, and with one of the best visual based programming capabilities in the industry its an obvious candidate. Here's their site:

http://www.hcatech.com

Check out my weather panel, that sits on an Android powered wall display at home. It leverages HCA to not only build the html itself but also populate it from weather data which is periodically gathered from local metar/wunderground sites. I use HCA's weather capabilities to control everything from sprinkler systems to our central/mini-split based HVAC system.

http://fortressweath...aradigmgrid.com

I'd second the suggestion of HCA. It is incredibly easy to use with the visual programming interface, allowing you to get sophisticated programs running quickly, and supports UPB, X-10, Insteon, and IR, has an excellent, customizable GUI interface for use with touch screen PCs, includes a web server for control from iOS devices, offers a native Android client, and is built on a client-server model. Clients can run on the server for an all-in-one approach, or on a remote machine. I have used it for over ten years and find it very solid, and tech support very responsive. There is a free, somewhat limited version available on the website, but it will give you a sense of how simple and powerful the visual programming interface is.
 
The disadvantage of most of these things is that it means you need to leave a power hungry computer on. I prefer the isy99i since it controls insteon and has a crude programming interface. I use this for control of my sprinklers (via ezflora) and I have insteon switches for all my lights, so with an insteon motion detector mounted in the front of my house, I can control the outside lights based on motion, sunrise/sunset, programs, or anything else. For example, I have motion activation on the lights outside the garage but I exclude october 31 from the program and any time between half an hour before sunrise and half an hour after sunset. The programs for these things are trivial, and the web interface is usable from my ipad or android phone. I have the isy99i living inside the same box as the elk m1... it's very small.

I got the isy99i at the same time as the m1, and I didn't install the M1 for a full year because I was so happy with the automation of the isy99i, and eventually I installed the M1 not for automation but for security.

Obviously I've highly biased myself in favor of insteon. I love that every non-primary switch that was previously in a 3-way arrangement can now control anything I want it to rather than just what it was wired to previously.
 
Something like CQC can run on a quite small PC, not something that's going to be chewing up major electricity or anything. Depends on how many clients you want to run, and how many devices you want to control. But for the average system with a handful of clients and reasonable number of devices, you don't need much in terms of modern PCs to drive it quite well. And of course you can also use it creatively to reduce energy usage as well.

But ultimately the big difference is that something like CQC can control a list of (and variety of types of) devices, and it's not that hard to provide support for something off the beaten path if you want it. To do home automation as it's becoming more and more thought of today, in addition to the traditional automation tasks, you need to deal with media management, online data sources and services, weather, home theater equipment, multi-zone audio and zone player products, provide attractive graphical interfaces, support multiple simultaneous users of all these things, user rights management, etc... To do that you will ultimately have to have a PC based system, if for nothing else to hold the media (though it might be in the guise of a 'network appliance' it's still a PC basically.)
 
One thing I forgot to mention, the thought of having a windows machine running full time is a potential security nightmare to me, and I think it should be to most people. Anything I have running windows is on an isolated network with no access to anything internally in my house and I only keep it around for things like elk rp software (though since I write software for fun and for work, I expect that over time I will have written what I need to not require Elk's software for too long) and software for other vendors who just don't see that macbook pros are now the #1 selling laptop on amazon and maybe should reconsider writing for osx.

I use a netgear ultra6 for media. It's effectively just a very limited linux box so it can do other automation for me as well since it can also run anything I write for it to run, and the http interface to the isy99i is pretty intuitive, and it uses less power to host 12TB of data than my laptop charger.

The advantage of the ultra6 is that all my TVs, tivos, game machines, phones, ipads, ipods and otherwise know how to play media from it natively. I don't need anything else to have my library available from any device in my house... and looking at things like whole house audio systems, I have found it's much cheaper and more flexible to do things like planting something like a squeezebox or apple tv in every room... and more than likely in the coming year I will have a Google Nexus Q in every room anyway.
 
Why should running windows behind a firewall fulltime be a security nightmare? It's not like folks surf malicious websites (or surf the web at all) on their HA servers. If there's something I'm missing, please tell as I don't want my home hacked either!?!

I know osx is unix based, so is that the reason it is "more secure"? Is all the stuff Apple added to it open-source or something to where thousands of folks have looked through it?

Also, if running a PC fulltime is a security risk, then why does every company I've worked at give employees internet access in the first place? I too worry about the day when some unknown country declares cyber war on us... If windows is safe enough for fortune 500 companies, why isn't it safe enough to run my home?
 
I'm sure microsoft is happy to have their employees run windows. My work does not trust windows and by extension, I am not allowed to trust it. My employer is on the fortune 500 list close to the top.

I wouldn't argue that osx is any more secure, just less of a target... but I would argue that the laptop provided to me by work (which will not be a windows laptop) is quite a lot more secure than any machine I buy on my own that runs windows 7 or linux or any other OS since work has a full time staff devoted to making it secure.
 
I run HCA on a low power atom based platform. It draws 10W. It also runs XP with windows firewall in full blocking mode except for port 3389 to my dev machine. I use this to perform HCA software upgrades. The server itself doesn't have a mouse/kbd/monitor. Here's a shot of it:

jtt1610_big-vi.jpg


Since nobody ever uses this machine for anything, there are zero security issues. Windows doesn't create worms/virus' on its own. It gets infected when an open port is exploited (windows firewall prevents this) or when somebody browses to a malware site or otherwise infects the machine through use. This security posture is proven effective because my HCA server has never been compromised in the 10 years that I've been running it (with no virus protection installed, no windows patches applied).

There's nothing wrong with Windows as the platform to power dedicated servers from a security perspective. In fact, EMC Clariion (commercial storage area network machines) service processors run it.
 
I will second the post above.

Also IMO the best controller option for HA is a combination of a hardware controller (like HAI or Elk) and a small form factor PC. I have all critical functions like security, lighting, HVAC, AV, shades, irrigation control etc programmed into HAI and supplement it with all non-critical but heavy resource using or more sophisticated programs running on a PC. That way your daily used functionality will be almost 100% reliable (subject to no bugs in your program ;), will run during power outages and won't be compromised by any intrusion (however unlikely). And you have a natural backup by using both. The PCs I had over the years were never reliable, and it is the worst thing when you come home and the PC is dead and you are so spoiled by having everything automated that you forgot where the light switch is on the wall...
 
With a strictly client server based automation system, the server is never used directly, so it's just not a security risk. The router shouldn't be allowing any incoming connections from the outside, and the server never directly connects to the outside, other than perhaps some drivers that are accessing known data sources (and there's no way to infect the server via those connections, becauyse they are highly structured connections.) And the firewall can be reduced to just those exceptions required by the automation product's client connections. And of course with CQC the drivers are written in CML which won't allow anything bad to be done by a driver anyway.

If you want to be extra careful, you can strip the functionality down on the server to the bare minimum, which is generally a good thing anyway. There's lots of stuff you can turn off. I just don't get the unreliable PC thing. If you build one of quality parts, or buy one built of quality parts, and it's not being abused, it will be very stable. These days you can also use a solid state disc to make that even more likely. Our web site is run on a Windows server that has been turned off once in something like 5 years, and that was to upgrade the memory. Otherwise it's been running non-stop for 5 years and purposefully exposed to the public of course. Lots of large companies do the same. If some large company doesn't use Windows, I imagine it's more to do with politics than anything else.
 
I'm sure microsoft is happy to have their employees run windows. My work does not trust windows and by extension, I am not allowed to trust it. My employer is on the fortune 500 list close to the top.

I wouldn't argue that osx is any more secure, just less of a target... but I would argue that the laptop provided to me by work (which will not be a windows laptop) is quite a lot more secure than any machine I buy on my own that runs windows 7 or linux or any other OS since work has a full time staff devoted to making it secure.
OK that's just ridiculous! Why is your company different than every other Fortune 1000 company, and even the US Government? Why is Windows more of a risk for you? And what security risks exist in your own home that would be out affecting a computer sitting in a corner? You could never back your statements up with any useful facts.

I'm not a MS lover per say - I'm typic this on a Mac... but I know PC's inside and out. I'm guessing you work for Apple or Google and have fallen for the brainwashing? In that case, why don't you put everything you care about "in the cloud" where it's truly secure :blink:!

Moving on - I have that same machine KWilcox listed above (running Debian) - been a great little machine, and had I put an SSD in it, there would've been no moving parts. Another one I considered throwing into an Elk enclosure is a Fit2PC - they're amazingly small - about the size of a deck of cards. That said, I run an HP MediaSmart Windows Home Server - it's a headless NAS based on Windows that backs up all the PC's and my Mac, serves media, acts as the home's central file server, and also runs anything that runs on Windows, so it handles things like the DDNS updater, some media streaming, and Elve... and it's where I manage my UPB from as well, since I can remote to it from anywhere.

I'll also just point out - I don't run AntiVirus or AntiMalware software on any of my PC's either. Machines don't get infected by themselves - they get infected when people do stupid things on them, or let other people do stupid things on them, or bring otherwise infected computers into their environment. I don't let that happen. I do install antivirus and antimalware for anyone else I support... but viruses don't just materialize out of thin air.
 
Back
Top