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

Raspberry Pi con el logo de HomekitFundación Raspberry Pi, Apple

Muchos dispositivos inteligentes ignoran la compatibilidad con Apple HomeKit y solo se integran 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 te gusta HomeKit, un gran problema es que pocos dispositivos inteligentes lo admiten. Por ejemplo, lo único que frena algunas bombillas inteligentes baratas es su falta de compatibilidad con HomeKit. La elección de Amazon para una «bombilla inteligente» es una cuatro paquetes de TECKIN, que, al momento de escribir este artículo, cuesta alrededor de $ 40, que es menos que una sola bombilla LIFX.

Luces inteligentes Tuya

Por supuesto, no son tan premium como LIFX; los colores no son tan vívidos y hacen un zumbido audible en el baño, pero por $ 10 cada uno, tienen una relación calidad-precio inmejorable.

Sin embargo, el principal problema es que no son compatibles con HomeKit. No son del todo estúpidos: funcionan con Google Home, Alexa, IFTTT y la aplicación del fabricante. Son adecuados para alguien que solo tiene bombillas inteligentes TECKIN.

Sin embargo, dado 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 puedes incluirlos en escenas con bombillas de otras marcas ni utilizarlos en automatizaciones. Si alguna vez ha invertido en HomeKit, probablemente sea un factor decisivo.

Conoce Homebridge

Afortunadamente, existe 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 funcionan con otros protocolos. Simplemente agrega el puente como un dispositivo en HomeKit, y registra todas las luces conectadas a él en HomeKit. Siempre que solicitas actualizar una luz, tu teléfono habla con el puente y el puente habla con la luz.

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

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

Básicamente, lo ejecuta en el Pi y agrega todos los dispositivos «silenciados» a la aplicación Inicio. Cuando intenta controlar la bombilla a través de la aplicación Home o Siri, Homebridge habla con los dispositivos por usted. Una vez que lo configura, es como si el dispositivo hubiera admitido HomeKit en primer lugar.

Esto requiere que el dispositivo esté ejecutando Homebridge en todo momento, por lo que no es algo que instalaría en su computadora portátil. Una Raspberry Pi es ideal, pero si tienes un dispositivo antiguo que puedes reutilizar como servidor o escritorio que todavía está funcionando, puedes ponerlo allí.

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

Para la mayoría de las personas, sin embargo, la configuración es solo una cuestión de 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 algo 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 usarlo. Si su máquina está ejecutando Linux, probablemente pueda obtenerlo 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 de nodo para obtener instrucciones 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

Entonces puede instalar Homebridge en todo el mundo a través de npm, Como se muestra abajo:

sudo npm install -g --unsafe-perm homebridge

También desea instalar cualquier complemento de marca que necesite, porque Homebridge es solo un marco. Para las bombillas TECKIN, por ejemplo, el complemento es homebridge-tuya-web, que también se está asentando en todo el mundo.

Escribiría lo siguiente:

npm i homebridge-tuya-web -g

Una vez 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 puedes usar el -U parámetro 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 su asignación a otros dispositivos.

En el vacío platforms array, usted establece la configuración para cada complemento. Debería poder encontrar instrucciones y ejemplos en la página de GitHub de cada complemento.

En el siguiente ejemplo, el homebridge-tuya-web plug-in para bombillas TECKIN quiere saber mi nombre de usuario y contraseña para conectarse a la API de la aplicación de 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 dispositivo debería mostrar un código QR gigante que podría requerir que reduzca la imagen. Escanéelo con la aplicación Home para agregarlo y cualquier dispositivo conectado a HomeKit.

Código QR en la terminal

Homebridge carga sus complementos y debería registrar un mensaje en pantalla para cada dispositivo que encuentre. Debería verlos todos en HomeKit después de agregarlos, 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 cálidos correctamente, pero después de algunos ajustes pude configurar algunas escenas adecuadas.

Aún puede configurar los dispositivos en sus propias aplicaciones, esperar a que la aplicación Home se actualice y luego preparar el escenario en HomeKit con la configuración preestablecida.

Si necesita volver a agregar Homebridge, querrá eliminar el persist/ en el directorio de configuración, luego elimine el puente 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 hacer esto a través de un servicio Unix. Configure esto después de verificar que Homebridge esté funcionando como se esperaba.

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

sudo useradd -M --system homebridge

Establecer una contraseña:

sudo passwd homebridge

Entonces necesitarás mover el homebridgeconfiguración fuera de su directorio personal personal. /var/lib/homebridge/ debería estar bien :

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

Asegúrese de que la persona que usa homebridge tiene la propiedad de este directorio y de todas las subcarpetas:

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

Una vez hecho esto, puede crear el servicio. Para hacer esto, cree un nuevo archivo llamado homebridge.service dentro /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 activar su servicio (configúrelo para que se ejecute al inicio):

sudo systemctl enable homebridge

Y ejecútelo:

sudo systemctl start homebridge

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

journalctl -fn 50 -u homebridge
Experto Geek - Tu Guía en Tendencias Tecnológicas