Como usar o siri para definir o cenário para o romance
Ontem nós mostramos-lhe como criar um luz DIY Wi-Fi
Conteúdo
Confira o resultado final:
O vídeo acima não foi falsificado, ou encenadas - tudo é possível usar Siri, e o guia abaixo. Sem jailbreak é necessária, embora haja alguma programação, para que eu forneci o código.
Coisas que você precisa:
- Raspberry Pi
- dispositivo iOS
- iluminação colorida Siri-compatível, como Philips Hue com um hub de 2ª geração, ou a nossa DIY Luz Wi-fi
- Sonos (ou outro dispositivo de reprodução com uma API HTTP)
- (Opcional) nodemcu / esp8266, relé, e sockets- de energia ou um HomeKit comercial acessório tomada de alimentação
Por isso é tão complicado?
HomeKit, e controlar os seus dispositivos através do controle de voz é realmente puro. Infelizmente, o ecossistema fechado que a Apple é, HomeKit é restrita a um punhado de dispositivos. Sonos não é um deles. No entanto, nem tudo está perdido. Graças a alguns hackers que trabalham duro, o protocolo HomeKit foi recentemente submetido a engenharia reversa, e como demonstrado em nosso último projeto, agora você pode criar seus próprios dispositivos HomeKit falsos. Nós estaremos aproveitando isso.
Comece por seguir o nosso DIY Wi-Fi tutorial luz, porque isso vai formar a base de tudo o resto. Na verdade, se você não tiver um sistema de iluminação Philips Hue, você pode ir em frente e realmente construir a luz Wi-Fi descrito nessa tutorial.Como Fazer um DIY Siri-Controlled Wi-Fi LuzComo Fazer um DIY Siri-Controlled Wi-Fi LuzNeste guia, você vai aprender a criar uma luz controlável Wi-Fi, e controlá-lo com Siri.consulte Mais informação
Mesmo se você tem um sistema de Hue, vá em frente e seguir o tutorial porque você vai precisar para criar falsos acessórios HomeKit para tudo o resto (código fornecido abaixo). Ao continuar com este guia, eu estou indo supor que você tem o servidor em execução HAP-NodeJS já, e ter adicionado com sucesso uma luz falsa e testou o servidor, mesmo se não estiver conectado a um bit real de DIY hardware.
Faça uma lista de reprodução
Vá em frente e criar uma nova Playlist Sonos com o nome “romântico”. Ele não precisa ser exatamente o mesmo nome, mas você vai ter que ajustar os scripts de acessórios mais tarde, se você alterá-lo. Eu adicionei alguns Marvin Gaye e Sade faixas para o meu. Suave.
Em seguida, ao longo do Raspberry Pi que está sendo executado HAB-NodeJS (Se você não sabe o que eu estou falando, você não leu a luz tutorial Wi-Fi. Faça isso primeiro), navegue até o diretório home e digite o seguinte para instalar a API HTTP para Sonos. Isso vai nos dar uma URL web que pode executar ping para acionar certas ações nos Sonos.
git clone https://github.com/jishi/node-sonos-http-api.git SonosCD Sonosnpm instalar Produçãonpm instalar -Auth básica sonos-descoberta requerem-fu pedido-promessa assíncrona nó-estáticanpm começar
Se você ver uma mensagem sobre tal e tal módulo não encontrado, basta fazer outra npm instalar e o nome do módulo, então tente início npm novamente. É possível que eu já tinha alguns módulos instalados globalmente a partir de outros projetos, e pode ser necessário instalar mais. Esperamos que você vai ver algo como isto:
Parabéns, agora você tem uma API simples HTTP pode ser usado para acionar os seus Sonos. Leia-se sobre a documentação para a lista completa de comandos, mas o formato que mais nos interessa é:
http: // [IP do servidor]: 5005 / [nome da sala] / [ACTION]
ou como um exemplo específico:
Video: Dicas de como usar a Siri
http://192.168.1.99:5005/master%20bedroom/playlist/romantic
Caso não parece importar. O% 20 é uma codificação URL de um caractere de espaço, mas você deve ser capaz de escrever um espaço real também, e seu navegador irá convertê-lo automaticamente. O comando acima simplesmente dispara a lista Romântico ao dispositivo Master Bedroom. Use o pausa comando para pará-lo:
http://192.168.1.99:5005/master%20bedroom/pause
Além, a API também nos dá uma função que vai ser realmente útil para outros projetos: a capacidade de dizer uma declaração específica, como uma notificação, em seguida, continuar a jogar a fila atual. Experimentar:
http://192.168.1.99:5005/master%20bedroom/say/make%20use%20of%20is%20awesome/en-gb
A primeira vez que você fizer isso, você receberá uma mensagem sobre ter de se inscrever para uma chave de API em VoiceRSS.org (até demais 350 solicitações por dia são gratuitas). Quando você é feito com isso, digite:
Video: Controlando as luzes com a Siri
nano settings.json
e cole em sua chave para o seguinte exemplo:
{"voicerss":"YOURAPIKEY"}
Reinicie o servidor, e ping o URL novamente. Após alguns segundos, você deve ouvir uma voz Inglês delicioso. Você pode mudar o final da URL para en-us se preferir uma voz americana. Puro! Totalmente irrelevante para este projecto, mas limpo de qualquer maneira!
Finalmente, vamos fazer este servidor começar de novo quando o Pi é reiniciado:
sudo nano /etc/rc.local
Adicionar uma linha antes do exit 0:
sudo /home/pi/sonos/server.js nó lt; / Dev / null &
CTRL-X, Y para guardar. Você pode ver que eu estou correndo esta ao lado OpenHAB, um detector de presença Bluetooth DIY, eo servidor HAP-NodeJS HomeKit - você também deve ter que correr já se você seguiu o pré-requisito Wi-Fi luz tutorial já.
Fazendo um dispositivo HomeKit para os Sonos
O cerne deste projecto é que Sonos não pode ser controlado por Siri, no entanto, podemos adicionar algum grau de controle, criando um dispositivo HomeKit falso que ativa uma lista de reprodução especial quando ligá-lo - uma luz falso é a maneira mais fácil de fazer isso.
Navegar para o seu HAP-NodeJS / diretório primeiro, e instalar o módulo “pedido”.
sudo npm instalar pedido
Em seguida, pular para a acessórios/ diretório e agarrar a minha luminária premade com o simples comando seguinte:
wget https://gist.githubusercontent.com/jamesabruce/72bd250fbcf054acaa25/raw/8272d4b9a4ef76db752cab2ddd9bdc47d09a65f1/Romantic_accessory.js
Fazer algumas mudanças se você precisa - isso é definido para o “Quarto principal” local padrão Sonos, então altere a cadeia mestre% 20bedroom para o início do código, se você quer que ele seja direcionado para um quarto diferente. Uma vez que temos fingiu ser uma luz, enviando o comando brilho não vai realmente fazer alguma coisa, embora em algum momento eu vou atualizar isso para lidar com o volume. Este é o bloco de código que faz a mágica:
setPowerOn: função(em) {console.registro("Transformando a luz% s!", em ? "em" : "fora")-FAKELIGHT.ligar = em-console.registro(em)-E se(em){pedido(`Http: // localhost: 5005 / master% 20bedroom / lista de reprodução / romântico`, função (erro, resposta, corpo) {console.registro("pedido peça enviada")-})}outro{pedido(`Http: // localhost: 5005 / master% 20bedroom / pause`, função (erro, resposta, corpo) {console.registro("pedido de pausa enviado")-})}},
Você pode ver que é surpreendentemente simples: quando a luz recebe um comando setPowerOn de HomeKit, ele verifica para ver se o valor é 1 (ou verdadeiro), e que ponto ele sibila o Sonos url HTTP API para jogar essa lista de reprodução. Se for qualquer outra coisa (ie. 0, false), ele envia o comando de pausa. Reinicie o servidor HAP-NodeJS, em seguida, sobre a cabeça em um dispositivo iOS e siga o mesmo procedimento de antes para adicionar a sua falsa luz “Playlist Romântico” (Você vai precisar do código de emparelhamento 031-45-154).
Verifique se o seu novo dispositivo está funcionando, então seguir em frente. Se você está se sentindo até um pouco de programação, tente mapear as mudanças de brilho ao volume (e compartilhar o seu código nos comentários, por favor!).
Luzes (opcional) de fadas e outros dispositivos AC
Talvez você se surpreenda ao saber que não existem quaisquer luzes oficiais HomeKit de fadas, nem eu poderia encontrar qualquer HomeKit tomadas eléctricas genéricas que eu gostei do olhar / preço - então eu bati em conjunto um DIY usando um bordo dev nodemcu / ESP8266, um relé, e uma tomada de corrente de dois quadrilha padrão. Não vou detalhar o hardware muito como você não deve colocar as coisas dentro de tomadas de corrente, se você não está totalmente confiante com esse tipo de coisa, mas vou dar-lhe com o meu código para o lado nodemcu das coisas (conecte o retransmitir gatilho no pino D2 / GPIO4), e o acessório para ir com ele.Conheça o assassino Arduino: ESP8266Conheça o assassino Arduino: ESP8266E se eu lhe disse que um há um conselho dev Arduino compatível com built-in Wi-Fi para menos de US $ 10? Bem, não é.consulte Mais informação
Como a luz Wi-Fi, este comunica comandos em um canal MQTT ( “bedroomplug”), então você vai precisar modificar o código com o seu endereço de MQTT corretor (confira a parte 2 do nosso guia OpenHAB em como configurar um corretor MQTT), Altere os nomes dos canais, se desejar, e, claro, inserir seus próprios detalhes de Wi-Fi.
Juntando tudo
Finalmente, vamos fazer algumas “cenas” usando o Elgato Eve aplicativo, ou o seu gerente HomeKit preferido. Na linguagem HomeKit, uma cena pode consistir em qualquer número de acessórios e comandos para esses acessórios.
Você pode nomear uma cena que quiser, e Siri será capaz de combiná-lo mesmo sem dizer “cena ajustada”. Então eu fiz duas cenas: um chamado “as crianças estão na cama”, e outro “vamos levar a sério agora”.
O ex-desliga uma das luzes Hue, gira para o outro para rosa, em seguida, liga o acessório lista de reprodução romântico e as luzes de fadas. Este último faz com que as luzes brancas de novo, e pausa o Sonos (ie, desliga-se o acessório lista de reprodução romântico). Simples!
Espero que você tenha gostado deste tutorial, e pode realmente ver como podemos estender o controle Siri a qualquer coisa sem muita dificuldade, graças ao poder da Hap-NodeJS. Existe algo que você gostaria de ver algumas ações especiais Siri para? Deixe-nos saber nos comentários e diga-nos como você está usando Siri para controlar sua casa.