Accede desde cualquier lugar a tu hogar inteligente con DuckDNS y Home Assistant. Y totalmente gratis !!

En este post haremos que nuestro sistema domótico sea accesible en remoto desde cualquier lugar del mundo con la instalación de DuckDNS en Home Assistant…

Con paciencia (y con seguridad)

Introducción

En esta ocasión vamos a preparar nuestro sistema domótico compuesto por el software Home Assistant ejecutándose en una Raspberry PI. para que podamos acceder de forma remota cuando no estemos conectados a nuestra red de casa.

Podremos ver nuestros datos en tiempo real, tengamos el hardware que tengamos donde corremos Home Assistant, y tengamos los sensores que tengamos, aunque como veremos en otro post los sensores baratos son ZigBee.

Si todavia no tienes donde correr Home Assistant, te conviene dar un paseo por alguno de nuestros equipos favoritos. Todos ellos seleccionados mirando vuestro bolsillo pero cumpliendo de sobra con lo que se les pide :

El problema de la conexión en remoto

Cuando entendemos cómo funciona nuestro router, podemos ver el problema al que vamos a dar solución.
Home Assistant, y otros dispositivos de nuestra red de casa acceden (salen) a internet compartiendo una única dirección IP: La dirección IP pública o IP de Internet.


Internamente nuestro router también asigna una IP a cada cosa que esté en su red interna, pero esta IP interna es privada, y no se ve desde «fuera». Es la… efectivamente, en un alarde de originalidad vamos a llamarla «IP privada«

Cuando nosotros estamos fuera de la red de casa (cuando estamos de vacaciones en la playa, o desde cualquier parte del mundo), siempre habrá un camino para llegar al router de nuestra casa y de ahí a nuestro Home Assistant para que nos muestre nuestro bonito dashboard o panel con todos nuestros sensores.

Nada tan fácil como apuntar a esa dirección IP pública de nuestro router y Voila !!

Pero hay un problema: nuestro ISP (Internet Service Provider), para entendernos, a quien le pagamos la conexión de internet (Movistar, Orange, Vodafone…), no nos va a asignar siempre la misma IP pública. Tras un corte de conexión o un apagon, es muy probable que nos cambie la IP. Además lo hará sin avisarnos… qué malos!!.

Tendríamos que volver corriendo a casa, y mirar de nuevo desde «dentro» cuál es la nueva IP con la que salimos públicamente a Internet. Podéis consultar vuestra IP pública de ahora mismo en este enlace

Pues aquí viene DuckDNS para echarnos un cable.

La solución: DNS dinámico

Necesitaremos un servicio de DNS dinámico. Algo en internet que guarde y actualice una tabla que tenga una parte que sea siempre igual (un nombre de dominio) y la relacione constantemente con la IP pública que tengamos en cada momento.

De esa manera nosotros en vez de llamar a la puerta de la IP pública lo haremos al nombre de dominio que siempre será igual. Chulo, no?


Ese tipo de servicios son los DNS dinámicos, y por suerte para nosotros DuckDNS es uno de ellos, gratuito y con integración en Home Assistant para que sea muy fácil su configuración.

Acceso en remoto desde internet

En esta otra entrada vimos que aunque nuestro sistema no sea accesible desde internet, podemos empezar a ver todo su potencial con algunas integraciones de equipos ya existentes en nuestra red.

Pues bien, ahora vamos a incluir la posibilidad de ver desde cualquier rincón del mundo todos esos dispositivos y todas las opciones que estén disponibles con la Instalación de DuckDNS.

La compañía con la que tengáis contratado el acceso a internet será indiferente, pero hay pasos que pueden variar según el router .

Os recomiendo encarecidamente (es una inversión por ese precio) cambiar el router si tenéis la oportunidad, y os dejamos los que a nuestro juicio son las mejores ofertas:

Prestaremos especial atención a la seguridad, pues desde este momento cualquiera podría iniciar ataques que podrían en riesgo nuestra privacidad o incluso nuestra seguridad física al poder controlar dispositivos de casa.

