Controla tu casa desde cualquier sitio con DuckDNS
Ya hemos creado nuestro servidor Home Assistant, y conocido un poco más de cerca como funciona. Pero hacer una casa inteligente no tiene mucho sentido si solo podemos controlarla desde dentro de la propia casa.
Home Assistant ofrece un Add-on muy sencillo para poder acceder a Home Assistant desde cualquier dispositivo con Internet alrededor del Mundo. Además este Add-on incluye configuración de certificados de encriptación SSL para hacer esta conexión segura.
Duck DNS y Let’s Encrypt
Duck DNS es un servicio gratuito de redirección de DNS (sub-dominios de duckdns.org) a una IP de nuestra elección. Esto es, crear un subdominio xxxxxx.duckdns.org
que al acceder desde cualquier navegador, redireccione a la IP que se indique; en nuestro caso, a la IP y puerto de nuestro servidor Home Assistant. De tal manera, que desde cualquier dispositivo con Internet, dentro o fuera de nuestra casa, podamos acceder a nuestro servidor e interfaz web de Home Assistant.
Let’s Encrypt por su parte es una Autoridad de Emisión de Certificados ofrecida por Internet Security Research Group que es capaz de emitir certificados SSL de manera abierta, automática y gratis. De esta manera, nos brindará el certificado necesario para que la conexión creada por la redirección DNS de Duck DNS sea segura. No es obligatorio pero si muy recomendable usar estos certificados para añadir una capa más de protección al entorno de red.
Requisitos
Para poder instalar y usar Duck DNS y Let’s Encrypt, se debe:
- Tener una IP interna estática para el servidor Home Assistant. Esto se puede conseguir de dos formas:
- Configurando la red de nuestra instalación de Home Assistant para que tenga una IP estática (forma que se vió en el primer artículo).
- Reservando la IP en el router principal para el dispositivo / host que se está usando para el servidor.
-
Redireccionar en el router el puerto 8123 (TCP) interno para la IP estática del paso anterior, al puerto que quieras (puede ser 8123) externo. Si no sabes bien como redireccionar los puertos, en Port Forward existen guías para casi cualquier router conocido.
Apunta la IP y el puerto externo elegido, los necesitarás luego.
-
Regístrarse en duckdns.org mediante cualquiera de los métodos disponibles y crear un subdominio con el nombre que quieras.
Apunta el Token que se muestra en la página y el subdominio, también los necesitarás.
Instalando y configurando el Add-on
La instalación y configuración se realizará del mismo modo que en otros artículos.
Dirígete al menú Supervisor -> Add-on Store y busca Duck DNS.
Dentro, verás una breve descripción del Add-on. Haz click en Install.
Después de unos minutos, baja a la sección Config y rellena el cuadro de texto con los siguientes parámetros (usando el Token y dominio creados en los requisitos):
{
"lets_encrypt": {
"accept_terms": true,
"certfile": "fullchain.pem",
"keyfile": "privkey.pem"
},
"token": "TU_TOKEN_DE_DUCK_DNS",
"domains": [
"TU_DOMINIO.duckdns.org"
],
"seconds": 300
}
Marcar el campo
accept_terms
atrue
habilitará la configuración y renovación de certificados SSL con Let’s Encrypt.
Asegurate de que los campos token y nombre de dominio están entre comillas. Haz click en Guardar.
A continuación edita el archivo configuration.yaml
, por ejemplo con el Add-on File Editor, y modifica el nodo http
y homeassistant
con el siguiente código (si no existe, créalo):
homeassistant:
external_url: https://TU_DOMINIO.duckdns.org:PUERTO_EXTERNO
internal_url: http://DIRECCION_IP_FIJA_DEL_SERVIDOR:PUERTO_EXTERNO
http:
ssl_certificate: /ssl/fullchain.pem
ssl_key: /ssl/privkey.pem
Guarda.
Vuelve a la página del Add-on DuckDNS (Supervisor -> Dashboard -> Duck DNS) y asegúrate que Start on boot esté activado. Del mismo modo, que el Add-on esté iniciado, en caso contrario haz click en Start.
Abajo del todo en la sección Log, tendrás toda la información para ver si todo ha ido bien.
Probando
Recomendable reiniciar la instancia de Home Assistant, para ello, dirígete a Configuración -> Controles del Servidor -> Administración del servidor -> Reiniciar.
En las últimas versiones de Home Assistant es posible que no tengas disponible esta opción hasta hacer click en tu usuario y habilitar el modo avanzado.
A continuación, abre el navegador y accede a https://TU_DOMINIO.duckdns.org:8123 (con el puerto que hayas configurado en los requisitos). Deberías acceder a la página de inicio de sesión de la interfaz web de tu servidor Home Assistant. Introduce tus credenciales y ya podrás acceder desde cualquier dispositivo y punto del Mundo a tu casa.
En caso de no haber configurado Let’s Encrypt, la dirección será usando
http
en lugar dehttps
.
Otra forma de asegurar que funciona correctamente es acceder a duckdns.org y comparar la IP que se muestra para el subdominio, con la IP que muestran páginas como cualesmiip.com; deben coincidir.
Este y otros artículos complementan la documentación del repositorio de GitHub donde se encuentra disponible toda la configuración de mi casa.