Selling customized home automation software at license base
As soon as my framework for home automation software is stable (my goal is to realize this in the first half of this year), it will be time to launch the third stage of my rocket. In this stage, a licensing model for custom build applications based on the framework will be introduced.
Selling custom build applications on a license base is also in line with the movements that are going on the software market in general. With the introduction of cloud computing and SaaS, on which software applications more and more rely, many more software companies are moving to licensed base selling models. But to be able to sell custom build software at license base, you should be able to minimize the costs on the custom development part.
For my home automation framework, the only parts left for custom development will be the configuration of modules, the user interface and vendor specific protocols. With the current version of my framework, it will take around two days to implement all supported functionality for the average http based protocol. The framework will take care of queuing, error handling etc., so these techniques do not have to be implemented for each protocol separately taking also away a lot of work.
As most of the efforts will be on the shared part, it might be possible to share these costs over the licenses. A margin will cover in most cases the custom development part. Only clients who like to have complex protocols to be implemented have to take additional custom development fees in account.
A framework for home automation software
The first stage has already been launched and the second one is already stand by. The framework I am creating has as goal to form an easy to extend base for home automation software. It can be extended to collect information from multiple home automation systems, like the functionality already available in eControl.
One of the most important characteristics of the framework is that it’s basic design should be applicable to a broad range of devices, from smart phones to home automation gateways. This is a really big challenge, as all these kind of devices have to deal with different kind of requirements like power consumption, usage of resources and costs on data usage. However, we see, for example with looking at the upcoming Windows 8, that even complete operating systems are now being designed in a way that they can deal with all these kind of requirements.
I will not describe the framework in every detail, but some of the most distinguishing features will be discussed in this blog post. I will begin with the way the framework will handle data.
Home automation systems are build up by multiple devices like lights, climate sensors, multimedia equipment and much more. There could also be involved multiple devices that are meant as interfaces between these devices, like network bridges and serial device servers. The framework will be capable of collecting information from all these systems. Extensions can be made easy on top of basic functionality like error handling, queuing and auto detection mechanisms.
All information collected from the devices, including rooms, scenes etc. that have been configured, will be stored into a cash. Rooms, scenes and other duplicate information will be merged automatically. This collection of data will form a layer between the connections with the home automation systems and the applications on top of it and can be extended with data objects for all kind of devices.
Depending on the type of device, a user interface or other application will be build on top of the data cash. The user interface will also be build using specif patterns making it possible to define it’s design without knowledge about the protocols or any other technical implementation on device level. Applications, like speech recognition, macro engines etc. can also be build on top of the same interfaces, making them usable at multiple home automation systems.
Next to these three layers, other extensions can be made in the form of managers. A manager will be responsible for one specific functionality like data storage, connection management or user interface themes. A connection manager for example will, in case of a smart phone, be responsible for making the choice to connect using a local connection or via Internet. The base for this manager will be the same for all smart phone applications, but implementation will be different as each smart phone OS will have it’s own set of APIs to determine when the devices uses for example a cellular data connection.
The image below gives an abstract view of how all components are related to each other.
I believe that this kind of frameworks will be integrated in all kind of operating systems like Windows and Android. Google is already active on home automation with it’s Android@Home project and the nice video’s in which Microsoft show their vision about the future also make us believe that integration of all devices in home will become a fact.
Integration of home automation frameworks into operating systems will bring home automation to a next level where integration with for example smart grid systems will be realized via apps that can be downloaded and run distributed over multiple devices.
