DuckDNS : comment accéder à Home Assistant depuis l’extérieur

Suite à notre test de Home Assistant Green, nous vous avons présenté l’interface de Home Assistant et expliqué comment installer File editor, un add-on qui nous servira aujourd’hui à l’installation de Duck DNS sous Home Assistant.

Duck DNS est un service DynDNS (ou DDNS) avec support de Let’s Encrypt. C’est un outil gratuit qui permet d’accéder à Home Assistant depuis l’extérieur de façon simple et sécurisée grâce à un add-on officiel disponible dans la boutique des modules complémentaires. Il est en plus indispensable pour préparer notre système à l’intégration Amazon Alexa comme de Google Home.

Ce tutoriel peut paraître long et complexe, mais ce n’est qu’une impression car nous vous guidons étape par étape, clic après clic. Si, malgré tout, vous avez une question ou un problème, n’hésitez pas à lire les commentaires ci-dessous.

Mises à jour :
- 19/01/2024 - Nouvelle version pour Home Assistant 2024 : procédure testée et approuvée sur la box domotique Home Assistant Green avec Home Assistant OS 11.5 (core release 2024.2.0) ;
- 12/02/2024 - Ajout de conseils à la résolution des problèmes de connexion ;
- 15/03/2024 - Ajout de la procédure de redirection de port sur Freebox OS 4.6 ;

Accéder de l’extérieur à Home Assistant : le duo parfait avec Duck DNS !

  1. Pour commencer, rendez-vous dans Paramètres, puis dans l’onglet Modules complémentaires, cliquez sur le bouton « Boutique des modules complémentaires » ;
  2. Recherchez « Duck DNS » dans les add-ons officiels, puis cliquez dessus ;
  3. Installez le plugin en cliquant tout simplement sur « installer » :

Paramétrer Duck DNS pour Home Assistant

Pendant que le module complémentaire (add-on) s’installe sous Home Assistant, nous allons configurer le service DuckDNS. Pour cela, ouvrez le site duckdns.org .

  1. Connectez-vous à l’aide d’un des services proposés : nous avons choisi GitHub ;
  2. Créez votre sous-domaine : lesalexiens.duckdns.org par exemple ;
  3. Cliquez sur « add domain » : vos identifiants vont apparaitre ainsi que votre jeton ou token ;

Configuration de l’adresse IP pour accéder de l’extérieur à Home Assistant

  1. Avant de poursuivre nous allons vérifier notre adresse IP sur le site whatismyipaddress.com ;
  2.  Copiez vos adresses IP IPv4 et IPv6, nous allons les renseigner sur DuckDNS.org ;
  3. Sur DuckDNS.org, collez vos adresses IPv4 et IPv6 dans les cases « current IP » puis cliquez sur « update ip » :

Configuration add-on DuckDNS pour Home Assistant

Notre module complémentaire DuckDNS étant installé et le service DynDNS paramétré, nous allons passer à sa configuration sous Home Assistant :

  • Rendez-vous sur la page du module DuckDNS sous Home Assistant et cliquez sur Configuration ;
  • Cliquez sur les trois points en haut à droite puis sur Configuration en YAML ;
  • Copiez et collez le code YAML ci-dessous (utilisez le bouton pour conserver l’indentation) :
    • Remplacez votredomaine.duckdns.org par votre nom de sous-domaine ;
    • Indiquez votre token (pas celui-ci, hein ?) : 35cdgql5-xxxx-xxxx-xxxx-6e2e6e8598e1
    • Modifiez accept-terms sur true
    • Sauvegardez votre configuration en cliquant sur Enregistrer.
      domains:
          - votredomaine.duckdns.org
      token: 35cdgql5-xxxx-xxxx-xxxx-6e2e6e8598e1
      aliases: []
      lets_encrypt:
        accept_terms: true
        algo: secp384r1
        certfile: fullchain.pem
        keyfile: privkey.pem
      seconds: 300
      
  • Dans l’interface utilisateur, ça devrait donner ça :
  • Il ne nous reste plus qu’à démarrer l’add-on DuckDNS pour Home Assistant d’un simple clic sur Démarrer.

Ajouter un certificat à Home Assistant

Nous allons ajouter un certificat Let’s Encrypt à Home Assistant afin que notre connexion soit sécurisée (HTTPS). Pour cela rien de très compliqué, rendez-vous sur le module File editor puis sélectionnez le fichier configuration.yaml :

Retirez les # devant http ainsi que la ligne base_url puis ajoutez les lignes suivantes :

http:
  ssl_certificate: /ssl/fullchain.pem
  ssl_key: /ssl/privkey.pem

Votre fichier configuration doit ressembler à la capture d’écran ci-dessus. Une fois cela ajouté, sauvegardez le fichier depuis la petite disquette en haut à droite de l’écran.

L’ajout des lignes ssl_certificate et ssl_key permet d’indique à Home Assistant le chemin de nos certificats et d’établir une connexion sécurisée en SSL. Vous savez, le fameux HTTPS avec le petit cadenas vert devant… C’est ça !

Ensuite, il vous faut vérifier vos adresses interne et externe dans : Paramètres > Système > Réseau

  • Internet : vous devez utiliser https et non http pour l’accès local comme externe.
  • Réseau local : indiquez l’IP locale de votre serveur suivi du port 8123. Votre certificat SSL n’est valable que pour votre adresse externe, il est normal que votre navigateur affiche un avertissement quand vous accéder à votre serveur domotique depuis son adresse locale, le certificat ne correspondant pas à cette dernière.

