DEMO: Home Assistant sin programar
Llegados a este punto toca, por fin, darle un poco de vida al ONX. Y aquí podríamos dedicar unas cuantas páginas a explicar cómo programarlo con Arduino, ESP-IDF o ESPHome… pero, sinceramente, creemos que no tendría demasiado sentido.
La documentación de OpenNextion es, en esta ocasión, especialmente completa. Tenemos la wiki oficial, el repositorio de GitHub con ejemplos para diferentes entornos de desarrollo y, además, una plataforma web propia desde la que podemos acceder a información y descargar e instalar firmware directamente desde el navegador.
Y aquí viene lo interesante.
Dentro del OpenNextion App Store encontramos, entre otros, el ejemplo “1.28″ Knob Screen Out of Box”, que no es un simple programa de demostración que hayamos tenido que buscar, descargar y cargar nosotros mismos: es precisamente el firmware que viene instalado de fábrica en nuestro ONX.
Y resulta que este firmware de «primera toma de contacto» da bastante más juego del que podríamos esperar. Una vez configurado el dispositivo, podemos conectarlo directamente con Home Assistant y utilizar el ONX como interfaz de control, sin tener que escribir una sola línea de código.
Por tanto, esta va a ser nuestra DEMO. En lugar de ponernos a programar el ONX desde cero —algo que, como veremos, resulta bastante sencillo gracias a los ejemplos disponibles— vamos a utilizar exactamente lo que el fabricante nos ofrece nada más sacarlo de la caja y comprobar qué podemos hacer con él en combinación con Home Assistant.
Y si después de verlo nos quedamos con ganas de más, siempre tendremos a nuestra disposición Arduino, ESP-IDF y ESPHome, además de todos los ejemplos disponibles en GitHub para empezar a hacer nuestros propios experimentos.
Vamos allá.
Primer contacto con el ONX para controlar Home Assistant
Nada más conectar eléctricamente el ONX mediante USB-C, aparece en su pantalla un mensaje invitándonos a conectarnos por Wi-Fi a una red con un nombre del tipo onx2424g013.xxxxxx. Lo mejor de todo es que no necesitamos conocer ningún usuario ni contraseña para conectarnos a ella. Eso sí, debemos tener en cuenta que se trata de una red Wi-Fi de 2,4 GHz.
Desde el PC, una vez conectados a esta red, solo tenemos que abrir el navegador y acceder a la dirección 192.168.4.1. Nos aparecerá entonces una página desde la que podremos seleccionar uno de los puntos de acceso Wi-Fi disponibles.

En nuestro caso, ¿sorpresa?, elegimos una de nuestras redes Wi-Fi habituales, introducimos nuestro usuario y contraseña y, en cuestión de unos segundos, el ONX ya está conectado como un dispositivo más de nuestra red doméstica.

Si todo ha ido como debería, nuestro router habrá hecho su trabajo y habrá asignado una dirección IP al ONX mediante DHCP. En nuestro caso ha sido la 192.168.1.51.
Y aquí empieza lo realmente interesante. Suponiendo que tengamos ESPHome instalado —bien mediante un add-on de Home Assistant o, como en nuestro caso, en un contenedor Docker independiente—, no tendremos que hacer prácticamente nada más: al poco tiempo Home Assistant detectará el nuevo dispositivo y nos mostrará el correspondiente aviso para incorporarlo a nuestra instalación.

Vamos a aceptar la invitación y a ver qué nos ofrece el ONX…

Esto se pone interesante: ha sido arrancar y ya tenemos disponibles 38 entidades. Nada mal para un dispositivo que acabamos de conectar a nuestra red y que, hasta hace unos minutos, ni siquiera tenía asignada una dirección IP.

Eso sí, una cosa es poder consultar información y otra muy distinta poder utilizar el ONX para hacer cosas. Y como nosotros no hemos venido aquí solo de «mirones», si queremos utilizar el encoder y el botón del ONX para controlar dispositivos o ejecutar acciones en Home Assistant tendremos que concederle los permisos correspondientes.
Una vez autorizadas esas acciones, nuestro pequeño ONX deja de ser simplemente una pantalla que nos enseña información y empieza a convertirse en lo que realmente nos interesa: un pequeño mando físico para interactuar con Home Assistant.

