Je montre ici comment configurer un accès à sa box domotique Home Assistant depuis l'extérieur de manière simple et asses sécurisé sans avoir à dépenser une fortune dans un service cloud tiers.
J'utilise des outils gratuits et open source pour mettre en place son propre serveur de cloud personnel et sécurisé, afin de pouvoir accéder à mon installation Home Assistant de n'importe où dans le monde
Suivez simplement les étapes que je vais détailler et vous pourrez profiter d'un accès à distance facile et sécurisé à votre installation Home Assistant.
Notez que la sécurité est toute relative avec cette solution, cependant c'est la moins pire de toute lorsque l'on n'est pas un As de la cyber sécurité
Deux solutions simple sont possible tout en ayant une sécurité acceptable
Solutions peu chers voir même complètement gratuite comme ZT one ou bien la peu solution avec Cloudflare et qui demande d'acheter un nom de domaine, attention certains nom de domaine son cher voit très cher..
1) Tunnel tiers avec l’application ZéroTier One
Ultra simple mais avec une contrainte et pas des moindres..
- Dans son HA, Paramètres/ Modules complémentaires. Installer Add on : ZéroTiers One
- Allez sur site de ZéroTier.com et S'inscrire
- Puis crée un Network
- Lui donner un nom "Mon Homme Assistant" par exemple
- Une fois l’email validé le compte est donc créé, allez vers le bas de la page dans la section "Advanced"
- Sélectionnez une plage IP, de votre réseau interne, en général les réseaux internes commencent toujours par 192.168....
- Je choisis : 192.168.192.*
- Avant de retourner sur son HA, copier le "Network ID"
- De retour dans HA, retourner dans l'addon "Zéro Tiers One" dans l’onglet "Configuration"
- Dans la section "Options" dans le champ "Networks’ Coller le "Network ID" précédemment copié.
- Attention dans le champs, lorsque l’on colle l’ID, resélectionné l’ID pour qu’il soit pris en compte
- Démarrer l’application
- Vérifier dans les logs
- Retourner sur le site ZéroTier.com
- On doit voir apparaître notre équipement Raspberry
- Donner un nom et une description
- Autoriser en cochant la case à gauche, une IP apparaît
- Cette IP servira pour la connexion de appli "Compagnon” sur nos téléphones.
- Installer HA Compagnon sur le téléphone
- Installer l'appli (Android) ZéroTier One et l'ouvrir
- Ajouter un Network
- Recopier le ID Network précédent (sur le site de ZeroTier.com)
- Puis cliquer sur AD
- Accepter l'ajout VPN, accepter la localisation
- L'accès n'est pas encore totalement autorisé, retour Sur le site ZéroTier.com pout le voir apparaître et autoriser la connexion en cochant la case de gauche.
- Retourner sur le téléphone pour vérifier.
- Pour être sûr de la bonne connexion sur le téléphone désactiver le wifi de manière à basculer en 4G
- Lancer HA Compagnon du téléphone, saisir l’adresse IP manuellement pour cela la bonne IP se trouve dans votre tableau de bord sur le site ZéroTier.com
- "http://192.168.192.××:8123"
- IP externe indiqué pour le Raspberry
Voilà...
A savoir..
Les + : gratuit totalement, paramétrage simple
Les - : Lorsque l'application ZeroTiers One est activée sur votre téléphone elle bloquera vos autres applications.
Si vous l'arrêtez vous perdez l'avantage que HA vous détecte..
2) Solution avec un nom de domaine et Cloudflare
Etape 1 : Choisir et acheter un nom de domaine, plusieurs solutions : google domaine, OVH, PlanetHoster, etc..
Le budget est en moyenne de 8 à 12€ par an.
- Le moins cher de chez moins cher Hetzner : https://how.wf/Hetzner mais accrochez vous pour ouvrir un compte, beaucoup de démarches.
- Google domains : https://how.wf/GDomains
- Cloudflare : https://how.wf/Cloudflare
J'ai pris le miens chez OVH pour moins de 10€ pour 3 ans, on dire que c'est peu cher
Etape 2, créer un compte
Si ce n'est pas déjà fait, créer un compte (gratuit) sur le site de cloudflare.com
Sur votre page d'accueil Cloudflare, enregistrer un nouveau domaine en cliquant sur "Ajouter un domaine"
Une fois votre nom de domaine enregistré, cliquer dessus, puis cliquer sur "DNS" dans le menu de gauche
Etape 3, routage du DNS
Cloudflare : Dans la configuration DNS/Serveur de noms Cloudflare, recopier les 2 noms de serveurs "Valeur" dans la zone DNS de votre hébergeur de nom de domaine
hébergeur de nom de domaine : Aller sur votre panel de votre nom de domaine puis aller dans la zone DNS. Recopier les 2 noms de serveurs de chez Clouflare
Prévoir un délai de 24h à 48h pour que le nouveau routage se propage sur la toile
Etape 4, préparation HA
- Dans votre Home Assistant on va installer l'addon Clouflared
- Pour ce faire, aller dans HA / Paramètres puis dans "Modules complémentaires"
- Cliquer sur les 3 petits points en haut à droite, cliquer sur "Dépôts" puis coller le lien du dépôt GitHub dans le champ.
- Lien vers le dépôt Cloudflare
- Penser à actualiser la page une fois terminé
- Cliquer sur l'Addon, puis sur "Installer"
- Aller sur l'onglet "Configuration" et dans la section "Option" compléter le champ "External Home assistant Hostname" par votre nom de domaine "mondomaine.fr" par exemple (sans HTPP ou HTPPS)
- Cliquer sur "Enregistrer" enfin retourner sur l'onglet "Info" et cliquer sur "Démarrer"
- Puis consulter l'onglet "Journal"
- Maintenant il va falloir s'authentifier afin que Cloudflare crée un tunnel. Copie le lien "marqué"
Connectez vous a votre tableau de bord chez Clouflare.com, dans un autre onglet collez le lien indiqué dans le journal de l’addon dans la barre d'adresse de votre navigateur.
Etape 5, authentification Cloudflare
Une page Cloudflare s'affichera, apparaitrons vos noms de domaines, Sélectionner le nom de domaine à authentifier. Celui précédemment indiqué dans la configuration de l’addon Cloudflared.
Clouflare vous demandera de confirmer votre choix,
Une fois l'authentification réussit
A ce stade, si vous taper dans votre navigateur mondomaine.fr vous arriverez sur une page 400. Ce qui est une bonne nouvelle en soit puisqu'il arrive a trouver le domaine mais seulement HA n'est pas encore configuré.
Etape 6, configuration de HA et fin
Ils nous faut maintenant configurer HA. Retour au module de Cloudflared, onglet "Documentation" dans la section "Home Assistant configuration"
Vous trouverez ce code :
http:
use_x_forwarded_for: true
trusted_proxies:
- 172.30.33.0/24
Ajouter ce code dans votre fichier "Configuration.yaml" Utiliser l'addon "File editor" pour le faire depuis HA
Sauvegarder et redémarrer Home Assistant. Retourner dans votre navigateur et rafraichissez la page précédente (erreur 400) Et là miracle on arrive sur son HA
Accéder à la vidéo qui m'a inspirée
https://youtu.be/oqO9c4aNaAU?si=4PgjjGKgUL2wqeKW
Lien de l’addon cloudflare : https://github.com/brenner-tobias/ha-addons
bonus a tester
Code à ajouter à configuration.yaml :
frontend:
themes: !include_dir_merge_named themes
Un jour tu change de nom de domaine !
Et là c'est la kata.
Voici comment j'ai fini par retrouver un accès avec un nouveau nom de domaine
- Supprimer le tunnel précédemment crée chez Cloudflare en allant à votre tableau de bord,
- Dans le menu de gauche aller sur "Zero Trust" puis sur "Réseaux" puis sur "Tunnels"
- Supprimer le tunnel, en général il est nommé "homeassistant"
- Être patient, attendre plusieurs dizaines de minutes
- En attendant, avant de supprimer l'application "Cloudflared"
- Aller dans l'Addon "Configuration" dans la 1er section, cliquer sur les 3 points en haut à droite
- Cliquer sur "Réinitialiser la configuration"
- Retourner sur le 1er onglet "Info" de l'addon et "Désinstaller"
- Redémarrer Home assistant
- Retour dans "Modules complémentaires" puis sur la boutique, bouton en bas à droite
- Réinstaller "Cloudflared"
- Reprendre l'étape 4 (plus haut)
Rajoutons une couche sécurité à notre nouvel accès
Déjà pour ceux qui n'ont pas un compte pro chez Cloudflare, on peut activer les sécurités de protections contre les bots.
Passons en revu les réglages pour le HTTPS. Normalement OVG vous fournit le certificats en www et sans les 3w.
Vérifier, plus bas
Pour celui qui à un compte Pro
il est possible d'accéder a ces paramètres complémentaires :
L'interface à dû changer mais vous pouvez établir une règle pour limiter les requêtes à la France (cela enlève la majorité des tentatives d’accès)