Home Assistant Core Setup on Banana Pi M5

There is no support for BananaPi M5 from Home Assistant OS, which leaves me either the container or the core version. Originally I was going to use the container image, however, it needs too much disk space (7GB was not enough as it maxed out my onboard storage). I went for Home Assistant Core instead, and this post records my journey setting it up.

  1. Install uv (a Python environment manager)
  2. Install latest Python (3.13 at the time of writing), because Home Assistant Core has deprecated the support for older versions of Python
  3. Install Home Assistant Core (official documentation as a reference). I’m using uv to manage the virtual environment (note that I’ll enable ISAL for better performance).
cd /srv/homeassistant/
uv venv pyenv --python 3.13
source pyenv/bin/activate
uv pip install homeassistant==2024.12.3
uv pip install isal  # ISAL for faster gzip and zlib
  1. Install and configure Cloudflare Zero Trust Tunnel (official documentation for remote tunnel). To expose my Home Assistant access to the public Internet, so that I can access it everywhere. Besides, some cloud-based services require that access because they use callbacks (the alternative is to pay for Nabu Casa which is a subscription-based service). Configure the access control in Cloudflare Zero Trust so that only verified emails from a restricted list have access (additional policies can be set for a new application that bypasses any control for cloud services callbacks)
    • Worth noting that the cloudflared add-on cannot be used because Home Assistant Core doesn’t support add-ons.
  2. Setup a new service in systemd for Home Assistant’s hass so that it starts on boot and restarts on failures. I created this file /etc/systemd/system/ha@homeassistant.service (systemctl enable and systemctl start afterwards):
[Unit]
Description=Home Assistant
After=network-online.target
After=network.target

[Service]
Type=simple
User=homeassistant
ExecStart=/srv/homeassistant/pyenv/bin/hass
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.