Y mucho mejor tener un equipo dedicado. No digo que no funcionemos bien en una máquina virtual, pero vas a gestionar mejor todo si le ponemos un equipo adecuado.

Entre los más populares están los siguientes:

Y si ya tienes el equipo donde está corriendo Home Assistant y no os queréis complicar mucho la vida, aquí os dejamos un kit de sensores, enchufes y coordinador para tenerlo todo desde el minuto uno con todo lo necesario:

Ya que lo tenemos todo, vamos manos a la obra.


Entender el servicio DNS.

La red Internet (WAN) no se diferencia demasiado de una red doméstica (LAN), aparte de por el tamaño, obviamente. La regla básica es que en una misma red las direcciones IP deben ser únicas.

Si queremos conectar dispositivos de la misma red podremos usar un switch, pero pasar de una red a otra tendremos que usar un router.

En el caso del router que nos instala nuestro proveedor de internet en nuestra casa, suele integrar un pequeño switch con unos pocos puertos.

Por tanto, nosotros saldremos a internet con una IP única dentro de lo que es internet en todo momento, y como hemos comentado antes, muy recomendable usar encriptación SSL para evitar que puedan leer los paquetes de datos.

Hasta aquí la teoría, pero nos queda un pequeño detalle. Las empresas proveedoras de servicios (ISP) compran un rango de direcciones IP que asignarán a sus clientes.

Para optimizar no siempre asignarán la misma IP al mismo cliente. Es decir, esta dirección IP pública será dinámicana y no podemos usarla en nuestro navegador al llamar a nuestro equipo de casa pues puede cambiar.

Necesitamos un servicio externo que haga de directorio. Este servicio devolverá una dirección IP (la IP pública que tengamos en ese momento) cuando alguien acceda a nuestro dominio https://www nuestroDominio.com

Para complicar las cosas algunos proveedores sí comparten al mismo tiempo una única IP con una técnica llamada NAT (Network Address Translation), por lo que primero deberemos consultar si tenemos la mala suerte de que sea nuestro caso.

Resumiendo: Accederemos desde cualquier navegador usando un nombre de dominio único que nunca cambiará, ya que el servicio DNS lo traducirá internamente y de forma transparente en la IP pública de nuestro sistema en ese momento.

El servicio DNS dinámico gratuito que nos permitirá acceder remotamente a nuestro sistema en remoto desde internet lo implementaremos usando DuckDNS en Home Assistant .

Sigue leyendo y veremos cómo configurar DuckDNS en Home Assistant.


¿Qué es DuckDNS?

Quizás sea el servicio DNS gratuito más usado. La forma de tener acceso en DuckDNS será logeándonos con alguna cuenta (Google, Reddit, Twitter o GitHub entre otras).

DuckDNS es un servicio de DNS dinámico gratuito y de código abierto. Permite a los usuarios conectarse a un servidor utilizando un nombre de dominio en lugar de una dirección IP. DuckDNS actualiza la dirección IP asociada con un nombre de dominio automáticamente, lo que significa que los usuarios siempre tienen la información más actualizada.

El servicio está diseñado para que sea fácil de usar y se puede configurar en cuestión de minutos. Todo lo que se requiere es una cuenta de DuckDNS y un nombre de dominio. Una vez que se crea la cuenta de DuckDNS, los usuarios pueden agregar nombres de dominio y seleccionar la dirección IP deseada para cada uno. El servicio luego actualizará los registros DNS automáticamente.

DuckDNS es una forma conveniente de acceder a un servidor sin tener que recordar una dirección IP. También es útil para las personas que desean acceder a un servidor desde varias ubicaciones, ya que el servicio actualizará los registros DNS automáticamente.

Los pasos para la instalación serán los siguientes:

1. Creando el subdominio

Desde la propia página de DuckDNS y una vez logeados y pasado algún captcha para verificar que somos humanos, directamente teclearemos el nombre del subdominio por el que se nos conocerá en internet. Aqui se puede usar cualquier cadena válida que no esté usada ya.

