Installez Home-assistant

Ce billet date de 2017. Beaucoup de choses ont changé depuis. Il est conseillé de passer par Home assistant OS. Comme vu ici https://devotics.fr/installer-configurer-utiliser-hass-io/

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]

Accueil Home assistant
Accueil Home assistant

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.

Menu Ovh
Menu Ovh
  • 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 »
DynHost Ovh
DynHost Ovh
  • 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 »
DynDNS Bbox
DynDNS Bbox
  • Dans la partie « NAT & PAT » cliquez sur « AJOUTER UNE REGLE »
  • Entrer la première règle en vous inspirant de l’impression écran ci-dessous (En choisissant votre raspberry comme équipement réseau cible)
  • NAT Bbox
    NAT Bbox

    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]

  • Exécutez la commande

  • [shell]sudo apt-get update[/shell]

  • Enfin lancez cette dernière commande

  • [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 !

    14 réponses

    1. jeremy dit :

      bonjour Quentin,

      je n’arrive pas à accéder au fichier configuration.yaml pour le modifier , peut tu m’expliquer comment faire ?

      merci

    2. 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.

      • jeremy dit :

        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/)

    3. Alfred dit :

      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

    4. Jérémy Rocchia dit :

      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

    5. Mickael dit :

      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.)

    6. Gaëtan Klein dit :

      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 ?

    7. Toseba dit :

      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

    8. Patric dit :

      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?

    9. Jack Harper dit :

      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 ?

    1. 31 mars 2021

      […] Installez Home-assistant […]

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.