Enfin, redémarrez votre serveur afin que le système prenne bien en charge nos modifications depuis la page : Paramètres > Système > Redémarrer (bouton en haut à droite)

Félicitations, vous avez intégré l’add-on DuckDNS à Home Assistant ! Vous pouvez maintenant accéder à votre serveur domotique via l’adresse https://votredomaine.duckdns.org depuis n’importe où sur la planète. Notez que si cette solution est suffisamment sécurisée, l’ouverture d’un port sur votre routeur comporte toujours des risques d’attaque. Nous vous proposerons plus tard des solutions encore plus sécurisées telles que le proxy inversé ou le tunnel VPN, mais elles ont l’inconvénient de compliquer voire rendre carrément impossible l’utilisation de nos chers assistants vocaux Alexa et Google Home qui nécessitent que vous exposiez un port pour communiquer avec leurs serveurs.

Paramétrer votre routeur

Nous allons maintenant permettre à notre serveur domotique Home Assistant d’être accessible de l’extérieur en ouvrant le port 8123 de notre routeur ou box Internet. Chez Orange/Sosh, il suffit de saisir livebox/ ou 192.168.1.1 dans la barre d’adresse. Cela peut être 192.168.0.1 chez votre opérateur et/ou en fonction de votre paramétrage réseau.

Nous avons effectué l’opération sur une Livebox 4, mais l’opération est plus ou moins identique pour les autres opérateurs.

Page d'accueil Orange

Redirection de port sur Livebox

Une fois connecté, rendez-vous sur : Paramètres avancés > Réseau

Onglet port forwarding

Sur la page réseau sélectionnez l’onglet NAT/PAT (ou port forwarding) :

Transfert de port

Redirection de port sur SFR Box

NAT SFR

Merci Yann pour la capture d’écran !

Nous allons créer une règle qui redirigera le port 8123 de notre box internet vers notre port interne utilisé par Home Assistant qui est 8123 également.

  • Application/Service : HTTPS
  • Port interne : 8123
  • Port externe : 8123
  • Protocole : TCP
  • Équipement : Sélectionnez ou insérez l’adresse IP de votre Raspberry Pi utilisée pour notre serveur Home-Assistant.

Une fois créée, la règle s’affichera juste en dessous comme sur la capture d’écran précédente. Celle-ci sera donc activée et fonctionnelle.

Redirection de port sur Freebox

  1. Connectez-vous à votre Freebox via 192.168.1.254 ;
  2. Allez à « Paramètres de la Freebox »,
  3. Dans « Gestion des ports », cliquez sur « Ajouter une redirection » ;
    • IP Destination : IP de votre serveur Home Assistant
    • Redirection active : cochée
    • IP source : Toutes
    • Protocole : TCP
    • Port de début : 8123
    • Port de fin : 8123
    • Port de destination : 8123
    • Commentaire : Redirection DuckDNS
  4. Cliquez sur Sauvegarder.

Adresse IP fixe

L’adresse IP de notre serveur Home Assistant doit être fixe pour toujours trouver son chemin.

Cela se fait également depuis votre routeur (box internet). Depuis l’onglet DHCP vous pouvez paramétrer les baux DHCP statiques comme ci dessous :

Raspberry Pi IP fixe
Raspberry Pi IP fixe

Remplacez l’adresse IP par celle de votre raspberry et l’adresse MAC également.

Finaliser l’installation

Pour finaliser l’installation, il ne nous reste plus qu’à redémarrez notre serveur domotique Home Assistant une seconde fois puis accédez à votre instance depuis votre URL créée. (Exemple: https://lesalexienstuto.duckdns.org:8123 ).

Notre serveur domotique Home Assistant est maintenant accessible depuis l’extérieur ! Il ne nous reste plus qu’à découvrir l’interface avant de passer aux choses sérieuses…

À LIRE :
Home Assistant : présentation de l'interface

Résolution des problèmes

Suite à quelques commentaires peu agréables, un individu allant jusqu’à nous rendre responsable d’avoir « cassé son Home Assistant », nous tenons à préciser que la procédure est parfaitement fonctionnelle à la date indiquée en début de tutoriel. Nous la testons à chaque mise à jour (5 fois en 4 ans) et l’approuvons à chaque fois pour la dernière version de Home Assistant OS disponible à ce moment là.

Néanmoins, il n’est pas impossible que vous rencontriez des problèmes de connexion à cause de votre configuration. Si vous n’arrivez plus à accéder à Home Assistant, commencez par vider le cache de votre navigateur, puis vérifiez la configuration de votre réseau local (ip fixe, redirection du port 8123, pare-feu de votre routeur / box Internet, double NAT,etc.). Notez également que l’application compagnon requiert un certificat valide, vous ne pourrez donc pas utiliser l’adresse locale avec https et vous devez y modifier l’adresse externe.

Enfin, n’hésitez pas à lire les commentaires ci-dessous ou à rejoindre notre groupe Facebook, vous y trouverez généralement quelqu’un pour vous aider (mais nous ne sommes pas disponibles H24). Si, malgré tout ça, vous êtes toujours bloqué, nous vous invitons à considérer l’abonnement Nabu Casa (c’est 75€/an, mais ça fonctionne à tous les coups).

 

Fasciné par Alexa depuis le jour où je l'ai reçue en bêta test, je me suis peu à peu passionné pour le sujet, avant de me décider à aller plus loin en créant un site avec Jean-Christophe. Une activité qui me permet d'étancher ma soif de nouvelles technologies et de partager mes découvertes sur la plus sympathique des communautés : Les Alexiens.