Home Assistant is an open-source home automation robotics designed to be the central control system in a smart house or smart home.
The home assistant software is written in python, and Its main focus is on privacy and local control. Also, It is a free software and has a very wide range of device support.
As of May 2020, Home assistant features support for over 1600 modular add-ons or plug-ins with system integrations to different IoT(Internet of Things) technologies.
Actions, such as remotely or locally controlling climate, lighting, appliances, and entertainment systems.
It can be triggered by automations and scripts, mobile apps, voice commands, or controlled via the Home Assistant web-based user-interface, which is the front end.
The Home Assistant project began in September 2013. As of November 2013, the core functionality was first published on GitHub.
As of May 2020, it has over 1930 developers who have contributed to its core. The project has free and open-source companion applications for both iOS (iPhone and iPad) and Android.
Home Assistant was listed as the tenth biggest open source project on GitHub at the GitHub “State of the Octoverse” in 2019.
It listed based on the number of active contributors that year (as the project had contributions from 62,000+ contributors during 2019)
Table of Contents
One major feature of the Home Assistant is that it acts as a smart home controller nerve-center. It attributes all common functions that you would expect from a home automation platform.
Its functions include control over simple advanced building automation, alarm management of security alarms and home security systems, smart home technology, and so on.
The home assistant provides action and scripts rule-based systems for creating automations, scheduling tasks, notifications and voice control, time, and event condition handling. It also provides functions for direct and on-demand actions.
It is implemented as on-premises software and can connect directly or indirectly to IoT (Internet of Things) local devices, cloud services from many different vendors, or local control hubs/gateways/bridges.
Also, It can connect directly or indirectly to other open and closed smart home ecosystems.
It features a modular system integration system with “integration components” (add-ons or plug-ins) for most popular services, devices, and IoT ecosystems, such as:
- Apple HomeKit
- Amazon Alexa
- Google Assistant
- Google Cast (Google Chromecast)
- Google Home
- Google Nest
- IKEA Smart Home
- KNX, Xiaomi Smart Home (Mi Home)
- Philips Hue
- SmartThings (Samsung)
- Sonoff (third-party firmware, eWeLink, and official DIY-mode)
- Tuya Smart
Including several smart locks from Yale/August and others, and many other third-party system integrations.
The Home Assistant Core is a python program that can be deployed on servers running various operating systems, although the name has also been used to refer to a virtual appliance.
It is an official software appliance installation package that combines the Home Assistant Core, with other various tools.
This setup allows the user to run it easily on a single-board computer like a Raspberry Pi, a virtual machine on a hypervisor, and other hardware platforms without setting up an operating system first.
It has a management user interface that can be used from the Home Assistant frontend. The interface is otherwise not present in a Home Assistant Core only setup.
Discovery and configuration
After installation, Home Assistant scans your discovers devices and home network that can be included in the smart home solution.
Users can provide device names and credentials via an administration user interface.
Home Assistant’s on-premises software local control focus and nature, plus the fact that it is an open-source application, have been described as beneficial to the security of the platform.
One major benefit of the Home Assistant is that it is not dependent on cloud services.
The simplest option is to use the Home Assistant cloud by which you also support the founders of Home Assistant if you want secure remote access.
Other options are to use TLS or SSL via the add-ons Duck DNS integrating Let’s Encrypt or Let’s Encrypt.
To reveal your instance to the internet, use an SSH tunnel or a VPN. Make sure to expose the used port in your router.