Cómo hacer una casa inteligente con Siri y Homebridge

Tomás Francisco
12 min readJun 17, 2019

--

Hace dos años comencé con un proyecto personal de automatizar toda mi casa y a medida que iba avanzando con este proyecto, iba compartiendo mis avances por redes sociales captando la atención de varias personas que querían saber cómo hacer lo mismo, o por lo menos por dónde empezar.

Se me ocurrió que lo mejor que podría hacer era escribir este tutorial para cualquier persona que quiera automatizar su casa utilizando HomeKit (Siri) y HomeBridge, un proyecto Open Source que permite emular la API de HomeKit y agregar dispositivos no certificados por Apple, reduciendo los costos de los accesorios notablemente y aumentando su potencial.

Spoiler Alert: Así se ve el resultado final:

HomeBridge corriendo en un servidor local con Node.js integrado a HomeKit con iOS 12

Requisitos mínimos

Primero que nada vale aclarar los requisitos mínimos para tener HomeBridge en una casa y estos son:

  • Un dispositivo con iOS 12 donde podamos configurar la App de Home (iPhone/iPad/iPod Touch):
  • Un Hub que soporte iOS 12 (HomePod, iPad o Apple TV HD/4K), el mismo funcionará como central de accesorios y permitirá manejarlos remotamente a través de una conexión a internet. En este documento de soporte de Apple se explica en detalle cómo configurarlos.
  • Una PC, Mac o Raspberry Pi que siempre esté encendida y conectada a la internet, esta servirá como servidor de HomeBridge.
  • Opcional: Un router que soporte doble banda (2.4Ghz y 5Ghz), de esta manera podemos tener un mayor control sobre los dispositivos que conectamos a HomeKit. TP-Link tiene una buena variedad de modelos en el mercado a precios accesibles.

Dispositivos compatibles con HomeKit

Este es el punto de partida, ¿qué deseamos automatizar? Pueden ser desde luces, interruptores o hasta cafeteras, dependiendo del presupuesto con el que uno cuente se van a encontrar con diferentes opciones listadas en la página oficial de Apple.

Las luces son lo primero que uno va a querer automatizar, no solo por el impacto en el bolsillo (al ser LED consumen menos energía que una luz incandescente o de bajo consumo) sino que además muchas de ellas permiten elegir el color, brillo y temperatura. De todas las marcas que hay en el mercado, tanto las LIFX como las Philips Hue son las mejores opciones (Phillips tiene representante oficial en Argentina), tienen una vida útil de aproximadamente 20 años y cuentan con Apps lo suficientemente maduras y con actualizaciones periódicas que permiten configurar desde escenas hasta automatizaciones (por ejemplo cambiar el color de las luces dependiendo el clima, horario o incluso sincronizar con la playlist favorita de Spotify).

Pero ¿qué sucede cuando no todas las opciones aparecen ahí, o mejor dicho ¿se escapan del presupuesto de uno? Acá es donde entra HomeBridge como una solución flexible y económica.

Accesorios compatibles con HomeBridge

Ya que HomeBridge es una herramienta que permite darle soporte a dispositivos no certificados por Apple, uno puede agregar Siri a una aspiradora Robot, un enchufe, una llave térmica o incluso un Smart TV. Esto es gracias a que existe una librería de más de 1600 plugins que se pueden descargar e instalar gratuitamente y donde los más populares son actualizados de forma periódica.

Entre todos estos plugins, el que más me llamó la atención es el de Sonoff, este plugin permite conectar una serie de dispositivos de domótica de fabricación china que son los más económicos (cuestan menos de U$S20 en Amazon) e incluso en Argentina existe un importador oficial. Por supuesto al ser Chinos uno pensará si es una buena idea utilizarlos, pero hasta ahora en mi experiencia personal no encontré ningún problema y me ha permitido agregarle Siri a una lámpara en mi mesa de luz utilizando el modelo Basic así también cómo a una cortina eléctrica utilizando el modelo Dual.

Además de Sonoff, existen otros plugins interesantes como darle soporte a los Smart TV de Samsung con Tizen OS, permitiendo no sólo prender y apagar la TV, sino también ejecutar un determinado canal o App como Netflix o Cine.ar (nada que envidiarle a un Apple TV). Otro plugin muy útil en lo que respecta al ahorro energético es el Smart Control Kit BGH, se le puede agregar Siri a cualquier Aire Acondicionado que tenga receptor infrarrojo o ir un paso más allá y optar por un Sensibo, mucho más avanzado, que permite ajustar la temperatura automáticamente dependiendo del clima externo o prender y apagar en base a la ubicación del teléfono (esto es ideal en el verano cuando uno llega a su casa y el ambiente ya se encuentra fresco y seco teniendo 40 grados de temperatura en la calle).

