Cómo conectar cualquier dispositivo inteligente a HomeKit (con una Raspberry Pi)

Muchos dispositivos inteligentes omiten la compatibilidad con Apple HomeKit y se integran solo con Alexa, Google y otras plataformas. Sin embargo, con este truco de Raspberry Pi, puede agregar compatibilidad con HomeKit a cualquier dispositivo inteligente con el software Homebridge de código abierto.

HomeKit para cualquier dispositivo inteligente

Si está todo incluido en HomeKit, un gran problema es la cantidad de dispositivos inteligentes que lo admiten. Por ejemplo, lo único que frena algunas bombillas inteligentes de bajo costo es su falta de compatibilidad con HomeKit. Amazon’s Choice para una «bombilla de luz inteligente» es una paquete de cuatro de TECKIN, que, en el momento de escribir este artículo, cuesta alrededor de $ 40, menos que una sola bombilla LIFX.

Luces inteligentes Tuya

Claro, no son tan premium como LIFX; los colores no son tan vibrantes y emiten un zumbido audible en el baño, pero por $ 10 cada uno, tienen un valor inmejorable.

Sin embargo, el problema principal es que no tienen soporte para HomeKit. No son del todo tontos: funcionan con Google Home, Alexa, IFTTT y la aplicación del fabricante. Están bien para alguien que solo tiene bombillas inteligentes TECKIN.

Sin embargo, debido a que no puede acceder a ellos desde HomeKit, no puede controlarlos desde la aplicación Inicio, el widget en el Centro de control o Siri. Tampoco puede incluirlos en escenas con bombillas de otras marcas o usarlos en Automatizaciones. Si ya ha invertido en HomeKit, lo más probable es que esto sea un factor decisivo.

Conoce Homebridge

Afortunadamente, hay un truco que hace que estas bombillas en particular sean mucho más útiles. La API de HomeKit permite dispositivos llamados puentes, como este de Philips Hue, para conectar dispositivos secundarios que operan con otros protocolos. Simplemente agrega el puente como un dispositivo en HomeKit, y registra cada luz conectada a él en HomeKit. Cada vez que solicitas actualizar una luz, tu teléfono habla con el puente y el puente habla con la luz.

Entonces, un puente simplemente transmite información de una API a otra. Debido a que puede controlar las bombillas TECKIN a través de Internet, es completamente posible conectarlas a HomeKit con solo software, no se requiere hardware propietario.

Si tienes una Raspberry Pi por ahí ($ 5 Pi cero está bien), puede configurarlo como un puente con un marco llamado Homebridge. Esta aplicación ligera de NodeJS emula la API de HomeKit y reenvía las solicitudes a sus dispositivos inteligentes que no son de HomeKit.

Básicamente, lo ejecuta en el Pi y agrega cada dispositivo ‘tonto’ a la aplicación Home. Cuando intentas controlar la bombilla a través de la aplicación Home o Siri, Homebridge habla con los dispositivos por ti. Después de configurarlo, es como si el dispositivo tuviera compatibilidad con HomeKit en primer lugar.

Esto requiere que el dispositivo ejecute Homebridge en todo momento, por lo que esto no es algo que instalaría en su computadora portátil. Una Raspberry Pi es ideal, pero si tiene un dispositivo antiguo que puede reutilizar como servidor o escritorio que siempre está en funcionamiento, puede instalarlo allí.

Homebridge es un marco y puede ampliarlo con complementos. Tiene un respaldo de la comunidad bastante grande, por lo que hay una buena posibilidad de que cualquier dispositivo inteligente dado tenga un complemento Homebridge para agregar soporte. Si su dispositivo no tiene un complemento, pero su dispositivo inteligente tiene una API y usted es experto en tecnología, puede escribir uno usted mismo.

Para la mayoría de las personas, sin embargo, la configuración es solo instalar Homebridge y el complemento de marca para el dispositivo, junto con un poco de configuración. Si puede usar la línea de comandos y tiene un poco de tiempo, es bastante fácil.

Instalación y configuración de Homebridge

Homebridge es una aplicación NodeJS, por lo que debe instalar node y npm para usarla. Si su máquina ejecuta Linux, probablemente pueda obtenerla de su administrador de paquetes.

En Ubuntu, debe escribir lo siguiente para configurar el repositorio de Node manualmente y luego instalar nodejs:

curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash -
sudo apt-get install -y nodejs

De lo contrario, puede consultar Página de descarga del nodo para obtener información sobre cómo instalarlo para su sistema operativo en particular.

Si está en Linux, también necesita instalar algunas dependencias, como se muestra a continuación:

sudo apt-get install libavahi-compat-libdnssd-dev

Luego, puede instalar Homebridge globalmente a través de npm, como se muestra a continuación:

sudo npm install -g --unsafe-perm homebridge

También desea instalar los complementos de marca que necesita, ya que Homebridge es solo un marco. Para las bombillas TECKIN, por ejemplo, el complemento es homebridge-tuya-web, que también se instala a nivel mundial.

