Jusqu'à présent j'utilisais Home Assistant à partir d'une installation sur mon NAS Synology DS 713+ mais suite aux dernières évolutions (disparition de Hassio et du "superviseur", utilisation uniquement possible via Docker et non pas avec une VMM car mon NAS ne le supporte pas) et de profiter d'une version la plus complète possible avec l'ajout facilité d'extensions, j'ai décidé de tenter le coup sur un Raspberry Pi 4 avec 4 Go avec un disque SSD de récupération dans un boîtier pour contourner les possibles problèmes avec une carte microSD.
La version utilisée sera donc Home Assistant Operating System (anciennement HassOS) : https://github.com/home-assistant/operating-system.
I- Préparation du Raspberry Pi 4
Tout d'abord, il faut veiller à mettre à jour le firmware du Raspberry Pi 4 car si on a un appareil de première génération, le boot en dehors de la carte SD n'était pas implémenté. J'ai donc décidé de réaliser une installation de Home Assistant sur une carte SD afin de pouvoir faire tous les réglages du firmware et du boot à partir du même système et ensuite de le dupliquer sur le disque SSD.
En fait, Home Assistant sur Raspberry Pi 4 n'est pas basé sur Raspberry Pi OS et il n'est donc pas possible de mettre à jour le firmware à partir de Home Assistant Operating System. Il faut donc utiliser une distribution Raspberry Pi OS (ex Raspbian) pour régler un boot sur USB.
Sources :
On démarre donc son Raspberry Pi 4 avec une carte microSD contenant un système basé sur Raspberry Pi OS et on lance les commandes suivantes :
sudo apt update
sudo apt full-upgrade
sudo rpi-update
sudo reboot
sudo rpi-eeprom-update -d -a
sudo reboot
sudo raspi-config
Une fois dans Raspi-Config -> On choisit "6- Advanced Options" -> "A7 Bootloader Options" -> "E1 Latest" -> choisir NO pour éviter le reset de la ROM de Boot !!! -> On revient sur l'écran principal et on choisit encore "6 Advanced Options" -> "A6 Boot Order" -> "B2 USB Boot" -> On revient sur l'écran principal et on choisit "Finish" -> On répond "No" pour éviter un reboot. -> On éteint le Raspi avec la commande :
sudo halt
On va pouvoir maintenant préparer Home Assistant.
II- Installation de Home Assistant Operating System
Sources :
Pour tester au lieu d'installer le système directement sur le disque SSD, j'ai copié le système sur une carte microSD avec Balena Etcher (qui existe sous forme d'une appimage pour GNU/Linux) en se basant sur le lien précédent. Il suffit ensuite d'insérer la carte microSD dans le Raspi, de le brancher à une prise RJ45 et de le démarrer. Ensuite, via son navigateur on se connecte à l'adresse http://homeassistant.local:8123/. Cette étape est très rapide : en 10-15 minutes on a une box domotique fonctionnelle !
Une fois qu'on a un système fonctionnel, on peut alors copier cette carte microSD sur le disque SSD avec Balena Etcher encore. Une fois le clonage réalisé (30 minutes pour une carte microSD de 64 Go), il ne reste plus qu'à brancher son disque SSD sur le Raspi et de l'allumer. Ça y est on a une box domotique parfaitement fonctionnelle.
Problèmes d'erreur 401 :
Pour les addons File Editor et le terminal SSH, pour se débarraser de l'erreur 401 dans Firefox, il faut désactiver temporairement la détection des trackers (icône en forme de bouclier dans la barre d'adresse).
III- Modification du port par défaut de Home Assistant et de son adresse IP
Il est possible de modifier le port par défaut de Home Assistant (j'ai eu besoin de le faire à cause du conflit avec mon Home Assistant sur le NAS). Pour cela il faut rajouter ces lignes (en respectant l'indentation) dans le fichier "configuration.yaml" si on le veut sur le port 8125 :http:
server_port: 8125
Remarque : Sous Android, il est possible de cloner une application pour disposer de différents comptes. C'est ce que j'ai fait pour me connecter aux 2 instances de Home Assistant (celle du NAS et celle du Raspberry Pi 4).
Il est possible de modifier l'adresse IP du serveur HA directement dans l'application en allant dans le menu "Supervisor" (1) -> Onglet "Système" (2) -> Cliquer sur "Change" dans l'adresse IP (3) :
IV- Accès extérieur sur Home Assistant
a- Paramétrages du NAS Syno sous DSM 7
Pour donner accès au Raspberry Pi de l'extérieur, il est nécessaire de l'indiquer dans DSM 7, en allant dans "Panneau de Configuration" -> "Portail de connexions" -> Onglet "Avancé" -> cliquer sur le bouton "Proxy inversé" -> cliquer sur le bouton "Créer" et d'indiquer par exemple les indications dans la capture ci-contre.
Pour le nom d'hôte de la source, on indiquera le nom de domaine de notre accès en synology.me.
Ensuite il faut se placer sur l'onglet "En-tête personnalisé" et appuyer sur le bouton "Créer" et sélectionner "WebSocket". Ceci permettra de créer 2 en-têtes "Upgrade" et "Connection" :
ATTENTION (j'ai pas mal galéré avant de trouver où se situait le problème... alors que je l'avais déjà fait et indiqué sur cette page...) : Si on ne fait pas ça, on obtiendra ce message d'erreur lorsqu'on essaiera de se connecter dans Home Assistant : "Login attempt or request with invalid authentication from xxxxxxxxx".
Mais tout ceci n'est pas suffisant car si on se connecte via cette adresse, on aura une page d'erreur "400" qui est due aux protections de Home Assistant.
b- Paramétrages dans Home Assistant
Source :
- https://www.home-assistant.io/integrations/http
- https://community.home-assistant.io/t/solved-unable-to-connect-to-home-assistant-from-wan-duck-dns-nginx/320752
Il faut rajouter ces lignes dans le fichier "configuration.yaml" de Home Assistant en remplaçant la ligne "- Adresse IP du NAS Syno" par l'adresse réelle du NAS :
http: server_port: 8125 use_x_forwarded_for: true trusted_proxies: - Adresse IP du NAS Syno ip_ban_enabled: true login_attempts_threshold: 5
V- Installation du Home Assistant Community Store (HACS)
Source : https://hacs.xyz/docs/installation/installation
Il est nécessaire de disposer d'un compte Github.
VI- Récupération du taux de CO2 à partir de mon boitier Neko++ (en construction)
Je dispose d'un boîtier Neko++ que je me suis fabriqué pour mesurer le taux de CO2 d'une pièce. Ce boîtier permet de récupérer via Bluetooth les données mesurées (taux de Co2, taux d'humidité relative et température) grâce à une application sur ordiphone. Voir cette page pour plus de détails.
Il serait intéressant de récupérer les données émises dans Home Assistant.
Pour tester le Bluetooth, dans le terminal SSH de Home Assistant, on peut taper ces commandes :
bluetoothctl
scan on
VII- Gestion des onduleurs
Dans mon installation, je possède 2 onduleurs Eaton Protection Station 800 :
- 1 relié en USB au Raspberry Pi 4 hébergeant Home Assistant situé dans le bureau.
- 1 relié en USB au NAS Synology 713+ situé dans le salon.
J'aurais souhaité les monitorer tous les 2 afin par exemple pouvoir être informé de coupures de courant. Pour l'instant, je n'ai été capable que de suivre l'onduleur relié au RPI.
Sources :
- https://www.smarthomebeginner.com/nut-sensor-on-home-assistant-synology-ups/
- https://www.canaletto.fr/post/home-assistant-and-ups
- https://diktiosolutions.eu/en/synology/synology-ups-nut-en/