Mi favorito hasta ahora es el que desarrolló Plex (plataforma para ver tu colección personal de torrents de series y películas), con este plugin instalado (pueden ver el post en inglés acá), se puede crear un sensor que se active cuando una serie o película se está reproduciendo y asociarlo a una escena o automatización. Por ejemplo con el "modo película" las luces se pueden volver tenues, cambiar el color y adaptar el ambiente apenas uno comienza a verla y volver automáticamente a un estado anterior al detenerla. Y yendo más lejos hasta se pueden crear escenas dependiendo la categoría de la película o el nombre del show (Todavía no puedo creer que esto no lo tenga Netflix de forma nativa)

Una vez que uno tenga relevado qué accesorios comprar o plugins a utilizar, pasamos a la parte más interesante, instalar el servidor HomeBridge.

Instalación

En GitHub la página de HomeBridge se encuentra muy completa en lo que respecta a documentación y la mejor parte, existe un subreddit muy activo donde los usuarios intercambian dudas, recomendación de plugins y hasta rumores de nuevos dispositivos o accesorios con futuro soporte.

Si ya tenemos decidido dónde instalar el servidor (macOS, Windows o Linux en una Raspberry Pi) avanzamos a detallar el software necesario para su instalación:

Windows 10 64 bits

  • Node v4.3.2 o posterior (pueden descargar la última versión acá)
  • Atom (esto nos permitirá editar el archivo config.json utilizado para cargar todos los accesorios de nuestra casa)

Cabe aclarar que Node.js no es una aplicación que uno pueda ejecutar como cualquier otra App con interfaz gráfica, esta se maneja por líneas de comando. Aquí es donde comenzamos con el desafío verdadero:

Luego de instalar Atom y Node.js, el siguiente paso es abrir una terminal de Windows y chequear que tanto Node.js como NPM (se instala junto a Node.js con el mismo asistente) estén instalados correctamente. En Windows podemos escribir en el cuadro de búsqueda de inicio “cmd”, darle click derecho y elegir la opción de abrirlo como administrador. (esto es muy importante)

Luego escribimos lo siguiente:

node -v

Le damos “enter” para que nos devuelva la versión de node, si todo sale bien deberíamos tener instalado v10.15.3

Ahora hacemos lo mismo pero para chequear que tengamos NPM correctamente instalado, escribiendo lo siguiente:

npm -v

La versión 6.4.1 debería estar instalada

Ya habiendo confirmado tener las versiones correctas de Node.js y NPM, procedemos a instalar HomeBridge, para eso escribimos el siguiente comando

sudo npm install -g --unsafe-perm homebridge

Una vez que termine la instalación de HomeBridge, ya estamos listos para instalar los plugins que queramos utilizar con nuestros dispositivos conectados a internet. Acá tenemos dos opciones, explorar los más populares o simplemente instalar aquellos que hayamos descargado en base a los dispositivos que tengamos (luces, interruptores, etc). Este trabajo de research es importante ya que va a definir el costo de inversión que necesitemos hacer si ningún dispositivo con internet de lo que tenemos actualmente tiene soporte.

Para instalar el plugin, es tan sencillo como copiar y pegar el comando de “install” que se encuentra en la columna derecha, por ejemplo para instalar el de Samsung con Tizen OS utilizaremos el siguiente

sudo npm install -g homebridge-samsung-tizen

Editar el archivo Config.json

Una vez que hayamos instalado uno o dos plugins, procederemos a configurar el archivo config.json. Aquí lo que haremos es descargar el archivo de muestra desde este enlace o copiar directamente las siguientes líneas y pegarlas dentro del editor Atom, que descargamos en una primera instancia.

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

"description": "This is an example configuration file with one fake accessory and one fake platform. You can use this as a template for creating your own configuration file containing devices you actually own.",
"ports": {
"start": 52100,
"end": 52150,
"comment": "This section is used to control the range of ports that separate accessory (like camera or television) should be bind to."
},
"accessories": [
{
"accessory": "WeMo",
"name": "Coffee Maker"
}
],
"platforms": [
{
"platform" : "PhilipsHue",
"name" : "Hue"
}
]
}

