Como recordaréis, hace unos días estuvimos hablando sobre las bombillas Nanoleaf. Os decía que mi modelo de Nanoleaf Essential compradas hace 2 o 3 años por lo menos, eran compatibles con Thread pero nunca se habían actualizado a Matter.
Algunos de vosotros me habéis comentado que efectivamente es así, que Nanoleaf sacó una primera versión Thread y Bluetooth (por si no tienes un border router Thread) pero que nunca se actualización a Matter. Hace poquito, sacaron una actualización de esas mismas bombillas que también se conectan por Thread pero además son compatibles con Matter, dejando olvidado el modelo que yo tengo. Por cierto, son EXACTAMENTE iguales, por fuera solo se diferencian en el logotipo de la caja, que en el mío pone que son Thread y compatibles con Apple Homekit y en las nuevas pone que son Thread y compatibles con Matter. La bombilla también es exactamente igual, pero el código QR que viene serigrafiado en las nuevas es un código Matter y no HomeKit. El nuevo modelo compatible con Matter lo podéis encontrar en Amazon a 19€.
El caso es que estos días he estado haciendo pruebas y hay algunas diferencias importantes entre conectar la bombilla directamente a HomeKit con la app Casa de Apple o conectarla a Home Assistant para poder pasarla desde aquí a la app Casa.
Primero: emparejar la bombilla desde la app Casa o desde la app de Nanoleaf
Si hacemos lo primero, es decir, emparejar la bombilla con la app Casa de Apple o a través de la app de Nanoleaf, directamente busca un border router Thread y detecta los HomePod o Apple TV modernitos que tengamos en nuestra red, con lo cual, en el caso de que los tengamos, activa directamente el soporte Thread y se conecta a la red Thread de los dispositivos HomeKit. Ya sabéis, la red Thread que conforman los HomePod y Apple TVs, en mi caso una red con 6 dispositivos en alta disponibilidad.
Una vez emparejado, la bombilla responde realmente rápido y sin problemas debido a la conectividad Thread.
Peeeero, si no disponemos de un border router Thread, la bombilla se conecta por Bluetooth, lo cual hace que reaccione bastante más lenta y que a veces nos salga la pelotita dando vueltas cuando abrimos la app Casa hasta que se da cuenta si está disponible el dispositivo o no. Un rollo, ya sabemos los problemas históricos de los dispositivos bluetooth en HomeKit y la lentitud de los mismos.
Si la emparejamos así, funciona de maravilla pero no nos aparece en Home Assistant, ya que no es Matter… por lo que se queda ‘cautiva’ en la app Casa.
Si intentamos emparejarla con Home Assistant directamente para desde aquí pasarla a la app Casa mediante el plugin HomeKit Bridge, no hay forma de que conecte directamente por Thread. Siempre se va a conectar utilizando Bluetooth… y sí, luego la podemos publicar en la app Casa, pero responde lento porque está conectada por Bluetooth.
Después de mucho pegarme, he encontrado la forma de poder conectarla por Thread en Home Assistant y desde ahí publicarla a la app Casa… y es una forma bastante bizarra.
Emparejarla con Home Assistant a través de Thread
Una vez que ponemos la bombilla en modo emparejamiento que, para el que no lo sepa, los dispositivos de Nanoleaf se resetean quitándole la corriente durante 3 segundos, dándole corriente durante menos de 2 segundos, quitándola durante 3 segundos, dándola durante menos de 2 segundos… y así 5 veces, con lo que la ultima vez que le damos corriente la bombilla se pone en color rojo y parpadea para indicar que está en modo pairing. El caso es que en ese momento, tenemos que añadirla a la app Casa o a la app de Nanoleaf. Yo recomiendo hacerlo a la app de Nanoleaf porque desde ahí vemos las redes Thread que tenemos, en mi caso la generada por los dispositivos Apple con un montón de dispositivos y la generada por el Sky Connect de Home Assistant. La app Casa no nos da ninguna información sobre el protocolo de conexión, es bastante parca en información.
El caso es que así, la bombilla se unirá a la red Thread de Apple. Todo bien, es una red robusta formada por un montón de dispositivos. Desde aquí no le podemos decir que se una con la red Thread del Sky Connect… pero seguro que queremos hacer eso? Es una red con un solo border router mientras que en la otra tengo un montón! Si por alguna de aquellas reinicio Home Assistant, se estropea o le pasa algo al Sky Connect, perdería la conectividad. Ya sabéis que los dispositivos Thread crean una red de malla o mesa y entre ellos mismos se dan cobertura, pero siempre necesitas que haya un border router en la red.
Aún así, podríamos apagar los HomePod y los Apple TV y la bombilla se uniría a la app Casa utilizando como border router Thread el Sky Connect.
Bueno pues una vez que tenemos la bombilla emparejada con la app Casa de una forma u otra, ya la tendremos conectada por Thread y funcionando de maravilla… pero queremos que llegue a Home Assistant, para lo cual tendremos que ELIMINAR la bombilla en la app Casa SIN RESETEARLA y a los pocos segundos nos la descubrirá Home Assistant y veremos que está conectada utilizando Thread. Ojo porque si la reiniciamos o la ponemos en modo pairing de nuevo para enlazarla con Home Assistant una vez eliminada de la app Casa, no se unirá utilizando Thread sino que se conectará mediante Bluetooth. Para que se conecte utilizando Thread tenemos que eliminarla de la app Casa y no reiniciarla ni nada hasta que Home Assistant la detecte.
Es como si la bombilla tuviera la red Thread cacheada y, al eliminarla de la app Casa, vuelve a intentar buscarla y es entonces cuando la detecta Home Assistant, pero si la intentamos añadir directamente desde Home Assistant prima el protocolo Bluetooth, seguramente por un bug en la implementación de Thread en Home Assistant.
Evidentemente, desde Home Assistant ya la podremos publicar en la app Casa utilizando el HomeKit Bridge de siempre como si de cualquier otra bombilla se tratara y la tendríamos en ambas apps.
Si os preguntáis con qué red he emparejado yo estos dispositivos, os diré que la he dejado en la red thread de Apple, la que forman los HomePod y el Apple TV. Al final es una red de un montón de dispositivos que me ofrece más confianza que la del Sky Connect. Esto no significa que no quiera utilizar nunca el Sky Connect como border router thread y conectar todos los dispositivos con esa red, pero a priori mientras mantenga los HomePod y el Apple TV no es posible hacerlo porque a estos dispositivos no les puedes decir que se conecten a una red Thread existente como la que genera el SkyConnect, sino que los dispositivos de Apple SIEMPRE van a crear su propia red Thread. Es curioso ver esto desde la app de Nanoleaf porque me indica que tengo 3 redes Thread, primero la creada por los dispositivos Nanoleaf que se identifica con un nombre estúpido white_truth_95, después la del Sky Connect que se identifica como Home-Assistant y la tercera la de los dispositivos Apple que se identifica como MyHome y un número aleatorio donde se ven todos los dispositivos de Apple que hacen de border router.
Esto no significa que no valga la pena el Sky Connect, eh? Tened en cuenta que es un cacharro Multi-protocolo, por lo que lo podemos utilizar para conectar en Home Assistant dispositivos zigbee y Thread. Es ideal para alguien que esté montando la red domótica en su casa y no tenga ningún HomePod o Apple TV, pero tal y como comentábamos el otro día, al final Home Assistant es un punto único de fallo sin alta disponibilidad y en el caso de que se estropee el pincho de SkyConnect o haya algún problema con el dispositivo físico donde tenemos la instalación de Home Assistant, nos quedaremos sin red hasta que lo sustituyamos… mientras que si tenemos todos los dispositivos en la app Casa y bajo HomeKit puro, se tendrían que estropear todos los HomePod en casa para quedarnos sin red… siempre que no haya servicios que dependan sí o sí de Internet, claro, ya que con Home Assistant esto se puede limitar mucho más y hacer que toda la intercomunicación entre los dispositivos y la central domótica sea local, mientras que con HomeKit no siempre lo podemos hacer.