Algo fáicl de recordar que no de mucha información. Puede ser las inciales de vuestro nombre seguidas de las inciales de vuestra ciudad…. Lo que os apetezca. Nuestro dominio completo tendrá la forma http://nuestroDominio.duckdns.org

Instalación de duckdns en Home Assistant

Y nos aparecerá la dirección IP pública que tiene en ese momento nuestro reciente dominio:

IP pública

2. Anotando los datos importantes

En la parte superior aparecerán los siguientes datos: Aparte del nombre de vuestro dominio, debéis anotar el token asignado, pues nos hará falta para el siguiente paso:

home assistant duckdns

3. Instalando el Addon DuckDNS en Home Assistant

Viene el paso de instalar el Addon correspondiente en nuestro sistema.

En este enlace tenéis cómo se realiza la instalación inicial y la forma de acceder

Accedemos al menú Supervisor y buscamos en Addon Store el complemento DuckDNS en Home Assistant, y procedemos a la instalación. Desde la versión 2021.12 se accede desde el menú Configuration > Add-ons, Backups & Supervisor.

Una vez finalizada la instalación podremos acceder a la pantalla principal del mismo:

Integración duckdns

Os aconsejo que dejéis activada la opción de «Start on boot» y «Watchdog». La primera es evidente y la segunda nos arrancará el Addon si alguna vez para.

4. Configurando el Addon DuckDNS en Home Assistant

Dentro del Addon veremos la sección Configuration, donde le diremos lo necesario para conectar con nuestra cuenta de DuckDNS.org:

opciones duckdns

Pondremos tal como se muestra en la imagen nuestro token anotado en el paso 2, así como nuestro subdominio delante de .duckdns.org. No olvidar de cambiar accepet_terms al valor de true.

Puede ser mas comodo si activas la opcion de editar directamente el fichero con yaml:

Es importante dejar la opción certfile y keyfile para poder acceder con ssl (url comenzando con https)

Como siempre en todos nuestros ficheros .yaml debemos ser cuidadoso con los espacios, pues no es muy flexible en cuanto a formato se refiere.

Si todo está bien configurado, en la propia pestaña log del add-on, podremos ver el siguiente resultado:

Respuesta addon DuckDNS

Nos queda incluir en nuestro fichero principal de configuraciónde Home Assistant (configuration.yaml) la siguiente información para uso del certificado gratuito de let’s encrypt.

Si no sabes cómo editar dicho fichero puedes ver cómo se hace en nuestro post Raspberry PI + Home Assistant paso a paso.

    #base_url: No usar esta opción. Deprecated
    ssl_certificate: /ssl/fullchain.pem
    ssl_key: /ssl/privkey.pem

Nota: La opción base_url ya no se usa en las últimas versiones. La podéis comentar con # o sencillamente eliminarla.

Tendremos que resetear el sistema para que tome la nueva configuración: En el menú Connfiguration, la opción Server Controls:

Server Controls

Siempre chequearemos primero que nuestro fichero configuration.yaml es correcto con la opción «CHECK CONFIGURATION». En las versiones de HA más modernas estará en el menú Developer Tools > YAML, y en las versiones anteriores en el menú Connfiguration, la opción Server Controls para luego resetear.

Perderemos la conexión un momento mientras vuelve a arrancar.

chequeo de configuración

Si no ves la opción de «Check Configuration» es posible que tengas desactivado el modo avanzado. Para activarlo, selecciona tu nombre de usuario en la esquina inferior izquierda y allí lo tienes:

modo avanzado

En versiones mas recientes ni siquiera sera necesario resetear. Simplemente entramos en el menu Ajustes>Sistema y seleccionamos en el icono de encender/apagar:

Cada 5 minutos podremos chequear en el log del add-on si el servicio ha visto necesario actualizar nuestra IP en duckdns para que nuestro subdominio esté siempre actualizado:

Log duckdns