Algunas notas sobre el archivo config.json listado arriba:

  • Donde dice “username” hace referencia a la dirección MAC de nuestro servidor, esta dirección es física, lo que quiere decir que corresponde al adaptador de red que utilicemos en una PC (ya sea Wi-Fi o cableada). Pueden ver más en este enlace sobre las direcciones MAC y para qué sirven. La forma más rápida de averiguar la dirección MAC del adaptador que utilizan actualmente, es a través del siguiente comando:
ipconfig /all
Diferentes direcciones MAC dependiendo de los adaptadores que cuente la PC
  • El “port” hace referencia al puerto que necesitaremos abrir tanto en nuestro router como en el Firewall de Windows para que nuestro servidor de Homebridge se pueda conectar a internet y podamos, por ejemplo, manejar de forma remota los dispositivos que tenemos conectados. Aquí podrán encontrar una guía sobre como abrir los puertos en su router. Tengan en cuenta, si tienen los modem de Fibertel/Telecentro o cualquier otro proveedor, necesitarán acceder a la configuración del mismo. No todos los modelos lo soportan, alguno de Fibertel si, en mi caso particular por la cantidad de dispositivos que tengo conectado a internet (más de 20), decidí instalar un router de TP-Link que soporta este tipo de demanda sin saturar la red interna y que además me permite manejarlo con una App y recibir alertas de cuando internet se cae en mi casa.
  • El “Pin” será el que usemos para agregar el servidor de HomeBridge a la App de Home en iOS, este lo podemos editar sin ningún limitador, siempre y cuando sean 8 dígitos.

Agregando plugins al archivo config.json

La última parte de la edición consiste en agregar los plugins que hayamos descargado, si utilizamos de ejemplo los adaptadores de luz Sonoff, será mediante este plugin llamado homebridge-ewelink-max, agregando los siguientes parámetros al archivo config.json:

{
"bridge": {
"name": "Homebridge",
"username": "XX:XX:XX:XX:XX:XX",
"port": 51826,
"pin": "123-45-678"
},

"description": "Your description here",

"accessories": [
],

"platforms": [
{
"platform" : "eWeLink",
"name" : "eWeLink",
"email" : "your-email@example.com",
"password" : "your-login-password",
"imei" : "01234567-89AB-CDEF-0123-456789ABCDEF"
}
]
}

En el caso puntual de este plugin, necesitaremos cierta información adicional para que funcione correctamente:

  1. Descargar la App eWeLink
  2. Crear una cuenta y agregar a la red wifi los adaptadores que hayamos utilizado y asegurarnos de que todos funcionen bien
  3. Crear un UUID, utilizando esta herramienta
  4. Agregar la información de login al archivo config.json
Así se ven los adaptadores que agregué a la App

Una vez que tengamos el archivo editado y listo, lo más importante es asegurarnos de que funcione correctamente, para eso vamos a copiar todo y pegarlo en esta herramienta online llamada The JSON Validator.

Si todo lo editado está correcto, recibiremos el mensaje de “valid JSON” como muestra la siguiente imagen:

El último paso consiste en guardar el archivo config.json en la carpeta donde hayamos instalado el servidor, al tratarse de Windows 10, la misma se encuentra dentro del directorio del usuario, en este caso la ruta sería:

C:\Users\nombre_de_usuario\.homebridge

Una vez que pegan ahi el archivo, el contenido de esa carpeta debería quedar de la siguiente manera:

Ahora si podemos hacer la gran prueba y correr el servidor de HomeBridge

Ejecutar servidor de HomeBridge

Con la consola de Windows aún abierta (si por alguna razón la cerraron, recuerden abrirla como usuario admin, como se explica más arriba) escriben el siguiente comando

homebridge

Si todo sale bien, verán el listado de los plugins ejecutándose, así como un código QR y del de HomeKit que utilizaremos para agregarlo a la App de Home. Si por alguna razón aparece algún error, la forma más sencilla de averiguar el origen es copiando y pegando el mensaje en Google, como es un nicho muy activado, existe mucho feedback por parte de los usuarios. En mi caso personal me encontré con errores léxicos por haber omitido alguna letra al editar el archivo config.json

Ahora lo único que queda es abrir la App de Home en cualquier dispositivo con iOS que se encuentre dentro de la misma red, una vez abierta, elegimos la opción en la esquina superior derecha que dice “Agregar Accesorios”, escanean el QR que les figura o bien escriben el codigo que les figura en la ventana de la líne de comandos.

