Week 9 is all about hardware considerations and literature review, in order to decide how we can go forward with our system from our proof of concept.
We discussed this with Dean, Billy (our TA), and Dennis (Head of Tech Support), and amongst ourselves for several hours today, got a list of research topics, and each of us are to finish that research before the 9am meeting with Prof. Stephen Hailes tomorrow.
Terrence and I are supposed to look at a sample set of 10 different existing complete home automation system solutions and see how our system can perform better in certain aspects. We chose 6 closed-platform solutions and 4 open-source ones, largely based on popularity and search rankings, and split the work in half between the two of us.
The systems we looked at are:
|mControl v3||Embedded Automation||No||Terrence|
|ActiveHome pro||ActiveHome Pro||No||Myself|
|Open Source Automation||-||Yes||Myself|
|HomeSeer||PowerHome||ActiveHome Pro||OpenSource Auto||OpenRemote|
|Event scripts / macro||Y||Y||Y||Y||Y|
|Media center support||Y||N||N||?||Y|
|Security system support||Y||N||N||Y||Y|
|Major protocol support|
HomeSeer offers software solutions between $220 to $600, which run on Windows platforms. To control from iOS, Android, and mobile devices (no Linux support) a separate controller device is necessary, with price tags ranging from $500 to a whopping $3,000! I don't believe the software's cost is competitive, especially when open-source offerings have the same features for free. (OpenRemote) Even the controller's cost is prohibitive, since even a brand-new Windows-based PC with sufficient hardware to run just the software for home automation comes at less than 500 US dollars.
HomeSeer offers customizable UIs, but what this means in their terms is that they offer different sets of downloadable UIs depending on what the user needs, rather than let the user build his or her own.
Their advantage is that they support the widest range of protocols among the three closed-source systems listed here.
PowerHome is a closed-source single-package software solution for home automation. Users pay a one-off $100 fee for the software (which deactivates the time limit for the 30-day trial they offer). Their SDK allows users to extend the functionality of the software they bought, but these improvements cannot be shared among the community of users, unlike OpenRemote, which is a shame; they've only added support for X10, Insteon, and UPB protocols - allowing users to share their contributions would solve the problem of protocol support for them.
I believe their main selling point is their good scripting support - it supports any language supported by Windows Script Host, extensible by the user, and the user can define startup and shutdown scripts, and have the scripts call methods from the Windows command line. Their database is also available to other software, so it can potentially be used in conjunction with a user's own programs and/or other compatible home automation systems.
These features, however, are also very intimidating/ out of reach for the average user, and they might not be able to leverage the full functionality of the software they are offering, if at all! The same goes for their interface as well, which looks comparatively archaic and has poor presentation (at first glance it looks off-putting compared to more modern interfaces).
The obvious weakness of their system is that it only runs on Windows XP, and it only supports the X10 protocol. They claim that X10 is the de-facto standard, but since other systems happily support multiple operating systems and the other standards, from a user's standpoint there are many other better solutions out there considering these two points alone.
That is not all, however. Their software is closed-source, and they require between $50 (for the software and central controller) to $100 for the previous items plus a couple of sensors. Their SDK requires registration before one can download it - I cannot think of any particular reason why they would need to do so. Their UI is comparatively archaic as well, since even a CSS3 HTML page can have better appearances than what they have.
Their system and a poorly-designed website (in my opinion - pop-ups, poor sizing, demarcation, whitespace use) is highly-discouraging for users, so there are better systems out there that we should be analyzing rather than this one. The only notable advantage they have over, say, Control4's offering is that their software runs on a PC rather than a proprietary piece of kit.
OpenRemote is less of a platform for the user than one for a professional home automation system designer, who would get a set of UI design and scripting tools specific to the platform, in order to design a packaged solution for his or her client. These scripts and UI interface with the OpenRemote service, which then translates these generic commands into platform-specific ones for the devices of various home automation standards.
Users who are willing to develop their own solution can use the set of tools without too much effort as they are designed to be fairly intuitive, and there are online resources for them. At the time of this post, they have detailed documentation for their API (either in XML or JSONP), but docs for other aspects such as UI design are fairly short.
Since they release the software (designer, UI, controller etc.) for free, they make money by offering more advanced versions of the software (e.g. automatic device recognition, cloud hosting etc.). They offer several development options as well, so if a company wishes to add their own icons and functionality in, they can either make it open source and pay a one-off fee, or subscribe to the service and keep their own additions closed-source.
I believe the main strength and selling point of this system is that a user can pick up all the software components for free, and the software can control most of the hardware available on the market, so they only buy whatever they need.
The only notable weakness that they have is that they have a separate UI for remote access called their web console, instead of driving everything from a cross-platform HTML5 application. This web UI's layouts are significantly different from their desktop UIs, but I cannot think of any particular reason for them to make it behave that way. This also means that users / developers potentially have double the work to do to configure both UIs correctly, and then have to get used to both of them.
Open Source Automation
Apart from the basic installation, users need to download plugins to support protocols of devices that they are using (e.g. Insteon, ZWave etc.). Since the source is on github, users can modify everything there is - in contrast with OpenRemote which users can only author and change the UI.
The only notable weakness of this offering is that they are still in the early stages in development (as of the time of this writing, they have just released 0.3.9 and overhauled their web UI). For average users, I suppose, the offering is not an install-and-run solution, so installing plugins for devices and troubleshooting might put some people off.
In my opinion, the best solution for the user, in other words, the solution which gives the user the most control over their system and gives the best value for money is Open Source Automation. Given enough time, since there are no withheld features as monetization strategies, once support for devices are extended and it goes into version 1.0, as I see it, there would be little to no reason to look at the other solutions.
For our project then, since we are a team of five who have more or less six weeks to develop something, it would not be prudent to try to outdo what a larger team of professionals can achieve within a much longer timeframe. Since our software is supposed to have something unique not currently being offered in the market, I believe we can look at:
- Machine learning - suggest a set of actions for the user based on their habits
- Comparison - given a few buildings which use the service, calculate the energy/water/etc. consumption statistics and give feedback to the user e.g. whether they consume more or less energy than average. Analytics has already been done before, but from my research, existing systems only perform them within each house.
- Suggestion - if the lights are on for a long time and are consuming more energy than they should, ask the user to consider switching light bulbs, for example. Side note: It would be possible to monetize this via advertisements since companies can advertise their energy-saving hardware alternatives.
- Central control - If the user wishes to automate both the home and the office, for example, it would be very convenient for them to be able to do so from a single web service in a single session (as in login session).
- I'll add more if I come up with more ideas.
In order for us to achieve them, however, we may need to re-think what kind of architecture we should use, since it puts the focus on data-gathering and analysis rather than actual control - there are much better controlling solutions out there than what we can possibly implement. Maybe two RPis to control two different "houses", and maybe limit ourselves to just controlling DC motors, lights and sensors.
- ↑ toptenreviews.com - Home automation systems review
- ↑ store.homeseer.com - Feature and price comparison
- ↑ 3.0 3.1 www.myx10.com - FAQ
- ↑ www.myx10.com - Screenshots
- ↑ www.x10.com/activehomepro www.x10.com - Main page
- ↑ www.x10.com/activehomepro/timerdesigner www.x10.com - Timer desginer UI
- ↑ www.openremote.com - Designer's page
- ↑ www.opensourceautomation.com - Main page
- ↑ github.com - Open Source Automation source code