Escribiría lo siguiente:

npm i homebridge-tuya-web -g

Después de que todo esté instalado, ¡puedes usarlo! Escriba lo siguiente para ejecutar Homebridge una vez e inicializar todo:

homebridge

Se quejará de la falta de configuración, que debe crear. El directorio predeterminado es ~ / .homebridge /, pero puede usar el parámetro -U si desea moverlo.

Escriba lo siguiente para crear un nuevo archivo de configuración JSON en esta carpeta:

nano ~/.homebridge/config.json

Independientemente de los complementos que utilice, necesita la siguiente configuración básica:

{
  "bridge": {
    "name": "Homebridge",
    "username": "CC:22:3D:E3:CE:30",
    "port": 51826,
    "pin": "031-45-154"
  },

  "description": "Custom HomeBridge Server",

  "ports": {
    "start": 52100,
    "end": 52150,
  },

  "platforms": [

  ]
}

Esto configura Homebridge con un puerto, un nombre, un PIN y un rango de puertos predeterminados disponibles para asignar a otros dispositivos.

Dentro de la matriz de plataformas vacía, coloca la configuración para cada complemento. Debería poder encontrar instrucciones y ejemplos de esto en la página de GitHub de cada complemento.

En el siguiente ejemplo, el complemento homebridge-tuya-web para las bombillas TECKIN quiere saber mi nombre de usuario y contraseña para conectarse a la API de la aplicación de la bombilla, y algunas otras cosas:

  "platforms": [
     {
       "platform": "TuyaWebPlatform",
       "name": "TuyaWebPlatform",
       "options":
         {
           "username": "username",
           "password": "password",
           "countryCode": "1",
           "platform": "smart_life",
           "pollingInterval": 10
         }
     }
   ]

Una vez que todo esté configurado, Homebridge debería estar listo para funcionar. Ejecútelo de nuevo y su terminal debería mostrar un código QR gigante que podría obligarlo a alejarse. Escanee esto con la aplicación Home para agregarlo y todos los dispositivos conectados a HomeKit.

Código QR en la terminal

Homebridge carga sus complementos y debe registrar un mensaje en la pantalla para cada dispositivo que encuentre. Debería verlos todos en HomeKit después de que se agreguen, y deberían ser completamente funcionales.

Noté un ligero retraso en comparación con mis bombillas LIFX. Probablemente esto se deba a que las bombillas se controlan a través de una API en lugar de directamente. Al principio, las bombillas tampoco mostraban algunos blancos y blancos cálidos correctamente, pero después de algunos ajustes, pude configurar las escenas adecuadas.

Siempre puede configurar los dispositivos en sus propias aplicaciones, esperar a que la aplicación Home se actualice y luego configurar la escena en HomeKit con la configuración prefabricada.

Si necesita volver a agregar Homebridge, querrá eliminar la carpeta persist / en el directorio de configuración, y luego eliminar el puente de HomeKit de la configuración de cualquier bombilla conectada en la pestaña «Puente».

Agregar Homebridge como servicio

Si desea que Homebridge se ejecute todo el tiempo, probablemente desee configurarlo para que se reinicie si falla o si su Raspberry Pi se reinicia. Puede hacerlo a través de un servicio Unix. Configure esto después de haber verificado que Homebridge funciona como se esperaba.

Primero, agregue un nuevo usuario de servicio, llamado homebridge:

sudo useradd -M --system homebridge

Establecer una contraseña:

sudo passwd homebridge

A continuación, tendrá que mover la configuración del puente de inicio fuera de su directorio de inicio personal. / var / lib / homebridge / debería estar bien:

sudo mv ~/.homebridge /var/lib/homebridge/

Asegúrese de que la persona que usa Homebridge tenga la propiedad de ese directorio y todas las subcarpetas:

sudo chown -R homebridge /var/lib/homebridge/

Una vez hecho esto, puede crear el servicio. Para hacerlo, cree un nuevo archivo llamado homebridge.service en / etc / systemd / system /:

sudo nano /etc/systemd/system/homebridge.service

Y luego pega la siguiente configuración:

[Unit]
Description=Homebridge service
After=syslog.target network-online.target

[Service]
Type=simple
User=homebridge
ExecStart=/usr/bin/homebridge -U /var/lib/homebridge
Restart=on-failure
RestartSec=10
KillMode=process


[Install]
WantedBy=multi-user.target

Vuelva a cargar el demonio de servicios para actualizarlo con sus cambios:

sudo systemctl daemon-reload

Ahora, debería poder habilitar su servicio (configurándolo para que se ejecute en el arranque):

sudo systemctl enable homebridge

Y empieza:

sudo systemctl start homebridge

Si necesita depurar errores que surgen de la configuración del servicio, puede ver los registros del servicio escribiendo:

journalctl -fn 50 -u homebridge