iOS nos va a advertir que los accesorios no están certificados por Apple, omitimos el mensaje de advertencia y le damos continuar.

A medida que avancemos en el tutorial, el asistente nos pedirá que indiquemos en qué habitaciones se encuentra cada dispositivo, el ícono y nombre a utilizar, esto sólo lo tendremos que hacer una vez como para del setup inicial.

Al finalizar el proceso de instalación, nos encontraremos con la siguiente imagen listando todos los dispositivos agregados:

Si nos desplazamos dentro de la App, podremos encontrar un accesorio con el nombre de HomeBridge, al abrir el mismo podremos ver todos los accesorios que pasan a través de ese servidor (en mi caso son 10).

Incluso pueden ver el listado para asegurarse de que todos estén cargados correctamente.

Accesorios agregados a la App de Home mediante HomeBridge

Lo último que queda pendiente es aprovechar el potencial de HomeKit para crear automatizaciones o escenas de acuerdo a las rutinas que tengamos. En mi caso tengo varias donde las luces se prenden a cierta hora, se apagan al finalizar el día e incluso cuando me voy de mi casa, dandome la tranquilidad de que nada queda prendido en mi ausencia.

Escenas y automatizaciones configuradas con HomeKit e integradas a HomeKit

Últimos pasos y temas a tener en cuenta

  • HomeBridge está limitado a 100 accesorios, se pueden agregar más (quién pudiera) pero sólo corriendo múltiples instancias de HomeBridge.
  • El servidor de HomeBridge va a estar corriendo siempre y cuando tengamos la PC encendida, conectada a Internet y con la ventana del servidor abierta, una vez que la cerremos, la misma dejará de funcionar y tendremos que volver a correr el servidor mediante el comando de “HomeBridge”. Existe un tutorial en inglés para configurar HomeBridge como una tarea programada, no es sencillo pero de esa manera nos olvidamos de ejecutarlo cada vez que la PC se reinicie por alguna razón.
  • Va a sonar a cliché, pero correr HomeBridge en Windows es un dolor de cabeza por las actualizaciones mensuales de Windows 10. Para que se den una idea, en los 30 días se rompió todo el servidor por un cambio que Windows hizo con su update, a estar atentos a eso o considerar instalar HomeBridge en una Raspberry Pi (más adelante este documento para explicar cómo hacerlo con la Raspberry Pi, mientras tanto pueden pegarle un ojo a este tutorial en inglés que utilicé como base para el mio).

iOS 13 y el futuro de HomeBridge

Lo bueno de que HomeBridge sea un nicho con mucha actividad en la red es ver que no solo se mantiene actualizado, con novedades o soporte (como en Reddit) sino que además con la actualización de iOS 13 el próximo Septiembre, tendremos muchas novedades que ya entusiasmaron a la comunidad como:

  • Agregar dispositivos de audio AirPlay a las automatizaciones (por ejemplo que un playlist se active al llegar a mi casa, o que se reproduzca un mp3 con la voz de Jarvis diciendo “Buen día” mientras se levanta la persiana a las 8am 😎)
  • Agregar Siri Shortcuts a automatizaciones. Para los que no lo conocen, esta App permite agregar disparadores muy útiles para conectar Apps con rutinas . Acá hay un buen artículo en español explicando los usos de Siri Shortcuts y su potencial.
  • Soporte nativo para Cámaras de seguridad (si bien no soy fan de tener cámaras dentro de mi casa, me alegro que finalmente Apple decida darle soporte y asegurarse que el contenido filmado siempre se quede en tu cuenta de iCloud, priorizando la privacidad)

Si llegaron hasta acá, espero que no se hayan aburrido y que haya sido claro y si no lo fue, no dejen de hacerme comentarios ya que la idea es hacer de este tutorial lo más sencillo posible (dentro de la complejidad que representa).

La segunda parte irá más a fondo respecto a instalarlo en una Raspberry Pi y como editar plugins para sacarle el jugo al máximo a nuestras casas inteligentes.

¡Gracias!

--

--

Tomás Francisco

Hiperactivo🤸‍♂️Entusiasta🕺🏻Cinéfilo 🎬Gamer 🎮 Geek 👨‍💻Runner 🏃. Crecí en la Patagonia🏔Senior Producer at @R/GA