Installez Home-assistant
Si vous avez suivi le premier billet vous devriez avoir un Raspberry Pi prêt à être utilisé. Je vous propose aujourd’hui de mettre en place un outil qui permettra de centraliser, de tracer d’unifier et d’automatiser le contrôle de nos appareils.Avec une rapide recherche sur internet il est facile de trouver des solutions pouvant nous aider.
- https://gladysproject.com/fr/
- https://github.com/home-assistant/home-assistant
Dans mon cas, j’ai choisi d’essayer home-assistant car il semble convivial, simple, complet, ouvert, il a l’air de bien répondre aux besoins et la communauté semble assez active. Voyons si ce choix est judicieux!
Installez home-assistant
L’installation est rapide et simple. En effet, cet outil est codé en python, il suffit de lancer la commande suivante:
sudo python3 -m pip install homeassistant
Python3 est embarqué nativement avec la version de Raspbian que j’ai choisi. Si ce n’est pas votre cas vous pouvez l’installer en tapant
sudo apt-get install python3
A présent démarrons le programme
[shell]hass –open-ui[/shell]
Une fois l’application démarrée, vous devriez pouvoir accéder à une interface web similaire à celle ci-dessous en entrant l’adresse
[shell]http://addresse_ip_du_raspberry:8123[/shell]
Si vous souhaitez une installation comprenant MQTT, Z-Wave et Open-Zwave Control Panel il existe un script d’installation automatisé. Pour l’utiliser, il vous suffit de remplacer la commande
[shell]sudo python3 -m pip install homeassistant[/shell]
par
[shell]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[/shell]
Cependant attention, l’installation est assez longue et certains éléments peuvent différer de ce que nous avons vu. Il est donc possible que les commandes que nous vous proposons par la suite ne soit pas exactement les mêmes si vous choisissez cette méthode. pour plus d’info rendez-vous ici.
Configuration de base
Avant d’aller plus loin, il est important de comprendre comment paramétrer cette solution.
Home assistant est entièrement articulé autour d’un fichier central de configuration
[shell]configuration.yaml[/shell]
Vous pouvez le modifier grâce à la commande suivante:
[shell]vi ~/.homeassistant/configuration.yaml[/shell]
Attention, toutes modifications de ce fichier nécessite un redémarrage de l’application afin qu’elles soient prises en compte.
Retenez bien les informations de ce chapitre elles nous seront utiles dans la suite du billet.
Votre système accessible partout
Pour le moment, le système n’est accessible que via votre réseau local. Nous allons mettre en place les éléments qui nous permettront d’ouvrir notre système.
Définir un mot de passe
Avant d’aller plus loin, nous allons mettre en place un mot de passe. Ouvrez le fichier de configuration et rendez vous au niveau du bloc de configuration http.
Vous y trouverez une ligne password qu’il suffit de dé-commenter et de compléter.
[js]http:
api_password: VOTRE_MOT_DE_PASSE[/js]
Configuration d’un nom de domaine
Pour accéder à notre installation nous avons besoin de passer par votre box. Hors, la plupart du temps, l’adresse Ip de cette dernière change régulièrement. Pour pallier à ce problème et pour nous rendre la vie plus simple nous allons mettre en place un dyndns qui nous permettra d’avoir une URL simple.
Tout d’abord, il est nécessaire de choisir une solution nous fournissant:
- un nom de domaine
- un service de dns dynamique
Il existe plusieurs alternatives gratuites, mais plus ou moins limitées. On notera notamment no-ip, Duckdns, dtdns, etc.
D’autres alternatives payantes offrent généralement plus de services et de flexibilité. Dans mon cas j’ai choisi ovh car j’ai un nom de domaine chez eux et qu’ils offrent un service de dns dynamique.
Si vous optez pour la même solution rendez vous dans votre espace client. Là-bas vous pourrez administrer le domaine que vous souhaitez.
- Sélectionnez l’onglet DynHost
- Créez un identifiant grâce au bouton prévu sur la droite de l’écran
- Cliquez sur « Ajoutez un DynHost »
- Renseignez un nom de sous domaine et l’ip de votre box (que vous pouvez déterminer facilement grâce à des sites comme celui-ci).
Voilà c’est fini ! Cependant, si vous tentez d’utiliser l’adresse que vous venez de créer elle ne devrait pas marcher pour le moment.
Règle NAT
Nous allons maintenant mettre en place des règles de NAT. Leurs paramétrages sont liés à votre box. Nous allons voir comment les mettre en place sur une Bbox, si vous possédez un autre modèle vous trouverez très facilement des instructions adaptées à votre cas sur internet.
- Tapez dans votre navigateur l’adresse 192.168.1.254
- Entrez votre mot de passe ou générez en un via le lien « mot de passe oublié »
- cliquez sur « SERVICES DE LA BOX » et « Redirection de ports »
En modifiant la deuxième règle et en redirigeant le port 80 sur le port 8123 de votre raspberry vous pourrez dès maintenant tester votre nom de domaine défini plus haut. Une fois le test effectué n’oubliez pas de remettre la règle comme ci-dessus.
Let’s encrypt
Afin d’avoir un système un minimum sécurisé nous allons mettre en place un certificat. Pour ma part, j’ai choisi la solution let’s encrypt car elle est gratuite et qu’elle dispose d’un système de renouvellement automatique. En effet, tout certificat a une date de « péremption ». Pour cette solution la durée de vie est de 90 jours.
Dans un premier temps nous allons installer les outils nécessaires.
- Editez le fichier /etc/apt/sources.list.d/raspi.list
- Ajoutez la ligne
[shell]deb http://ftp.debian.org/debian jessie-backports main[/shell]
[shell]sudo apt-get update[/shell]
[shell]sudo apt-get install certbot -t jessie-backports[/shell]
Maintenant que tous les outils sont installés nous allons pouvoir générer notre certificat grâce à la commande suivante:
certbot certonly --standalone \ --standalone-supported-challenges http-01 \ --email votre_email@email.com \ -d votre_domaine.com
Vous devriez avoir généré votre certificat. Avant d’aller plus loin nous allons vérifier que le renouvellement automatique fonctionne.
Lancez la commande
[shell]sudo certbot renew –dry-run[/shell]
Si celle-ci réussie vous ne devriez pas avoir de problème de renouvellement lors de la fin de validité du certificat.
Tout est en place, il ne nous reste plus qu’à indiquer à home-assistant l’emplacement des fichiers générés par certbot. Rendez vous dans le fichier de configuration et identifiez la partie http que nous avons manipulé tout à l’heure. Ajoutez les items ssl_certificate et ssl_key en vous inspirant de l’exemple ci-dessous.
[js]http:
api_password: VOTRE_MOT_DE_PASSE
ssl_certificate: /etc/letsencrypt/live/votre_domaine/fullchain.pem
ssl_key: /etc/letsencrypt/live/votre_domaine/privkey.pem[/js]
Après un redémarrage de l’application vous devriez normalement pouvoir accéder à votre système en https via l’URL définie plus haut.
Conclusion
Votre home assistant est en place et accessible de partout ! Il ne vous permet pas encore de faire grand chose mais la découverte automatique de périphérique devrait déjà vous permettre de jouer. Nous verrons très bientôt comment aller plus loin avec cet outil.
Merci de m’avoir suivi et n’hésitez pas à utiliser les commentaires si certaines étapes ne sont pas claires. Dans tous les cas à bientôt pour en savoir plus !
Cadre en informatique dans une multinationale je suis un touche-à-tout passionné de nouvelles technologies.
bonjour Quentin,
je n’arrive pas à accéder au fichier configuration.yaml pour le modifier , peut tu m’expliquer comment faire ?
merci
Bonjour,
Si tu as installer Home Assistant et non Hass.io, à l’emplacement sélectionner pendant l’installation. Dans le cas d’une installation de type Hass.io c’est un peu différent, il est nécessaire de passer par l’add-on samba ou ssh qui donnerons un accés direct aux fichiers de configurations.
je ne vois pas la différence entre hass.io et home assistant, je passe par python sur mon mac, après je lance via Terminal : hass –open-ui ensuite pour suivre ton tuto je ne sais pas quoi faire pour ouvrir le fichier configuration.yaml ( peux tu m’expliquer vi ~/. pour homeassistant/configuration.yaml
j’espère être claire 😉
vi est un éditeur de texte très léger très souvent utilisé. La commande ci-dessus a comme but d’ouvrir le fichier pour le modifier.
Cette commande ne doit pas être lancée via une console python mais au niveau du système (C’est pour cela qu’il y a de petites différences entre Home Assistant et Hass.io le second étant dans un conteneur Docker). Depuis quelques temps, Il y a une alternative sympathique pour éditer ces fichiers de configurations via un éditeur web, c’est peut être une meilleur solution dans votre cas (voir ici https://home-assistant.io/docs/ecosystem/hass-configurator/)
Bonjour Quentin,
Quelle installation choisir Home Assistant ou Hass.io ?
moi j’ai essayé les deux mais pas évident.
puis-je vous soliciter pour avancer plus vite ?
merci du retour
cdt
@lfred
bonjour
je n’arrive pas à lire ce qu’il y a sur votre image pour la configuration des ports. Pouvez vous l’ecrire s’il vous plait ?
Merci
Jérémy
Bonjour,
Il y avait en effet un petit problème de taille d’image suite à une mise à jour du site. Je viens de corriger ce point.
Bonne journée
Bonjour,
J’ai un problème à ce moment là:
certbot certonly –standalone \ –standalone-supported-challenges http-01 \ –email votre_email@email.com \ -d votre_domaine.com
J’ai ce retour:
certbot [SUBCOMMAND] [options] [-d DOMAIN] [-d DOMAIN] …
Certbot can obtain and install HTTPS/TLS/SSL certificates. By default,
it will attempt to use a webserver both for obtaining and installing the
cert.
certbot: error: unrecognized arguments: –standalone-supported-challenges http-01 –email monmail@gmail.com -d mon_domaine.com
Ma question:
mon_domaine.com doit être du type mon_domaine.fr ou alors http://www.mon_domaine.fr ou encore sous-domaine.mon_domaine.fr ??
merci,
car après j’ai cette erreur du coup:
pi@raspberrypi:~ $ sudo certbot renew –dry-run
Saving debug log to /var/log/letsencrypt/letsencrypt.log
** DRY RUN: simulating ‘certbot renew’ close to cert expiry
** (The test certificates below have not been saved.)
No renewals were attempted.
** DRY RUN: simulating ‘certbot renew’ close to cert expiry
** (The test certificates above have not been saved.)
Bonjour,
J’ai bien suivi toutes ces étapes mais j’ai un souci au niveau de la certif. Quand je lance le programme letsencrypt, j’ai ce retour :
authorization result : invalid
type”: “urn:acme:error:unauthorized”,**
status 403
create certifacte failed
Invalid reponse from http://nomdedomaine.ovh…
Auriez vous une idée ?
Bonjour,
Avez vous bien ouvert votre port 80 ? En effet le système utilise ce port afin de vérifier que tout est en ordre.
Bonjour,
Pour ma part, j’ai rencontré la même erreur pour la commande certbot, aussi j’ai résolu mon problème par ce lien https://www.home-assistant.io/docs/ecosystem/certificates/lets_encrypt/
Néanmoins pour ceux qui ont encore le problème, essayer la commande ./certbot-auto certonly –standalone –preferred-challenges http-01 –email your@email.address -d examplehome.duckdns.org et faites partager votre retour.
Bon courage et merci pour le tuto
Bonjour,
je suis en panne : la commande « sudo apt-get install python3 » me donne 2 failures :
Failed building wheel for cffi
et
Command « /usr/bin/python3 -u -c « import setuptools, tokenize;__file__=’/tmp/pip-build-w15djb9v/cffi/setup.py’;f=getattr(tokenize, ‘open’, open)(__file__);code=f.read().replace(‘\r\n’, ‘\n’);f.close();exec(compile(code, __file__, ‘exec’)) » install –record /tmp/pip-zcdme4uo-record/install-record.txt –single-version-externally-managed –compile » failed with error code 1 in /tmp/pip-build-w15djb9v/cffi/
Auriez-vous une idée?
Bonjour, je suis aussi chez ovh, j’ai suivi votre guide, mais je ne parvient pas à accéder à hassio depuis mon url perso. Pourriez-vous m’aider ?