5. Mapeado de puertos. Forwarding

Como paso final, es necesario decirle a nuestro router a qué puertos de nuestra raspberry debe acceder (en el protocolo TCP) con el mapeo adecuado.

Os dejo la configuración de los 3 puertos a dirigir:

Mapeado puertos router

La redirección del puerto 80 exterior con el puerto 8123 interior es conflictivo si queréis algún día integrar Alexa con Home Assistant. Resulta que Alexa solo puede encontrar y enlazar sus propios dispositivos usando ese puerto.

También Home Assistant lo usa por ejemplo cuando queremos meter un nuevo repositorio en Supervisor>Add-on Store. Si no ponemos este mapeado no funcionará.

En algunos otros casos (por ejemplo para integraciones tipo Alexa) tendremos que mapear también el puerto 443 externo (público) con el 8123 interno (o el que hayamos elegido para nuestro sistema).

6. Pruebas

Ahora tendremos posibilidad de acceso a nuestra máquina con 2 accesos distintos.

Los que tengan la posibilidad de habilitar NAT Loopback solo necesitarán el acceso remoto, tanto si están conectados a su LAN como si acceden desde el exterior:

En cualquier ordenador o móvil conectado a nuestra red tecleamos

https://nuestra-ip-local:8123

– Acceso local

En este caso, nuestra-ip-local será la que pusimos fija en nuestro router (ver Raspberry PI + Home Assistant paso a paso)

– Acceso remoto

Para hacer la prueba de acceso de forma remota desde internet y terminar con la Instalación de duckdns , usaremos nuestro móvil.

Tendremos que desconectarnos momentáneamente de nuestra red Wifi y accederemos a internet con los datos de nuestro proveedor de telefonía.

En este caso la url será:

https://nuestroDominio.duckdns.org:8123

Si ya has conseguido acceder en remoto a tu sistema pero tienes problemas con la conexión de tus dispositivos en tu red WiFi interna, te invito a leer sobre la mejor forma de solucionarlo con un extensor:

  • WI-FI DOBLE BANDA AC1900 RÁPIDO - 600 Mbps en 2.4GHz + 1300Mbps en 5GHz
  • 3 ANTENAS EXTERNAS - Tres antenas externas ajustables que brindan una cobertura Wi-Fi óptima y conexiones confiables
  • PUERTO GIGABIT ETHERNET - Actúa como un adaptador inalámbrico para conectar un dispositivo cableado a su red a velocidad Gigabit (10/100/1000mbps)
  • LUZ SEÑAL INTELIGENTE - Ayuda a encontrar la mejor ubicación para una cobertura Wi-Fi óptima al mostrar la intensidad de la señal
  • MODO PUNTO DE ACCESO - Crea un nuevo punto de acceso Wi-Fi para mejorar su red cableada con capacidad Wi-Fi
  • FÁCIL CONFIGURACIÓN Y GESTIÓN - Con la aplicación TP-Link Tether acceda y administre fácilmente su red utilizando cualquier dispositivo móvil iOS o Android
  • MÁXIMA COMPATIBILIDAD - Amplíe el alcance de cualquier router Wi-Fi o punto de acceso inalámbrico

Otras entradas que te pueden interesar:

4 comentarios en «Accede desde cualquier lugar a tu hogar inteligente con DuckDNS y Home Assistant. Y totalmente gratis !!»

  1. Estoy sorprendido de encontrar esta web. Quería daros las gracias por redactar esta genialidad. Sin duda he disfrutando cada pedacito de ella. Os te tengo marcados para ver más cosas nuevas de este blog .

    Responder
  2. Hola. tengo el mismo router y lo tengo configurado exactamente igual. el problema es que no me da acceso y me redirige a una pagina del router (interception.html) que me dice que no tengo conexion.
    alguna idea?

    Responder
  3. Hola, a mi me pasa igual que a Nestor, intentando acceder desde un dominio creado con Duckdns, no se cual puede ser el problema.
    gracias

    Responder

Deja un comentario