Intallation (échouée) de Home Assistant sur Excito B3

Après une tentative ratée avec OpenHAB, cette fois on tente d’installer Home Assistant sur un de mes Excito B3.

Home Assistant

C’est très clairement la solution Open-Source qui fait le plus de buzz. Personnellement j’adhère peu car codé en Python et j’apprécie peu ce langage de programmation. Mais bon…

Méthode d’installation

Home Assistant propose différentes méthodes d’installation. Vu qu’on est sur du périphérique exotique, pas question de choisir l’installation de l’OS Home Assitant. Le matériel étant ancien (arm v5) impossible d’utiliser une solution exploitant un conteneur Docker car les images disponibles qui sont pour du arm v6 ou v7. Adieu donc les solution conteneur et supervised.

Bon ben finalement, il ne reste plus vraiment de choix : Home Assistant Core.

Et vu que cette solution réduit sacrément les fonctions disponibles (à en croire la documentation) ben on va rester en mode prototype un moment avant de décider que ça peut faire l’affaire.

Installation

Dépendances système

Gross dépendance : Python 3

apt install -y python3 python3-dev python3-venv python3-pip bluez libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff6 libturbojpeg0-dev tzdata ffmpeg liblapack3 liblapack-dev libatlas-base-dev

Home Assistant

La procédure suggère la création d’un utilisateur dédié

sudo useradd -rm homeassistant

Puis une installation dans l’arborescence dédiée

sudo mkdir /srv/homeassistant
sudo chown homeassistant:homeassistant /srv/homeassistant

On peut donc se préparer

su - homeassistant
cd /src/homeassistant

A partir de là on va tenter d’installer Home Assistant en tant que wheel, dans un Virtual Env, Python oblige.

python3 -m venv .
source bin/activate
python3 -m pip install wheel
pip3 install homeassistant==2024.2.2

Mais Python étant Python, certaines des dépendances ne sont pas en Python et vont nécessiter Rust, donc on installe le compilo.

apt install rustc

Et comme ça ne suffit pas, un peu plus loin ça échoue par manque de pkg-config

apt install pkg-config

Échec

Mais après des heures et des heures d’essais puis d’échecs (oui, sur un B3 avec disque mécanique, c’est très long) il faut se rendre à l’évidence : ça ne fonctionnera pas.

En effet, une des dernière tentative s’est soldé par un échec à la compilation d’un module nommé pyo3 codé en Rust et échouant sur l’absence de AtomicI64. Je ne cherche pas des masses car je me doute que, vu son nom, ce type n’existe pas sur une architecture 32 bits.