Cómo usar Siri para establecer la escena para el romance
Ayer le mostramos cómo crear una luz de bricolaje con Wi-Fi Cómo hacer una luz de bricolaje con Wi-Fi controlada por Siri Cómo hacer una luz de bricolaje con Wi-Fi controlada por Siri En esta guía, aprenderá a crear Una luz controlable por wifi, y controlarla con Siri. Leer más que podría ser controlado con Siri; Hoy vamos a aprovechar ese conocimiento para hacer que Siri funcione también con un sistema de sonido de Sonos, y luego armarlo todo en una escena romántica..
Echa un vistazo al resultado final:
El video de arriba no fue falso ni se puso en escena; todo es posible utilizando Siri y la guía a continuación. No se requiere jailbreak, aunque hay alguna programación para la cual proporcioné el código.
Cosas que necesitarás:
- Frambuesa pi
- dispositivo iOS
- Iluminación de color compatible con Siri, como Philips Hue con un hub de segunda generación, o nuestra luz de bricolaje Wi-Fi
- Sonos (u otro dispositivo de reproducción con una API HTTP)
- (Opcional) NodeMCU / ESP8266, relés y tomas de corriente; o un accesorio de toma de corriente HomeKit comercial
Por qué es ésto tan complicado?
HomeKit y el control de sus dispositivos a través del control de voz es realmente bueno. Desafortunadamente, el ecosistema cerrado que es Apple, HomeKit está restringido a un puñado de dispositivos. Sonos no es uno de ellos. Sin embargo, no todo está perdido. Gracias a algunos piratas informáticos que trabajan duro, el protocolo HomeKit se diseñó a la inversa recientemente y, como se demostró en nuestro último proyecto, ahora puede crear sus propios dispositivos HomeKit falsos. Estaremos aprovechando eso.
Comience por seguir nuestro tutorial de bricolaje Wi-Fi light Cómo hacer una bricolaje con luz Siri Wi-Fi Cómo hacer una bricolaje con luz Siri Wi-Fi En esta guía, aprenderá cómo crear una Wi-Fi. Fi controla la luz, y la controla con Siri. Lee más, porque eso será la base de todo lo demás. De hecho, si aún no tiene un sistema de iluminación Philips Hue, puede seguir adelante y construir la luz Wi-Fi descrita en ese tutorial..
Incluso si tiene un sistema Hue, siga adelante y siga el tutorial porque necesitará crear accesorios falsos de HomeKit para todo lo demás (código que se proporciona a continuación). Al continuar con esta guía, voy a asumir que ya tiene el servidor HAP-NodeJS en ejecución, y ha agregado una luz falsa y ha probado el servidor, incluso si no está conectado a una broca real. hardware.
Hacer una lista de reproducción
Continúa y crea una nueva lista de reproducción de Sonos llamada “Romántico”. No necesita ser exactamente el mismo nombre, pero tendrá que ajustar las secuencias de comandos de accesorios más adelante si lo cambia. He añadido algunas pistas de Marvin Gaye y Sade a la mía.. Suave.
A continuación, en la Raspberry Pi que ejecuta HAB-NodeJS (Si no sabes de qué estoy hablando, no leíste el tutorial de Wi-Fi Light. Haz eso primero), navegue hasta su directorio de inicio y escriba lo siguiente para instalar la API HTTP para Sonos. Esto nos dará una URL web que podemos hacer ping para desencadenar ciertas acciones en Sonos.
git clone https://github.com/jishi/node-sonos-http-api.git sonos cd sonos npm instala producción npm instala basic-auth sonos-discovery require-fu request-promise nodo-static async npm start
Si ve un mensaje sobre tal y cual módulo no encontrado, simplemente haga otro npm instalar y el nombre del módulo, a continuación, intente npm start otra vez. Es posible que ya haya instalado algunos módulos globalmente de otros proyectos, y es posible que necesite instalar más. Esperemos que veas algo como esto:
Felicitaciones, ahora tiene una API HTTP simple que puede usar para activar sus Sonos. Lea en la documentación la lista completa de comandos, pero el formato que más nos interesa es:
http: // [IP DEL SERVIDOR]: 5005 / [NOMBRE DE LA SALA] / [ACCIÓN]
o como un ejemplo específico:
http://192.168.1.99:5005/master%20bedroom/playlist/romantic
El caso no parece importar. El% 20 es una codificación de URL de un carácter de espacio, pero también debería poder escribir un espacio real, y su navegador lo convertirá automáticamente. El comando anterior simplemente activa la lista de reproducción Romántica para el dispositivo del dormitorio principal. Utilizar el pausa comando para detenerlo:
http://192.168.1.99:5005/master%20bedroom/pause
Además, la API también nos brinda una función que será muy útil para otros proyectos: la capacidad de decir una declaración específica, como una notificación, y luego continuar con la reproducción de la cola actual. Tratar:
http://192.168.1.99:5005/master%20bedroom/say/make%20use%20of%20is%20awesome/en-gb
La primera vez que haga esto, recibirá un mensaje sobre la necesidad de registrarse con una clave de API en VoiceRSS.org (hasta 350 solicitudes por día son gratuitas). Cuando hayas terminado con eso, escribe:
nano settings.json
y pega tu clave en el siguiente ejemplo:
"voicerss": "YOURAPIKEY"
Reinicie el servidor y haga ping a la URL nuevamente. Después de unos segundos, debería escuchar una encantadora voz en inglés. Puede cambiar el final de la URL para en-us Si prefieres una voz americana. ¡Ordenado! Totalmente irrelevante para este proyecto, pero limpio de todos modos!
Finalmente, hagamos que este servidor comience de nuevo cuando se reinicie el Pi:
sudo nano /etc/rc.local
Agrega una línea antes de salida 0:
nodo sudo /home/pi/sonos/server.js < /dev/null &
CTRL-X, Y para guardar. Puede ver que estoy ejecutando esto junto con OpenHAB, un detector de presencia Bluetooth DIY y el servidor HAP-NodeJS HomeKit; también debería tenerlo funcionando si siguió el requisito previo del tutorial de Wi-Fi Light.
Haciendo un dispositivo HomeKit para los Sonos
El punto crucial de este proyecto es que Siri no puede controlar a Sonos; sin embargo, podemos agregar cierto grado de control al crear un dispositivo HomeKit falso que activa una lista de reproducción en particular cuando lo encendemos. Una luz falsa es la forma más fácil de hacerlo..
Navega a tu HAP-NodeJS / directorio primero, e instale el “solicitud” módulo.
solicitud de instalación de sudo npm
Luego salta a la accesorios/ directorio y agarra mi dispositivo prefabricado con el siguiente comando simple:
wget https://gist.githubusercontent.com/jamesabruce/72bd250fbcf054acaa25/raw/8272d4b9a4ef76db752cab2ddd9bdc47d09a65f1/Romantic_accessory.js
Realice algunos cambios si es necesario, esto está configurado para el Sonos predeterminado “Recamara principal” ubicación, así que cambia la cadena master% 20bedroom hacia el inicio del código si desea que se dirija a una habitación diferente. Ya que hemos fingido ser una luz, enviar el comando de brillo en realidad no hará nada, aunque en algún momento lo actualizaré para lidiar con el volumen. Este es el bloque de código que hace la magia:
setPowerOn: function (on) console.log ("Encendiendo la luz% s!", ¿encendido? "on": "off"); FAKELIGHT.powerOn = on; console.log (on); if (on) request ('http: // localhost: 5005 / master% 20bedroom / playlist / romantic', función (error, respuesta, cuerpo) console.log ("Solicitud de reproducción enviada");) else solicitud ('http: // localhost: 5005 / master% 20bedroom / pause', función (error, respuesta, cuerpo) console.log ("Solicitud de pausa enviada");),
Puede ver que es sorprendentemente simple: cuando la luz recibe un comando setPowerOn de HomeKit, verifica si el valor es 1 (o verdadero), y en qué punto toca la URL de la API HTTP de Sonos para reproducir esa lista de reproducción. Si es algo más (es decir, 0, falso), envía el comando de pausa. Reinicie su servidor HAP-NodeJS, luego diríjase a un dispositivo iOS y siga el mismo procedimiento que antes para agregar su falso “Lista de reproducción romántica” ligero (necesitarás el código de emparejamiento 031-45-154).
Verifica que tu nuevo dispositivo esté funcionando, luego sigue adelante. Si tiene ganas de una pequeña programación, intente asignar los cambios de brillo al volumen (y comparta su código en los comentarios, ¡por favor!).
(Opcional) Luces de hadas y otros dispositivos de CA
Puede que te sorprenda saber que no hay luces de hadas oficiales de HomeKit, ni tampoco puedo encontrar ninguna toma de corriente genérica de HomeKit que me haya gustado por su apariencia / precio, por lo que encontré un bricolaje utilizando un tablero de desarrollo NodeMCU / ESP8266. el asesino de Arduino: ESP8266 Conozca al asesino de Arduino: ESP8266 ¿Qué pasa si le digo que hay una placa de desarrollo compatible con Arduino con Wi-Fi integrado por menos de $ 10? Bueno, la hay. Lea más, un relé y una toma de corriente de dos bandas estándar. No detallaré el hardware demasiado, ya que no deberías poner las cosas dentro de los enchufes si no estás totalmente seguro con ese tipo de cosas, pero te proporcionaré mi código para el lado de NodeMCU de las cosas (conecta el relé disparador al pin D2 / GPIO4), y el accesorio para ir con él.
Al igual que la luz de Wi-Fi, esto comunica comandos en un canal MQTT (“enchufe del dormitorio”), por lo que deberá modificar el código con su dirección de agente de MQTT (consulte la parte 2 de nuestra guía OpenHAB sobre cómo configurar un agente de MQTT. Guía de principiantes de OpenHAB Parte 2: ZWave, MQTT, Reglas y gráficos Parte de la guía de principiantes de OpenHAB 2: ZWave, MQTT, Rules and Charting OpenHAB, el software de código abierto de automatización del hogar, supera con creces las capacidades de otros sistemas de automatización del hogar en el mercado, pero no es fácil de configurar. De hecho, puede ser francamente frustrante. Leer Más), cambie los nombres de los canales si lo desea y, por supuesto, ingrese sus propios detalles de Wi-Fi.
Poniendolo todo junto
Finalmente, vamos a hacer algunas “escenas” usando la aplicación Elgato Eve o su administrador de HomeKit preferido. En el lenguaje HomeKit, una escena puede consistir en cualquier número de accesorios y comandos para esos accesorios..
Puedes nombrar una escena como quieras, y Siri podrá hacerla coincidir incluso sin decir “establecer la escena”. Así que he hecho dos escenas: una llamada “los niños están en la cama”, y otro “seamos serios ahora”.
El primero apaga una de las luces de tono, la otra cambia a rosa, luego enciende el accesorio de lista de reproducción romántica y las luces de colores. Este último vuelve a encender las luces blancas y detiene a Sonos (es decir, apaga el accesorio de la lista de reproducción romántica). Simples!
Espero que hayas disfrutado de este tutorial y puedas ver cómo podemos extender el control Siri a cualquier cosa sin demasiados problemas, gracias al poder de HAP-NodeJS.. ¿Hay algo para lo que te gustaría ver algunas acciones especiales de Siri? Háganos saber en los comentarios y cuéntenos cómo ha estado usando Siri para controlar su hogar.
Explorar más sobre: Raspberry Pi, Siri, Sonos.