Why Home Assistant?
Currently in the IoT sector, and more specifically in home automation, there is a wide variety of ecosystems (groups of products from a distributor),which, due to logical market competition, are often not compatible with each other, or need a lot of adaptation to be combined.
In addition, the data contained in these devices is often sent to external servers, controlled by the distributor, to add value (storage, integration with mobile apps, aggregation).
Some people consider this a privacy issue, especially when this fact is not very visible.
Home Assistant is created to address these issues:
– Could we have a single home automation/control centre, compatible with almost all electronic devices?
– Could we make the sending of data to an external server visible? Could we even eliminate it completely?
In order to unify as many devices as possible, Home Assistant tackles the heterogeneity of the market by bringing it to common concepts:
Integration: Home Assistant modules to connect to devices or to obtain data from external sources, e.g. temperature sensor module. The available integrations can be seen at: https://www.home-assistant.io/integrations/
Device: Once the integration has been configured, the device contains what has been detected within the home assistant, i.e. temperature and humidity sensor.
Entity: “Object” that represents a functionality or data of the device: i.e. humidity value.
Automation: Effects that are triggered when a condition is given: i.e. sending a message to a Telegram chat, when a door is opened.
It is in the creation of automations, using entity values, where the real power of home assistant lies.
Because there are endless possibilities, I would like to discuss some examples of functionality, in short sentences, that can be achieved with Home Assistant:
- Switching sockets on and off from a mobile app (Android and iOS).
- Switching lights on and off around the house, only if the sun has gone down, by detecting which room you are moving in.
- Measurement of the total energy leaving a house, calculating in real time the price with PVPC rate.
- Sending a Telegram message when the door of the house is opened.
- Sending a Telegram message when water is detected on the floor under a washing machine.
- Disconnection of sockets at night to avoid static consumption (e.g. of a television).
- Energy control of installations with solar panels.
- Control of radiators to have a single temperature throughout the house.
- Voice notification, via Bluetooth loudspeaker, of changes in the quality of the air in the neighbourhood/city.
A quick look under the bonnet
But what’s going on underneath all this? Let’s take a look.
Home assistant tries to go beyond being an application, to give the whole package:
– An operating system (a linux barebones).
– A supervisor on which an application runs
– The application itself, written in Python, Home Assistant Core
– Native mobile applications
Within home assistant, there is a yaml configuration file (literally, configuration.yaml), so if an integration is not GUI configurable, it can be configured there. An example, with two air quality measurement integrations:
default_config: #Text to speech tts: - platform: google_translate #Air Quality Index air_quality: - platform: opensensemap - station_id: redacted #Waqi air quality sensor: - platform: waqi token: redacted locations: - zaragozaspain (...)
To modify this file, we do not need to leave Home Assistant, as we have options within the graphical interface, installing plugins such as ssh or embedded Visual Studio Code.
Point & Followed
In this article I have tried to give a global overview of what Home Assistant is and how it can be interesting to include it in our lives. In future articles, I would like to explore, in a more advanced way, how to turn it into our favourite home automation dashboard 🙂