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.
Sommaire
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]