Uno de los tutoriales que más me habéis solicitado estos últimos días es que os cuente como instalar homebridge en QNAP para poder usarlo como puente entre los dispositivos Xiaomi Mijia y Homekit de Apple. En este tutorial os comento paso a paso todo lo necesario para conseguir esta tarea y no morir en el intento.
¿Qué necesitamos para seguir el tutorial?
Para instalar homebridge en QNAP y usar nuestro NAS como puente entre Xiaomi y Homekit necesitamos tener listos los siguientes «ingredientes»:
- Un servidor NAS de QNAP que permita la virtualización con Container Station. En mi caso usaré un TVS-473 pero si queréis ver la lista de servidores de QNAP soportados por Container la tenéis en el siguiente enlace.
- Paquete Container Station correctamente instalado en nuestro servidor NAS QNAP.
- Nuevo paquete Text Editor instalado en nuestro servidor NAS QNAP.
- La imagen homebridge de oznu disponible en los repositorios oficiales de Docker y que podemos usar en container station.
- Los tokens de cada uno de los dispositivos Xiaomi que queramos usar. Posiblemente la extracción de los tokens sea la tarea mas complicada pero tranquilos que lo conseguiremos
Yo en el tutorial he usado los siguientes elementos domóticos de Xiaomi. Mas adelante veréis todos los compatibles y también los enlaces por si queréis comprarlos.
- 1 x Security Kit 5 en 1
- 1 x Sensor de temperatura Xiaomi
- 1 x Sensor de temperatura Aqara
- 1 x Bombilla Xiaomi Phillips blanca
- 1 x Bombilla Yeelight RGB
Como obtener los token de Xiaomi
Para hacer esto necesitamos un móvil con Android (todos tenemos uno por casa aunque sea viejo) que esté rooteado, es decir, con el bootloader desbloqueado y con la utilidad SuperUser instalada.
- Instalamos la aplicación
Mi Home
y nos autenticamos con nuestro usuario y contraseña de la cuenta de Xiaomi. - Añadimos todos nuestros dispositivos domóticos que tengamos. Más adelante os diré los que voy a emplear para este tutorial.
- Nos conectamos vía terminal
adb
desde el ordenador al móvil Android. - Descargamos el fichero
miio2.db
a nuestro ordenador. Este fichero se encuentra dentro del directorio/data/data/com.xiaomi.smarthome/databases/
de nuestro móvil Android. - Abrimos está página web y pulsamos el botón
Select file
y elegimos el ficheromiio2.db
. Después pulsamos el botónSubmit
y obtendremos la lista de todos los tokens de los dispositivos configurados en la aplicaciónMi Home
.
Os dejo la lista de comandos a ejecutar para extraer el fichero miio2.db de nuestro terminal Android. Esto lo veis en el vídeo tutorial para que os resulte más sencillo y que no os equivoquéis en la ejecución de los mismos. También necesitamos descargar los drivers ADB desde este link.
$ adb devices
$ adb shell
$ su
# cd /data/data/com.xiaomi.smarthome/databases/
# cp miio2.db /sdcard/
# exit
Plataformas Xiaomi para homebridge
Como en el siguiente paso necesitamos instalar ciertas plataformas para que nuestros elementos domóticos de Xiaomi funcionen correctamente con Homekit.
Dentro de cada una de las plataformas se podrán configurar un montón de dispositivos. Posteriormente en el fichero de configuración, solo tendremos que añadir las plataformas y dispositivos de las mismas que usemos. No hay que añadir todo.
A continuación os voy a explicar las tres plataformas que uso yo en el tutorial y qué dispositivos son capaces de controlar cada una.
Plataforma homebridge-mi-aqara
La plataforma homebridge-mi-aqara es la principal ya que va añadir a Homekit el Gateway y todos los sensores e interruptores que lo acompañan, incluyendo los modelos aqara. La siguiente imagen muestra cuales son.
Os adjunto los enlaces de compra de los dispositivos de la plataforma homebridge-mi-aqara
que tengo yo en casa y que, en el momento de realizar este tutorial, son 100% compatibles.
- Kit de seguridad de Xiaomi 5 en 1
- Sensor de presencia Xiaomi
- Sensor se presencia Aqara
- Sensor de temperatura Xiaomi
- Sensor de temperatura Aqara
Plataforma homebridge-mi-philips-light
La plataforma homebridge-mi-philips-light va a añadir a Homekit la lámpara de escritorio smart versión 2 (MiPhilipsTableLamp2), la bombilla blanca (MiPhilipsSmartBulb) y el plafón de techo (MiPhilipsCeilingLamp).
Os adjunto los enlaces de compra de los dispositivos de la plataforma homebridge-mi-philips-light
que tengo yo en casa.
- Bombilla blanca Xiaomi Phillips
- Lámpara Phillips Smart Lamp (ojo, me ha dejado de funcionar. Estoy investigando el problema)
Plataforma homebridge-re-yeelight
La plataforma homebridge-re-yeelight controla toda la familia Yeelight incluyendo bombilla blanca (WhiteBulb), bombilla RGB (ColorLEDBulb), lampara de escritorio bedside (DeskLamp), plafón de techo (CeilingLamp) y tiras led (ColorLedStrip).
Os adjunto los enlaces de compra de los dispositivos de la plataforma homebridge-mi-philips-light
que tengo yo en casa.
- Bombilla Yeelight RGB
- Lampara de escritorio Bedside (ojo, me ha dejado de funcionar. Estoy investigando el problema)
Creación del contenedor QBridge
Siguiendo las instrucciones que veis en el vídeo de este artículo, desde la aplicación Container Station de QNAP hemos realizar los siguientes pasos para descargar la imagen, crear y configurar correctamente contenedor que usaremos para homebridge
.
- Descargar la imagen de homebridge de oznu.
- Crear el contenedor QBridge.
- Configurar las variables de entorno y la red (en modo Bridge) del contenedor.
- Realizar la instalación de las extensiones necesarias con el comando Yarn.
DSM_HOSTNAME Jupiter
yarn add [email protected]
yarn add homebridge-mi-aqara
yarn add homebridge-mi-philips-light
yarn add homebridge-re-yeelight
Analizando el fichero config.json
Una vez que tenemos creado y configurado el contenedor QBridge
de homebridge en QNAP y que hemos instalado todas las extensiones, es hora de editar el fichero config.json
. Este fichero contendrá la configuración de los dispositivos de Xiaomi que queremos que se vean en Apple HomeKit.
Mi fichero config.json
lo podéis descargar pulsando este enlace. Os puede servir de prueba y lo podéis adaptar para vuestras necesidades, en función del número y tipo de dispositivos que tengáis.
A continuación os muestro una serie de imágenes con las partes que podéis configurar en el fichero config.json
y os explico a grandes rasgos como funciona cada una. Por eso os aconsejo que a la vez que leéis estas líneas tengáis el fichero abierto.
Este fichero se encuentra en la siguiente ruta de nuestro servidor NAS de QNAP. Ahora con la nueva aplicación Text Editor de QNAP es muy fácil su edición sin tener que abandonar QTS para tal fin. Podéis conocer mejor cómo usar la aplicación Text Editor de QNAP en este enlace.
La primera parte del fichero es el bridge
o configuración general, es decir, contiene los datos que hacen a Apple Homekit creer que nuestro QNAP es un puente domótico.
En esta parte configuramos los siguientes parámetros. Hay que tener en cuenta que podemos darles el valor que queramos.
"name"
: Es el nombre que aparecerá en la appCasa
de iOS cuando intentemos añadir el puente domótico que emula en contenedor que hemos creado."username"
: Es una cadena de caracteres que usa formato de dirección mac."port"
: Puerto ficticio por donde saldrá la conexión de homebridge."pin"
: Clave que se usará en la app Home de iOS para añadir el homebridge."manufacturer"
: Fabricante ficticio del puente homebridge."model"
: Modelo ficticio del puente homebridge."serialNumber"
: Numero de serio ficticio del puente homebridge.
La segunda parte del fichero contiene la configuración de las tres plataformas comentadas anteriormente y que ya hemos de tener instaladas en nuestro contenedor de QNAP.
Os voy a comentar de forma general qué parámetros son los más importantes para que aprendáis a añadirlos y configurarlos por vuestra cuenta. De todas formas siempre podréis poneros en contacto conmigo si tenéis alguna duda.
"platforms"
: Representa el conjunto de plataformas que usaremos en nuestro puente domóticoQBridge
. Están delimitadas por []."platform"
: Representa una plataforma en concreto (por ejemploMiAqaraPlatform
). Si observáis el ficheroconfig.json
utilizo tres. En este caso, es muy importante que respetéis los nombres de las plataformas tal y como os las pongo yo."deviceCfgs"
: Contiene los parámetros de configuración de cada dispositivo en cada una de las plataformas. A continuación os voy a comentar los más importantes y que tendréis que cambiar según vuestra configuración de red."gateways"
: Contiene la información de cada uno de los Gateways de Xiaomi que tengamos. Si queréis saber qué son esos números podéis leer este artículo."type"
: Contiene el nombre del dispositivo de la plataforma que estamos configurando. Por ejemplo"MiPhilipsSmartBulb"
"ip":
Valor con la dirección IP de nuestra red que ha sido asignada al dispositivo configurado. Por ejemplo"192.168.1.122"
. Si queréis averiguar las direcciones IP, la aplicación Fing para nuestro teléfono móvil os puede ayudar."token"
: Contiene la cadena que hemos obtenido anteriormente para cada uno de los dispositivos de nuestro ecosistema domótico Xiaomi. Por ejemplo, este para mi bombilla Philips"06f5510636b05b32d6279f9d2ad2c74f"
.
Una vez que hemos realizado todas las modificaciones del fichero lo guardamos, detenemos el contenedor y lo volvemos a iniciar para que actualice todas las partes que hemos cambiado.
Configuración de la aplicación Casa en iOS
En este último paso tenemos lo más sencillo se hacer a la hora de instalar homebridge en QNAP. Añadir nuestro puente QBridge
a la aplicación Casa de Apple en iOS. Para ello tenemos que hacer lo siguientes pasos:
- Abrimos la aplicación
Casa
en el iPhone y pulsamosEmpezar
- Pulsamos
Añadir accesorio
- Elegimos la opción
¿No tienes un código o no puedes escanearlo?
- Seleccionamos el puente
QBridge
- Introducimos el pin que configuramos en el fichero
config.json
- Cambiamos el nombre y la habitación en la que se encuentre casa dispositivo
Vídeo tutorial para instalar homebridge en QNAP
Una vez que hemos leído y comprendido cómo funciona la configuración de homebridge en QNAP, es hora de ponerse manos a la obra. En el siguiente vídeo tenéis, paso a paso, todo lo necesario para empezar a disfrutar de vuestra domótica de Xiaomi con Apple Homekit a través de vuestro servidor NAS de QNAP.
Conclusiones
La motivación que me ha llevado a abandonar homebridge en la Raspberry Pi, e implementar la misma solución en mi TVS-473 es el ahorro de dispositivos. Teniendo un servidor NAS de QNAP que nos haga de puente a nuestra red domótica de Apple al que podemos acceder desde cualquier sitio y en cualquier momento no merece la pena implementarlo en la Raspberry Pi.
Espero que os haya gustado este tutorial sobre cómo usar homebridge en QNAP como puente entre Xiaomi y Homekit y como no, en ese caso que lo compartáis con vuestros familiares y amigos para que ellos también puedan disfrutar de una vida 1.0 más cómoda.
Nos leemos en un siguiente artículo.
Un saludo, JM