Home automation made simple again
There are a lot of different platforms for home automation currently available. Most of them however have quite a few problems. One of the main problems is the way in which these platforms limit themselves to only work with a certain set of devices. Even when the platform is able to work with a wide variety of devices, adding new ones still requires the developers of the platform to manually update it. A good example of this is the struggle most platforms have with the new Ikea smart lighting system. All, or at least all well known, platforms currently available require an update to handle the smart hub hardware used for these lights.
With the Hestia system we strive to provide a platform that can extend to new types of devices without requiring structural changes. In the end it should be possible for consumers to create their own plugins for the system. Using these plugins the Hestia platform will also be able to control privately developed peripherals.
The goal of this project is to develop an easily extendable, secure platform that allows our user to control and setup their home automation in a breeze. All devices that have a way of being remotely controlled should be able to work with the system. This includes, but is not limited to, locks, lights and refrigerators.
The Hestia platform is built from three different components; the client, the server and the peripherals. A peripheral is any device which can be remotely controlled using the Hestia system. The client and the peripherals are centered around the server and depend on it for communicating with each other.
Using the client, the user can request actions that a peripheral should perform. To use a peripheral it should first be added to the platform. One of the main strengths of the Hestia platform should be that it is easy to create plugins, these plugins are specific for each kind of peripheral and define a way to interact with the peripheral. It should be possible for people outside the development team to define these plugins for their peripheral. The user of our platform should then simply be able to select a plugin and add it to the system to communicate with the peripheral.
All information regarding the plugins and peripherals is managed in the server. This is where the clients send its requests. The server is responsible for translating and forwarding the incoming requests to the peripherals.
To run the server on the Raspberry Pi (or any other debian based system) you can use the following command to download and install the server.
wget -O - https://raw.githubusercontent.com/RUGSoftEng/2017-Hestia-Server/master/setup_and_run_on_rasberry_pi.sh | bash -