Home Assistant (HA) is a home automation system that allows you to monitor, control and automate various devices and sensors in your home, to make it a Smart Home. It allows you to integrate products from various manufacturers and includes support for Do-It-Yourself (DIY) solutions.
This series of posts is based on information curated from multiple sources and previous attempts at installing Home Assistant on a BeagleBone Black single board computer. Most of the installation examples for Home Assistant on the web are for Raspberry Pi 3 or higher and are usually a pre-packaged install. I chose the BeagleBone Black as I had one available and because I wanted to learn what is really involved when you don’t necessarily use the recommended hardware. I did originally install Home Assistant on the original BeagleBone, but changed to the BeagleBone Black for later installs mainly due to RAM limitations of the original BeagleBone (256MB vs 512MB on the Black).
Components
My Home Assistant installation uses the following components:
- Philips Hue hub and lights (Zigbee based)
- TP-Link smart switch
- Google Home and Mini and Chromecast
- IKEA Tradfri Zigbee system lights, dimmers and switches
- JBL Linkview with Google Assistant
- BeagleBone Black
- Texas Instruments CC2531 USB dongle for Zigbee
- Bosch BME280 Environment Sensor breakout board
- DIY controllers and sensors
Overview
We will start with a clean install of the latest Debian Linux which can be obtained from the BeagleBoard website. We will use the recommended image without the graphical desktop, as this will be a headless (no keyboard, mouse or display) installation. We will use SSH (secure shell) to login remotely to perform any operations. I would suggest using a 32 GB microSD card for storing the image, to give us enough space for logs and applications.
Then we will have to upgrade the Python version on the BeagleBone Black. The current Debian image ships with Python version 3.7 but Home Assistant seems to want newer versions of Python with each new release of Home Assistant. To increase the longevity of our Home Assistant installation, we will install a newer Python version ( I used version 3.8.7).
Once we have Python installed, we will create a Debian user to run Home Assistant, and a Python virtual environment in which we will run Home Assistant. Then we will install and configure Home Assistant. Home Assistant will then discover compatible devices (e.g. sensors, switches, lights) and systems (called components, e.g. Philips Hue, Ikea Tradfri, Google Home) to work with.
We will now have a basic home automation system that we can further configure and create automations (turn on the lights at dusk) and scenes (dim the living room lights when watching a movie). All these steps are the result of consulting and trying the various procedures and steps available on the internet for Home Assistant, Python, Debian and BeagleBone Black.