Y ahora sí que vamos a empezar a jugar con él… pero antes tenemos que crea un Token de acceso de larga duración que seguro ya habrás creado otros aunque por si las moscas aquí tienes el procedimeinto. https://www.codewords.ai/blog/home-assistant-long-lived-access-token
Y antes de empezar… necesitamos un token
Y ahora sí que vamos a empezar a jugar con él… aunque antes nos queda un pequeño trámite. Para que el ONX pueda comunicarse con nuestra instalación de Home Assistant y, sobre todo, ejecutar acciones en ella, necesitamos crear un Long-Lived Access Token, es decir, un token de acceso de larga duración.
Seguro que muchos de vosotros ya habéis creado alguno en Home Assistant, pero por si las moscas vamos a recordar rápidamente cómo hacerlo. El procedimiento es sencillo: entramos en nuestro perfil de usuario, accedemos a Security y, al final de la página, encontraremos el apartado Long-Lived Access Tokens, desde donde podemos crear uno nuevo. Home Assistant nos mostrará el token una única vez, así que conviene copiarlo y guardarlo en un lugar seguro… o borrarlo y crear uno nuevo en el caso de que hayas olvidado guardar en lugar seguro el anterior.
En nuestro caso vamos a crear uno específico para el ONX, en lugar de reutilizar el que podamos tener para otros servicios. Así resulta mucho más sencillo identificarlo y revocarlo en el futuro si fuese necesario.
Si nunca has creado uno, puedes seguir el procedimiento paso a paso que explican en esta guía sobre los Long-Lived Access Tokens de Home Assistant.


Una vez que tengamos creado nuesto Token, lo copiamos y lo pegamos en la «casilla 7». HA Token… donde no lo volverás a ver … aunque estar, estará si en HA Token Status de Diagnóstico aparece como Configured..


Una vez creado y copiado nuestro token, ya tenemos todo lo necesario para que el ONX pueda pasar de ser un simple «mirón» a convertirse en un auténtico mando físico para Home Assistant.

Y ahora sí… vamos a ver qué podemos hacer con él.
Pero aquí aparece un pequeño problema… por culpa del mDNS
Hasta aquí todo había sido sorprendentemente sencillo. El ONX se conecta a nuestra Wi-Fi, Home Assistant lo descubre y aparecen nada menos que 38 entidades.
Así que lo lógico sería pensar que ahora podremos elegir qué dispositivos de Home Assistant queremos mostrar o controlar desde el ONX, ¿verdad?
Pues no exactamente.
Cuando llegamos al siguiente paso nos encontramos con algo bastante desconcertante: al intentar refrescar nuestra lista de entidades no aparece ninguna lista con nuestros dispositivos, entidades o servicios de Home Assistant que podamos seleccionar.

Y aquí es donde empezamos a sospechar que algo no va como debería.
No parece un problema del ONX propiamente dicho —la comunicación con Home Assistant funciona y el dispositivo ha sido correctamente incorporado—, sino de la parte encargada de descubrir los dispositivos disponibles en nuestra red.
La pista está en una pequeña sigla que probablemente muchos usuarios de ESPHome ya conozcan: mDNS.
❌ Atención: Un pequeño problema con mDNS
En una instalación convencional, ESPHome utiliza mDNS (Multicast DNS) para descubrir y localizar automáticamente sus dispositivos. El problema es que nosotros no tenemos ESPHome instalado como un add-on de Home Assistant, sino que lo ejecutamos en un contenedor Docker independiente. Y ahí es donde las cosas empiezan a complicarse, ya que mDNS utiliza tráfico multicast que no siempre se comporta como esperamos dentro de las redes virtuales de Docker.
En nuestro caso, sin embargo, la historia tenía un pequeño matiz. El ONX sí estaba anunciando correctamente su nombre mediante mDNS y pudimos comprobar que respondía perfectamente a las consultas realizadas desde el propio contenedor de Home Assistant. Es decir, el tráfico mDNS llegaba y el ONX respondía.
El problema estaba un paso más allá: en la resolución del nombre .local mediante getaddrinfo() dentro de nuestro contenedor Docker basado en Alpine Linux. Aunque recibíamos correctamente las respuestas mDNS, ese mecanismo de resolución no conseguía traducir el nombre onx2424g013-dbbaac.local a la dirección IP correspondiente.
Y claro, desde fuera todo esto resulta bastante desconcertante. El ONX está conectado, Home Assistant lo ha descubierto y sus entidades están ahí, pero la aplicación no consigue obtener la información necesaria para mostrarnos los dispositivos que queremos controlar. Si no conocemos los entresijos de mDNS y de la resolución de nombres dentro de Docker, lo más fácil es pensar que hemos hecho algo mal… o que hay algún problema en el firmware del ONX.
Spoiler: el ONX no tenía la culpa. El culpable estaba bastante más escondido y tenía nombre propio: mDNS.
La solución, por suerte, fue mucho más sencilla que encontrar al culpable: utilizar directamente la dirección IP de nuestro Home Assistant, en nuestro caso 192.168.1.144. A partir de ese momento, la comunicación funcionó con normalidad y pudimos continuar con la configuración.

Por tanto, no estábamos ante ningún fallo del ONX2424G013, sino ante una particularidad de la resolución de nombres mDNS en nuestro entorno Docker.
Y como esto es una DEMO y no un curso de redes, vamos a dejar los detalles de esta pequeña aventura para más adelante. Lo importante ahora es que ya podemos continuar y empezar a configurar qué queremos mostrar y controlar desde nuestro pequeño mando giratorio.

62