Integración del controlador eedomus con HomeKit – Parte 1
- Guía para integrar eedomus con HomeKit de Apple para visualizar y actuar a través de Siri en dispositivos registrados en eedomus usando una Raspberry Pi.
Como hemos podido ver en las numerosas guías que poblan el blog de Domótica Doméstica, eedomus es un controlador muy potente y versátil que nos permite integrar infinidad de dispositivos de manera relativamente sencilla. Otra de las grandes ventajas de este controlador es que dispone de una API que nos permite, entre otras cosas, conocer el estado de los módulos y actuar sobre ellos en cualquier momento y desde cualquier lugar de forma intuitiva.
Otro dispositivo del que podemos encontrar un buen número de artículos e información es la Raspberry Pi: ese pequeño ordenador que puede ampliar notablemente las capacidades domóticas de nuestro hogar.
En este tutorial, que vamos a separar en tres artículos, veremos cómo podemos controlar los dispositivos que tenemos en eedomus con comandos de voz mediante Siri, el asistente de voz de Apple, haciendo uso de los dos dispositivos arriba nombrados: eedomus y Raspberry Pi. Es decir, controlaremos la eedomus con Homekit de Apple.
Antes de comenzar, vamos a dar un repaso a los dispositivos que vamos a necesitar para controlar nuestra eedomus con Homekit:
- Eedomus
- Servidor con homebridge + plugin eedomus (en el caso de este tutorial nos centraremos en la instalación en Raspberry Pi 2)
- Dispositivo iOS con Siri
- App para HomeKit en iOS
Opcional:
- AppleTV (a partir de la 3ª generación)
El AppleTV nos permitirá tener control sobre HomeKit desde fuera de nuestra red doméstica, es decir, desde cualquier parte del mundo en que nos encontremos y tengamos conexión a internet. Va a ser la pasarela entre homebridge e internet.
Es importante tener en cuenta que la compatibilidad de AppleTV con HomeKit es a partir de la 3ª generación, es decir, sólo funciona con el último y penúltimo modelo.
Dispositivo iOS con Siri:
- iPhone
- iPad
- Apple Watch
Aquí tenía esperanzas de poder controlar HomeKit utilizando Siri desde el nuevo mando del AppleTV de 4ª generación, pero por desgracia todavía no es posible.
App para HomeKit en iOS:
Apple no tiene aplicación oficial para HomeKit, pero hay aplicaciones de terceros como Elgato Eve, iDevices o Insteon+ (todas ellas gratuitas). Personalmente, la que más me ha gustado de todas es “Elgato Eve“.
También es recomendable instalar la aplicación “Discovery – Bonjour Browser“, que nos permitirá comprobar la comunicación con homebridge.
Servidor con homebridge:
Este tutorial se centra en el uso de la Raspberry Pi 2 como pasarela entre HomeKit y el paquete NodeJS homebridge. Además de esto es necesario instalar el paquete para eedomus. Se trata de un paquete no oficial que he desarrollado para los lectores del blog y del foro, aunque está publicado en github y cualquiera puede hacer uso de él. Esto también posibilita colaborar o mejorarlo.
Si no disponemos de Raspberry, es posible instalar homebridge en dispositivos linux, MacOS o incluso Windows.
¿Qué es homebridge?
Se trata de una aplicación NodeJS que actúa como servidor y emula la API HomeKit de iOS. Soporta Plugins, que son módulos que funcionan de puente entre HomeKit y las APIs de aplicaciones de terceros, en nuestro caso el controlador eedomus.
¿Qué vamos a poder hacer?
Lo que conseguiremos una vez hayamos finalizado los pasos de este tutorial, es a través de Siri interactuar con nuestros dispositivos (tanto los Z-Wave como cualquier dispositivo que tengamos en nuestro eedomus).
Por ejemplo, vamos a poder decirle a Siri:
Siri, enciende la televisión
Siri, ¿qué temperatura hace en el despacho?
Siri, apaga las luces
Siri, enciende las luces de la planta baja
Siri, salgo ya! (y que nos cierre las puertas del garaje)
Instalación en Raspberry Pi 2
Lo primero que deberíamos hacer para poder instalar homebridge (con las dependencias necesarias), y para evitar problemas, será actualizar nuestra versión de sistema operativo.
Las pruebas que he realizado han sido con la distribución Raspbian, y tras encontrarme con algún que otro problema para instalar homebridge finalmente pude hacerlo al actualizar a la última distribución, Jessie.
Es totalmente recomendable realizar la actualización con acceso físico a la Raspberry, es decir, conectando teclado y monitor en vez de actualizar por ssh.
Además, es muy recomendable realizar estos pasos como usuario root (podríamos hacerlo con nuestro usuario utilizando sudo antes de los comandos, pero se nos puede olvidar alguno, complicando la instalación).
– CASO A: nueva instalación desde cero:
Si tenemos una Raspberry nueva, sin sistema operativo, no nos importa nada lo que teníamos, o simplemente lo vamos a instalar en otra tarjeta de memoria, podemos instalar directamente la versión Jessie de Raspbian bajándolo desde su sitio web.
Para instalarlo desde cero, y de manera más sencilla, se puede hacer desde NOOBS, que no es más que un simple instalador que contiene Raspbian.
Una vez que lo tengamos instalado, con Jessie, nos saltarnos el siguiente paso “CASO B” y ya podemos ir a la siguiente entrega, donde veremos cómo instalar homebridge.
– CASO B: actualización desde Wheezy
Toda la información para actualizar a Jessie ha sido sacada de este enlace.
Siempre antes de actualizar o liarnos a instalar paquetes como locos, debemos hacer alguna copia de seguridad para evitar una posible pérdida de datos.
Una vez tengamos un backup de lo que necesitemos, vamos a ver como pasar de Raspbian Wheezy a Jessie:
Actualizamos todos los paquetes a su última versión:
# apt-get update # apt-get upgrade # apt-get dist-upgrade
Actualizamos la lista de las fuentes de apt:
# sed -i 's/wheezy/jessie/g' /etc/apt/sources.list
Comprobamos que tenemos algo así:
root@raspi:~# cat /etc/apt/sources.list deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi # Uncomment line below then 'apt-get update' to enable 'apt-get source' #deb-src http://archive.raspbian.org/raspbian/ jessie main contrib non-free rpi #deb http://archive.raspberrypi.org/debian jessie main
Es decir, la primera línea es la válida para el repositorio de paquetes, y el resto las tenemos comentadas (o lo que es lo mismo, se ignoran).
Actualizamos a Jessie:
Una vez que empecemos el procedimiento de actualización, nos dará a elegir si queremos reiniciar manualmente los servicios que están corriendo.
El reinicio manual de los servicios es recomendable, porque así podemos elegir los servicios a reiniciar, por ejemplo el demonio SSH, lo que sería importante si estamos llevando a cabo la actualización de la Raspberry por ssh, ya que en algún caso podríamos perder el acceso. De nuevo, es recomendable llevar a cabo la actualización con teclado y pantalla.
Teniendo claro lo arriba expuesto, empezamos con la actualización. Se trata de los mismos comandos que al principio, pero al haber cambiado las fuentes lo hará con los paquetes de la nueva versión:
# apt-get update # apt-get upgrade # apt-get dist-upgrade
Una vez finaliza, debemos reiniciar nuestra Raspberry Pi:
# reboot
Cuando arranque, podemos comprobar que la versión ha sido actualizada, ejecutando el comando hostnamectl:
root@raspi:~# hostnamectl Static hostname: raspi Icon name: computer Chassis: n/a Machine ID: 440a68c6f28d3e287c6b6c7b554a9684 Boot ID: 9e84c98e9d174b98862a2c8c5b15339c Operating System: Raspbian GNU/Linux 8 (jessie) Kernel: Linux 4.1.13-v7+ Architecture: arm
Si habéis llegado hasta aquí, !enhorabuena! !ya tenéis parte del trabajo hecho!
Hasta aquí la primera parte de esta serie de tutoriales. En la siguiente entrega veremos cómo instalar homebridge.
Ale pues, ya me he pedido la raspi 😜
Muchas gracias Carlos. No me he podido aguntar, y aún a falta de la segunda parte… ya he conseguido hacerlo funcionar. Es un pasote esto.
Genial! Realmente aunque el tutorial sean varias partes, si tienes algo de soltura con linux y raspberry es mucho más sencillo de lo que parece, es solo instalar homebridge y el plugin que he subido para eedomus y listo.
Los que estéis esperando la segunda parte, permaneced atentos al blog!
Enhorabuena por el blog!
Todo esta muy bien escrito para la gente que somo un poco mas torpes.
Una pregunta, tenemos el sistema Airzone y at home en una nueva casa. Nos gustaria conectar los dispositivos controlados por este sistema (persianas, luces, aire y calefaccion..) directamente a traves de apple home sin tener que usar su aplicacion.
Es posible hacer un bridge o pasarela para que esto sea posible?