HomeAssistant : mise en place d’un conteneur Docker
Il y a quelques temps, je vous ai parlé de la mise en place de docker, pour passer à un autre niveau de virtualisation : l’application.
Ayant mis en place de la domotique chez moi, je vous propose aujourd’hui de mettre en place LE système domotique le plus utilisé (au jour de l’écriture) : HomeAssistant, aussi connu sous le nom de Hass.io (la version fournie en distribution et un peu plus user-friendly).
Pour cela, on va se baser sur ce que nous avons mis en place dans le précédent guide.
Fichier docker-compose
Comme vous l’avez vu, on va utiliser docker-compose, qui nécessite l’utilisation d’un fichier docker-compose.yml. Je ne vais pas détailler ici la structure d’un fichier docker-compose ou le YAML (YML).
Pour la mise en place de nos conteneurs, on va stocker les données permanentes dans une arborescence /datastore/conteneur (ce choix est totalement arbitraire). Il faut donc la créer :
$ sudo mkdir /datastore
Maintenant, on crée le répertoire du conteneur :
$ sudo mkdir /datastore/homeassistant
Ensuite, on va éditer (ou créer) notre fichier docker-compose.yml :
$ sudo nano /datastore/docker-compose.yml
La première ligne devra être :
version: '3'
Et la deuxième :
services:
Maintenant, notre environnement HomeAssistant :
homeassistant: image: homeassistant/home-assistant:stable container_name: homeassistant restart: unless-stopped volumes: - /datastore/homeassistant:/config environment: - TZ=Europe/Paris network_mode: host
On écrit le fichier avec CTRL+O puis Entrée et on quitte avec CTRL+X.
Pour détailler un peu, nous avons donc :
– le nom du service : homeassistant
– le nom de l’image à récupérer sur le docker hub avec sa version : homeassistant/home-assistant:stable
– le nom du conteneur (celui qu’on utilisera dans les appels à docker-compose)
– comment va se comporter le conteneur au niveau du redémarrage : tout le temps sauf si il a été arrêté (manuellement ou autre, voir la documentation docker)
– l’endroit où seront stockées les données persistantes de notre conteneur : le répertoire /config mappé sur /datastore/homeassistant
– une variable d’environnement : la timezone, définie sur Paris
– le réseau sur lequel notre conteneur va écouter : ici, il va se « mapper » directement sur l’interface de l’hôte du conteneur
Démarrer le conteneur
Il ne nous reste plus qu’à démarrer notre conteneur HomeAssistant docker :
$ cd /datastore && sudo docker-compose up -d homeassistant
Et le conteneur démarre alors…
Starting homeassistant ... done
On peut, comme toujours, vérifier l’état du conteneur avec les logs :
$ sudo docker logs homeassistant
Une fois le conteneur démarré (cela peut prendre un peu de temps), vous pouvez accéder à votre nouveau conteneur via l’adresse de votre hôte et le port 8123 :
http://192.168.x.x:8123
Vous arriverez ensuite sur cet écran, vous invitant à créer votre identifiants pour le premier lancement :
Vous voici fin prêt pour débuter l’aventure HomeAssistant !
Exemple complet après création du fichier docker-compose.yml
version: '3'
services:
homeassistant:
image: homeassistant/home-assistant:stable
container_name: homeassistant
restart: unless-stopped
volumes:
- /datastore/homeassistant:/config
environment:
- TZ=Europe/Paris
network_mode: host