Paramétrer un Raspberry Pi avec Home Assistant et y accéder depuis n'importe où.
On couvre l'installation complète suivie du paramétrage avec Cloudflare pour rendre votre Home Assistant accessible depuis n'importe où, gratuitement, sans aucun port à ouvrir et en toute sécurité
Introduction
L’arc de production vidéo que je m’apprête à commencer et qui va durer plusieurs semaines sera principalement orienté ESP32. La structure, sans être absolue, sera régulièrement découpée comme suit : une présentation électronique avec montage sur breadboard et un contrôle sur Arduino. Après s’être fait la main sur l’électronique, on transpose le nouveau composant sur une ESP32. On enregistrera et contrôlera l’ESP32 sur un Home Assistant (HA). Et pour finir, si possible, on contrôlera le meme composant, mais directement en mode embarqué avec un écran et menu navigable.
Donc forcement, avec un Home Assistant au cœur de toute une série de vidéos, me voilà en train de poser ma version de tutoriel pour la team SiliciumCorp.
Objectif
L’objectif de ce tuto est de vous permettre d’avoir un Home Assistant correctement configuré comme point de départ, et disposer d’un accès sécurisé depuis l’extérieur sans reposer sur le Home Assistant Cloud à 75 Euros par an.
Ma solution coûtera tout au plus 2$ par an.
Voici la liste des points à couvrir :
- Installation de Home Assistant OS sur un Raspberry Pi.
- Configurer le minimum syndical lors de sa mise en service.
- Presenter l’achat d’un nom de domaine pour contrôler votre HA depuis n’importe où.
- Migrer les DNS de votre nom de domaine sur Cloudflare pour la configuration de celui-ci.
- Sécuriser l’accès à votre HA maintenant que celui-ci va être exposé à tous.
- Finaliser la configuration du HA pour lier un nom de domaine à l’interface de HA.
Configuration
Le nombre de configurations possibles sont très nombreuses. Il a fallu faire un choix. Voici ce qu’il faut pour suivre ce tuto :
- Un Raspberry Pi
- Un nom de domaine
- Un compte gratuit Cloudflare
Dans le futur, je montrerai aussi comment partir d’un simple ordinateur / NAS en configurant un Docker Home Assistant. Mais pour le moment, il faudra raquer un Raspberry Pi pour suivre ce tuto.
Installation
Pour commencer, on partira d’une micro SD vierge ou tout du moins prête à être formatée. Raspberry Pi recommande une micro SD de class 2. Mais on parle de class 2 avec chiffre romain : class II. C’est la classe de vitesse la plus avancée pour le moment à 90MB/sec. Mais autant vous dire que ça raque et que du class I fait totalement l’affaire.
Téléchargez le logiciel Imager, recommandé par Raspberry Pi ici
Ensuite, puisqu’on veut un Home Assistant et non un OS Raspberry Pi générique, naviguez dans “Other specific-purpose OS” > “Home automation” > “Home assistant” > “Home Assistant OS 18.1”
Vient ensuite la section “Storage”. Ici faites bien attention, normalement l’option pour cacher les partitions du système font que vous ne voyez que la micro SD que vous êtes censé avoir raccordé à votre ordinateur. Mais si dans le cas contraire, vous voyez plusieurs items dans la liste, faites attention à celui que vous choisirez.
Quand vous êtes prêts, lancez l’écriture. Cela ne devrait pas durer plus de quelques minutes.
Phase d’enrôlement
Replacez la micro SD dans votre Raspberry Pi, allumez la en la raccordant à une alimentation compatible, et raccordez-la aussi à l’aide d’un cable Ethernet directement à votre box internet.
Après allumage, attendez 10 minutes environ et allez verifier depuis un ordinateur et un navigateur l’URL : http://homeassistant.local:8123
Si toute l’installation s’est correctement déroulée, vous devriez être accueilli par la page d’enrôlement (Etape 1).
- Étape 1 : Accueil de la phase d’enrôlement, n’hésitez pas à changer le langage vers le Français.
- Étape 2 : Création de l’utilisateur administrateur de votre Home Assistant. Le “username” c’est la part utilisée pour vous authentifier. Tandis que “Name” est la part que vous verrez dans vos menus. Choisissez un mot de passe digne de ce nom, car nous allons exposer le service au reste du monde.
- Étape 3 : Saisissez votre adresse. Je recommande de ne pas mettre votre adresse exacte (on ne sait jamais), contentez-vous de juste mettre le nom de votre ville. Cette information permet à certains services comme la météo de vous donner une information appropriée.
- Étape 4 : Choisissez ce que vous souhaitez partager au service de Telemetry de Home Assistant.
- Étape 5 : Cette étape vous montre ce que Home Assistant a déjà réussi a détecté sur votre réseau. Rien à faire. Enrôlement terminé.
Configuration basic
Cliquez sur votre nom d’utilisateur en bas à gauche, et trouvez la section “Localization” ou “Paramètres Régionaux”. Cette section vous permettra de configurer : Fuseau horaire, Formatage des nombres, Format de la date, heure et le premier jour de la semaine.
Une attention toute spéciale à ces paramètres car de nombreux services en dépendent.
Double authentification
Tant que nous sommes dans cette section des paramètres, ajoutons la double authentification. J’aime à penser que les Agents de la SiliciumCorp qui liront cet article sont déjà familier avec des applications telles que Google Authenticator ou Authy. Pour commencer ayez au moins une de ces deux applications installées sur votre mobile.
Dans la section “Sécurité” que vous trouverez dans l’onglet en haut à droite, vous pouvez alors activer l’authentification à double facteur. Il vous suffit de scanner le QRCode avec votre application, et saisir le code temporaire dans le champ du formulaire réservé.
Au risque de passer pour un moralisateur, mais j’insiste, vous êtes sur le point d’exposer votre service aux robots qui scan le web en permanence. La sécurité est à prendre très au sérieux surtout quand on sait tout ce que vous pourriez connecter à votre Home Assistant.
Configuration du wifi
À part si vous souhaitez une connexion réseau intensive comme un NAS sur votre Raspberry Pi, vous voudrez sans doute qu’elle se connecte au réseau en Wifi et être plaçable n’importe où dans votre habitation.
Rendez-vous alors dans Paramètres > Système > Réseau. Vous devriez voir un onglet “Wlan0”. Cliquez sur le bouton afin de lister les réseaux disponibles et sélectionnez le réseau qui vous concerne.
Tout en bas de la liste, choisissez ensuite le type d’authentification. En toute logique : WPA-PSK. Et mettez votre mot de passe Wifi.
Mise à jour de l’OS
Home Assistant vous proposera régulièrement de nouvelles mises à jour. Dû aux récents événements liés aux attaques IA et à ce qu’on appelle “Supply Chain Attack” je recommande que vos mises à jour soient faites avec une semaine de latence. Cela laisse assez de place pour qu’une attaque soit neutralisée. Ce menu n’est présent qu’en cas de nouvelle mise à jour.
Utilisation
Votre Home Assistant est maintenant prêt à l’emploi. Tant que vous serez connecté au même réseau (à la même box) que votre Home Assistant, vous pourrez joindre son interface sur http://homeassistant.local:8123 et installer l’application associée sur votre téléphone.
2ND PARTIE : ACCÈS DEPUIS N’IMPORTE OÙ.
L’objectif de cette nouvelle partie, c’est de faire en sorte que votre Home Assistant ne soit plus seulement accessible depuis votre réseau local sur http://homeassistant.local:8123 mais accessible sur une URL qui ressemble à https://home.mon-nom-de-domaine.com.
Cloudflare
Toute la technologie permettant de raccorder un nom de domaine personalisé à votre Raspberry Pi repose sur la gestion de nom de domaine offert par Cloudflare. Ainsi, si vous n’avez pas encore de compte chez eux, créez en un.
Dans la phase d’enrôlement de Cloudflare, en sélectionnant l’offre gratuite, vous êtes invité à migrer la gestion de votre nom de domaine chez eux. Suivez les démarches associées. Si vous n’avez pas encore de nom de domaine, lisez la section suivante.
Nom de domaine
Dans mes exemples, je montrerai comment je configure home.siliciumcorp.com
Avant d’aller plus loin, il vous faut donc un nom de domaine en votre possession. Si vous n’en avez pas, vous pouvez vous rendre sur namecheap.com et acheter un nom de domaine qui vous plait. Si vous ne souhaitez que dépenser le minimum possible, namecheap propose 3 extensions de nom de domaine pour moins de 1$ la première année et moins de 2$ les années suivantes. Cloudflare est quant à lui gratuit.
Au lieu de nom de domaine finissant en “.com”, cherchez donc des noms de domaine en “.website”, “.space” ou “.site”.
Une fois votre domaine acheté, vous devez paramétrer ses serveurs de noms (name server) sur ceux que vous aura fournis Cloudflare. En effet, nous ne voulons pas que NameCheap s’occupe du domaine qu’il vient de vous vendre, mais plutot Cloudflare qui nous offre beaucoup plus de paramétrage disponible.
Chaque fournisseur de nom de domaine permet de saisir des NameServers personalisés.
Installation d’un Add-On Home Assistant
Rendez-vous dans votre Home Assistant, Menu Paramètres > Apps. Cliquez sur le bouton/lien pour explorer les applications du portail. En haut à droite, un menu est accessible, cliquez alors sur “Repositories”.
Sur la page, un bouton “Ajouter” vous propose d’ajouter une nouvelle URL. Ajoutez alors l’URL suivante :
https://github.com/homeassistant-apps/repository
Retournez sur le portail sur lequel se présente la liste des applications, descendez à la toute fin, une application “Cloudflared” a dû apparaître. Cliquez sur l’application et installez la grâce au bouton “Install”.
Après installation, avant de pouvoir la démarrer, on va avoir besoin d’info de la Cloudflare.
Creation du tunnel Cloudflare
Dans la barre de recherche en haut à gauche du site Cloudflare, saisissez “Tunnel” et sélectionnez le premier élement du menu. Vous devriez tomber sur une page similaire à celle-ci :
Cliquez sur le bouton de Création et exécutez les 3 actions suivantes (Selon les 3 flêches oranges) :
- Donnez un nom au tunnel : homeassistant
- Sélectionnez le bouton “Docker”
- Appuyez sur le bouton de copie à droite du champ montrant la commande Docker.
Laissez cette page temporairement ouverte, rendez-vous dans un éditeur de texte ou vous pourrez coller la commande que vous venez de copier.
Voici à quoi ressemble la commande que vous venez de copier :
1
docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token eyJhIjoiYzchNTIxOGVkYmM1NzBkNjNhNmYxNzc0YjJkMVU0MWYiLCJ0IjoiNWU0NuFmMmEtNGMxYS00YjU2LTE0ZmMtOGQ5YzliOWI4NTujIiwicyI6Ik5UTmxZbUkyTkFFdE5EZ3pNQzAwTnpReUxXRm1PKmt0Wm1Jeo1tWmlaV1E0WW1abYJ9
C’est la partie écrite après –token qui nous intéresse. Gardez uniquement cette longue chaine de caractère ressemblant à un long mot de passe. Copiez seulement le token et passez à l’étape suivante.
Configuration de l’Add-On Home Assistant Cloudflared
Après avoir installé Cloudflared sur Home Assistant, un onglet “Configuration” est maintenant disponible.
Sur cette page, cochez l’option “Show unused optional configuration options”. Vous devriez être sur cette page :
En correspondance avec le nom de domaine que vous avez en votre possession et migré sur Cloudflare, saisissez le sous-domaine et nom de domaine sur lequel vous aimeriez accéder votre Home Assistant. Dans mon exemple j’ai choisi home.siliciumcorp.com
Ensuite dans le champ “Cloudflare Tunnel Token” collez le token que vous avez copié dans l’étape précédente.
Sauvegardez, retournez à la page précédente, et lancez le service sur le bouton “Start”.
Si tout s’est correctement passé, alors vous pouvez retourner sur la page laissée ouverte sur Cloudflare et celle-ci devrait vous montrer que le tunnel a été détecté.
Cliquez alors sur “Continue” et votre tunnel “homeassistant” apparait dans la liste de vos tunnels.
Ajouter une route au tunnel
Il nous reste à indiquer les informations que Cloudflare doit connaître pour correctement communiquer avec le tunnel qui tourne sur Home Assistant.
Depuis la page Cloudflare qui liste vos tunnels, cliquez sur le tunnel nouvellement créé. Vous devriez voir le bouton “Add route” en plein milieu.
Il vous propose alors quatre choix. Celui qui nous intéressera sera “Published application”.
Dans la fenêtre de configuration 3 points à paramétrer :
- 1 - Sélectionner le nom de domaine
- 2 - Choisissez le sous domaine. Doit correspondre au sous domaine que vous avez mis sur Home Assistant durant l’étape “Configuration de l’Add-On Home Assistant Cloudflared”
- 3 - Placez dans le dernier champ l’adresse URL locale avec le numéro de port. L’adresse que vous avez normalement utilisée jusqu’à maintenant.
Coté Cloudflare, on en a fini. Il nous reste quelques derniers détails sur Home Assistant.
Trouver l’IP à ajouter au réseau de confiance
Dernière ligne droite.
Allez dans le menu Paramètres > Système > Réseau et dans le champ “Home Assistant URL” mettez y l’URL complete pour accéder à votre service (Avec le https://). Dans mon cas, j’ai mis https://home.siliciumcorp.com. Cette action active l’accès extérieur à votre système.
Si on considère que le tunnel est fonctionnel, la route créée à l’étape précédente diffusée, et le réseau nouvellement accessible, alors si vous essayez de joindre l’URL que vous venez de paramétrer dans le paragraphe précédent, alors vous devriez voir une erreur 400 Bad Gateway. Essayer, et confirmez cette erreur, c’est important, on va en avoir besoin juste maintenant.
Cette erreur a créé un message dans la log du système Home Assistant. C’est ce message qui nous intéresse.
Allez dans le menu Paramètres > Système > Log et trouvez le message qui mentionne le mot “proxy”.
L’information à collecter c’est l’IP mentionnée dans le message d’erreur. Mettez-la de côté dans votre éditeur texte.
Ce sera surement comme moi, l’IP 172.30.33.0. Cela correspond au réseau virtuel utilisé par Docker.
Installer un éditeur de texte
Maintenant que nous avons l’IP à ajouter au réseau de confiance, il va falloir que nous éditions un fichier de configuration. Et vu que nous sommes dans les premières heures de ce Home Assistant, il nous faut en installer un.
Allez dans le menu Paramètres > Apps et trouvez et installez l’application “File Editor”
Une fois celle-ci installée et démarrée, ouvrez-la en cliquant sur le bouton “Open Web UI”.
Finaliser la configuration Home Assistant.
En cliquant sur l’icône du dossier en haut à gauche, un menu latéral s’ouvre dans lequel vous pourrez éditer le fichier nommé “configuration.yaml”.
Les fichiers de configuration au format YAML sont sensibles à la hierarchie obtenue avec les espacements en début de ligne. Donc, copiez ce bloc exactement tel quel et ajoutez-le à la fin du fichier en cours d’édition.
Si lors de l’étape précédente, dans l’inspection de la log, vous aviez obtenu une IP différente, remplacez-la dans ce bloc.
1
2
3
4
5
# Parametrage de cloudflare
http:
use_x_forwarded_for: true
trusted_proxies:
- 172.30.33.0/24
Sauvez grâce au bouton en haut à droite portant l’icône d’une disquette.
Vous pouvez ensuite redémarrer votre Raspberry Pi. Allez dans Paramètres > 3 points en haut à droite > Restart Home Assistant.
Suite au redémarrage, votre Home Assistant est enfin joignable depuis n’importe où. Vous pouvez alors éditer vos paramètres sur votre application mobile afin d’utiliser la nouvelle URL accessible depuis n’importe où. Avec l’authentification à double facteur, vous pouvez être plutôt serein. Veillez à faire régulièrement la mise à jour de votre installation tous les mois si possible.
Conclusion
J’espère que ce tuto ne manque de rien. J’ai mis un email de contact sur la page À Propos du site si vous avez une remarque à faire.
Au plaisir, Agents de la SiliciumCorp.





















