Installer Home Assistant (HASS) sur un Orange Pi fonctionnant sous Armbian • Domotique et objets connectés à faire soi-même

Home Assistant est un serveur domotique entièrement développé dans le language Python, il est donc possible de l’installer sur un Orange Pi. Pour ce tutoriel, j’ai utilisé un Orange Pi+ 2e équipé de 16Go de mémoire eMMC fonctionnant sour Armbian. Home Assistant a beaucoup évolué en un an. Il est maintenant possible de l’installer (ou le tester) dans un environnement virtuel. Il est également possible de le tester grâce à Docker sans aucune (ou presque) installation. Pour cela, lisez l’article comment tester des logiciels domotiques facilement avec Docker.

Installer Home Assistant sur Armbian

Depuis décembre 2016, il est recommandé d’installer HASS dans un environnement Python virtuel. Cette installation permet d’isoler le serveur domotique du reste de la distribution Linux. Cette configuration permet d’augmenter la sécurité du système. En contrepartie, la maintenance est un peu plus compliquée (et l’installation, si elle est faite manuellement). Il est possible d’installer manuellement Home Assistant en suivant ce tutoriel. Je vous conseille toutefois d’utiliser le script d’installation All-In-One développé pour la distribution Raspbian du Raspberry Pi.

Que fait le script All-In-One Installer ?

Le script All-In-One (détaillé ici) s’occupe d’installer et de configurer entièrement le serveur domotique HASS :

  • Créé tous les répertoires nécessaires
  • Créé les comptes et groupes nécessaires
  • Installe les dépendances (Python, Linux)
  • Configure un environnement virtuel Python pour exécuter Home Assistant et ses composants indépendamment du compte administrateur (meilleure sécurité) 
  • Installe le broker Mosquitto avec support Web (ports 1883 et 9001)
  • Créé et installe Python-openzwave dans l’environnement virtuel Home Assistant
  • Créé le panneau de contrôle openzwave-control-panel dans /srv/homeassistant/src/open-zwave-panel 
  • Configure le service SystemD pour que HASS se lance automatiquement au démarrage du système

Installer HASS avec le script All-In-One

Connectez-vous à votre Orange Pi (ou Raspberry Pi) en SSH avec un compte administrateur (root) et exécutez la commande suivante qui lance le script d’installation adapté au Raspberry Pi (et qui fonctionne également sans problème sur Orange Pi).

curl -O https://raw.githubusercontent.com/home-assistant/fabric-home-assistant/master/hass_rpi_installer.sh && sudo chown pi:pi hass_rpi_installer.sh && bash hass_rpi_installer.sh

L’installation peut prendre du temps (surtout si le système doit être mis à jour). Comptez environ 1 heure sur un Orange Pi+ 2e.

Commandes utiles à connaître

A la fin de l’installation, le système va redémarrer automatiquement. Home Assistant n’est pas une foudre de guerre au démarrage. En fonction de la configuration, HASS peut mettre quelques minutes à démarrer. Au premier démarrage, il peut aussi y avoir quelques dépendances à installer. Il faut donc être patient.

Connaître l’état du serveur avec la commande journalctl

Comme HASS démarre automatiquement au démarrage, on est (un peu) en aveugle. Il est possible de connaitre l’état du serveur à l’aide de plusieurs commandes Linux. Tout d’abord on peut savoir l’état du serveur avec la commande systemctl. La commande suivante permet de connaître l’état du serveur (son statut) ainsi que d’éventuelles erreurs dans le fichier de configuration.

sudo systemctl status home-assistant

En remplaçant l’argument status , la commande systemctl permet également de redémarrer le serveur (restart) ou de l’arrêter (stop).

La commande journalctl est la commande associée à systemctl qui permet d’afficher le journal d’exécution de celle-ci.

sudo journalctl -fu home-assistant
  • -u permet de spécifier le service
  • -f permet de suivre (follow) en temps réel le journal du service

Tapez CTRL + C au clavier pour interrompre l’execution de la commande.

Suivre le journal home-assistant.log

Enfin, on peut suivre en temps réel le journal (log) de HASS à l’aide de la commande linux tail avec l’argument -f (follow)

tail -f /home/homeassistant/.homeassistant/home-assistant.log

Voilà, c’est terminé. Pour vous connecter au serveur, comme d’habitude, ouvrez un navigateur internet et saisissez l’adresse IP suivi du port 8123. Depuis Armbian, saisissez localhost:8123  dans la barre d’adresse.

http://IP_ORANGE_PI:8123

Mettre à jour Home Assistant

Comme HomeAssistant est exécuté dans un environnement virtuel (et protégé) Python, la procédure de mise à jour est un peu plus compliquée. Connectez vous en SSH à votre Raspberry Pi ou Orange Pi puis exécutez la commande suivante pour changer d’utilisateur

sudo su -s /bin/bash homeassistant

Changer ensuite la source de l’environnement virtuel Python

source /srv/homeassistant/homeassistant_venv/bin/activate

Enfin lancez la mise à jour

pip3 install --upgrade homeassistant

Exécutez la commande exit  pour vous déconnecter du compte homeassistant. La mise à jour est terminée.

