En este pequeño artículo explico cómo controlar luces HUE con una Raspberry Pi. En mi caso, lo uso para encender las luces cuando mi sistema de videovigilancia detecta movimiento (para dar la «bienvenida» a quien entre en casa, sea bienvenido o no) 😛
En concreto, como mi Raspberry es «headless», esto es, no uso monitor-teclado, uso hue-shell (hay otras soluciones basadas en entornos gráficos o APIs)
Instalar hue-shell
La instalación es muy fácil. Con este comando ya tienes el paquete instalado:
sh -c "OPT=install; $(curl -fksSL https://raw.github.com/Josef-Friedrich/Hue-shell/master/install.sh)"
Una vez tienes el paquete instalado, necesitas configurar hue-shell con una IP y un usuario. Si no sabes la IP de tu bridge, hay varias maneras de averiguarla. La más fácil, es visitar esta URL (conectado a la misma red que el bridge)
Hay otros métodos descritos en la propia web de desarrolladores de Philips HUE en este enlace
Crear un usuario para la Raspberry
Para poder utilizar las luces HUE desde una Raspberry, has de crear un usuario en el propio bridge. Autorizar un dispositivo, de la misma manera que lo autorizas cuando empiezas a usar un móvil para controlarlo.
Para ello, vamos a interactuar directamente con el puente, usando la API de Philips HUE. Has de visitar la página del bridge (usando la IP que averiguamos antes) Para estos ejemplos, la IP del bridge es la
http://192.168.2.145/debug/clip.html
En la URL pon /api y en el cuerpo del request
{"devicetype":"nombre_de_la_app#raspberry"}
Puedes renombrar nombre_de_la_app por un nombre más amigable, y Raspberry por el nombre de tu Raspberry Pi.
Con esto obtienes un nombre de usuario único, que será el que use hue-shell para interactuar con tus luces.
Recuerda, tienes que apretar el botón del bridge, tal y como haces cuando enlazas un móvil.
Si funciona, obtienes el nombre de usuario. Algo así:
Para validar que funciona, haz esta verificación:
Entra en
http://192.168.2.145/api/<usuario>/lights
Y obtendrás la lista de luces (en formato JSON)
Configurando hue-shell con esa IP y el usuario
Lo siguiente entonces es editar el fichero
/etc/hue-shell/hue-shell.conf
y poner la IP y el usuario
Con esto, hue-shell ya está configurado. Ahora, a probar que funciona. Ejecuta el comando
hue get all
Y obtendrás la lista de las luces
Encendiendo y apagando luces HUE con una Raspberry
Sabiendo la bombilla que quieres controlar, con el comando hue set enciendes y apagas las luces, eliges color, etc. Para encender la bombilla 1:
hue set 1 –on
Simplemente con el comando hue obtienes la lista entera de comandos disponibles
Aquí tienes la documentación completa del paquete: