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. Its main focus is on privacy and local control. It is free software and supports a wide range of devices.
As of May 2020, Home Assistant supports over 1600 modular add-ons or plug-ins with system integrations to different IoT(Internet of Things) technologies.
Actions include remotely or locally controlling climate, lighting, appliances, and entertainment systems.
It can be triggered by automation and scripts, mobile apps, and voice commands, or it can be controlled via the Home Assistant web-based user interface, the front end.
The Home Assistant project began in September 2013. The core functionality was first published on GitHub in November 2013.
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 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 is listed based on the number of active contributors that year (as the project had contributions from 62,000+ contributors during 2019)
Features
One major feature of the Home Assistant is that it acts as a nerve center for smart home controllers. It attributes all the common functions that you would expect from a home automation platform.
Its functions include controlling simple advanced building automation, managing security alarms and home security systems, and implementing smart home technology.
The home assistant provides action and script rule-based systems for creating automation, scheduling tasks, notifications and voice control, and handling time and event conditions.
It also provides functions for direct and on-demand actions. It is implemented as on-premises software.
It can connect directly or indirectly to IoT (Internet of Things) local devices, cloud services from various 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
- Bluetooth
- Amazon Alexa
- Google Assistant
- Google Cast (Google Chromecast)
- Ecobee
- Google Home
- Google Nest
- IFTTT
- IKEA Smart Home
- KNX, Xiaomi Smart Home (Mi Home)
- Philips Hue
- MQTT
- SmartThings (Samsung)
- Sonoff (third-party firmware, eWeLink, and official DIY-mode)
- Sonos
- Tuya Smart
- X10
- Zigbee
- Z-Wave
Including several smart locks from Yale/August and others, as well as many other third-party system integrations.
Installation
The Home Assistant Core is a Python program that can be deployed on servers running various operating systems. However, the name has also been used to refer to a virtual appliance.
It is an official software appliance installation package combining the Home Assistant Core and various other 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 front end. The interface is otherwise not present in a Home Assistant Core-only setup.
Discovery and Configuration
After installation, Home Assistant scans your discovered 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.
Security
Home Assistant’s on-premises software’s focus on local control and nature, plus its open-source application status, have been described as beneficial to the platform’s security.
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-on Duck DNS, which integrates Let’s Encrypt or Let’s Encrypt.
To reveal your instance online, use an SSH tunnel or a VPN. Make sure to expose the port used by your router.