Voici un extrait d’une mise à jour (version 0.44.1)

pi@orangepiplus2e:~$ sudo su -s /bin/bash homeassistant
[sudo] Mot de passe de pi : 
homeassistant@orangepiplus2e:/home/pi$ source /srv/homeassistant/homeassistant_venv/bin/activate
(homeassistant_venv) homeassistant@orangepiplus2e:/home/pi$ pip3 install --upgrade homeassistant
Collecting homeassistant
  Downloading homeassistant-0.44.1-py2.py3-none-any.whl (7.0MB)
    100% |████████████████████████████████| 7.0MB 22kB/s 
Collecting pyyaml=3.11 (from homeassistant)
  Using cached PyYAML-3.12.tar.gz
Collecting requests=2 (from homeassistant)
  Downloading requests-2.14.2-py2.py3-none-any.whl (560kB)
    100% |████████████████████████████████| 563kB 216kB/s 
Collecting async-timeout==1.2.0 (from homeassistant)
  Using cached async_timeout-1.2.0-py3-none-any.whl
Collecting pytz>=2017.02 (from homeassistant)
  Using cached pytz-2017.2-py2.py3-none-any.whl
Collecting voluptuous==0.10.5 (from homeassistant)
  Downloading voluptuous-0.10.5.tar.gz (41kB)
    100% |████████████████████████████████| 51kB 372kB/s 
Requirement already up-to-date: pip>=7.1.0 in /srv/homeassistant/homeassistant_venv/lib/python3.5/site-packages (from homeassistant)
Collecting jinja2>=2.9.5 (from homeassistant)
  Using cached Jinja2-2.9.6-py2.py3-none-any.whl
Collecting typing=3 (from homeassistant)
  Using cached typing-3.6.1.tar.gz
Collecting aiohttp==2.0.7 (from homeassistant)
  Using cached aiohttp-2.0.7.tar.gz
Collecting chardet==3.0.2 (from homeassistant)
  Using cached chardet-3.0.2-py2.py3-none-any.whl
Collecting MarkupSafe>=0.23 (from jinja2>=2.9.5->homeassistant)
  Using cached MarkupSafe-1.0.tar.gz
Collecting multidict>=2.1.4 (from aiohttp==2.0.7->homeassistant)
  Using cached multidict-2.1.4.tar.gz
Collecting yarl=0.10.0 (from aiohttp==2.0.7->homeassistant)
  Downloading yarl-0.10.2.tar.gz (127kB)
    100% |████████████████████████████████| 133kB 368kB/s 
Building wheels for collected packages: pyyaml, voluptuous, typing, aiohttp, MarkupSafe, multidict, yarl
  Running setup.py bdist_wheel for pyyaml ... done
  Stored in directory: /home/homeassistant/.cache/pip/wheels/2c/f7/79/13f3a12cd723892437c0cfbde1230ab4d82947ff7b3839a4fc
  Running setup.py bdist_wheel for voluptuous ... done
  Stored in directory: /home/homeassistant/.cache/pip/wheels/04/da/a7/52954cfc62b4a5d72cbdab1eceec279ab7511acaddb00e71e7
  Running setup.py bdist_wheel for typing ... done
  Stored in directory: /home/homeassistant/.cache/pip/wheels/b3/54/d1/d7ad0895b6f57c608afdf3ec5d2339c5d18ffcf2c2e0e0d9aa
  Running setup.py bdist_wheel for aiohttp ... done
  Stored in directory: /home/homeassistant/.cache/pip/wheels/64/25/7b/c11ddc85128d02e901339c5db705a026189f0e485178cffbe5
  Running setup.py bdist_wheel for MarkupSafe ... done
  Stored in directory: /home/homeassistant/.cache/pip/wheels/88/a7/30/e39a54a87bcbe25308fa3ca64e8ddc75d9b3e5afa21ee32d57
  Running setup.py bdist_wheel for multidict ... done
  Stored in directory: /home/homeassistant/.cache/pip/wheels/9a/61/45/1c719c9470d396d05a0f220daa36090e1d0d91c77f7db2ea24
  Running setup.py bdist_wheel for yarl ... done
  Stored in directory: /home/homeassistant/.cache/pip/wheels/5f/0b/0c/952fe41b59c732f5c102d6467446299fe6963be8bd96e933f9
Successfully built pyyaml voluptuous typing aiohttp MarkupSafe multidict yarl
Installing collected packages: pyyaml, requests, async-timeout, pytz, voluptuous, MarkupSafe, jinja2, typing, chardet, multidict, yarl, aiohttp, homeassistant
Successfully installed MarkupSafe-1.0 aiohttp-2.0.7 async-timeout-1.2.0 chardet-3.0.2 homeassistant-0.44.1 jinja2-2.9.6 multidict-2.1.4 pytz-2017.2 pyyaml-3.12 requests-2.14.2 typing-3.6.1 voluptuous-0.10.5 yarl-0.10.2
(homeassistant_venv) homeassistant@orangepiplus2e:/home/pi$ exit
exit
pi@orangepiplus2e:~$

No posts for this criteria.

Avez-vous aimé cet article ?

[Total: 0 Moyenne: 0]