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

hass --open-ui

 

Une fois l’application démarrée, vous devriez pouvoir accéder à une interface web similaire à celle ci-dessous en entrant l’adresse

http://addresse_ip_du_raspberry:8123
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

sudo python3 -m pip install homeassistant

par

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

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

configuration.yaml

 

Vous pouvez le modifier grâce à la commande suivante:

vi ~/.homeassistant/configuration.yaml

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.

http:
      api_password: VOTRE_MOT_DE_PASSE

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
    deb http://ftp.debian.org/debian jessie-backports main

     

  • Exécutez la commande
    sudo apt-get update

     

  • Enfin lancez cette dernière commande
    sudo apt-get install certbot -t jessie-backports

     

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

sudo certbot renew --dry-run

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.

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

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.

Tu aimes cet article ? Alors partage le Share on Facebook
Facebook
Share on Google+
Google+
Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin
Pin on Pinterest
Pinterest
Share on Reddit
Reddit
Share on Tumblr
Tumblr

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

Laisser un commentaire

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