Como fazer amigos Alice e HomeBridge

imagem

UPD 08/06/2019: Aconteceu, tornou - se possível pedir à própria Alice para acender a luz . O projeto está no github . Verificado em seu homebridge, tudo funciona. Considero que o apoio a minhas habilidades não é apropriado.

Há muito que eu queria, além da casa inteligente, um assistente de voz que entenda e fale russo. Como resultado, eu decidi arriscar e pegar uma nova coluna grosseira da Yandex.Station com uma jovem, mas já amada por muitas Alice. A primeira impressão foi excelente, mas quando ouvi muitas piadas e falei bastante, comecei a aprender o lado prático da coluna. Acima de tudo, eu estava interessado na questão da interação de Alice com a casa inteligente.

Descrição do problema
Minha casa é baseada em um servidor HomeBridge . Muitos artigos ( um , dois , três ) foram escritos sobre sua configuração e uso no hub e outros recursos, portanto, não vou me debruçar sobre isso. Não tendo estudado a questão minuciosamente, eu tinha certeza de que o catálogo de habilidades de Alice já tinha muitas soluções para interagir com sistemas de controle doméstico inteligentes. Aconteceu que, no momento da redação deste artigo, a maioria das habilidades no tópico “Casa Inteligente” requer um dispositivo com uma tela para o trabalho, o que não é adequado para a estação. A única habilidade que parecia atender aos requisitos e saber trabalhar sem exibição era Alfred . A habilidade não combina comigo porque está ligada a um serviço - IFTTT. Suponha que eu queira criar um comutador virtual que opere em um sistema doméstico inteligente e permita que você vincule scripts ao seu estado atual. Alfred usa o serviço WebHook para IFTTT com o qual você só pode atuar no gatilho criado no miniaplicativo IFTTT, mas não há como obter o estado atual do miniaplicativo (você pode ativar ou desativar o comutador, mas não pode descobrir em que estado o comutador está agora).

Para resolver o problema acima, foi criado o serviço Alice-HomeBridge , projetado para conectar o assistente de voz Yandex.Alice e vários sistemas inteligentes de controle doméstico. Além disso, como exemplo de configurações, consideraremos a configuração do HomeBridge, mas essa abordagem também é aplicável a outros sistemas, como o Home Assistant , o openHAB e outros.

O serviço permite que os usuários, após o registro no site, criem comutadores virtuais.



Você pode alterar ou descobrir o estado dos comutadores usando uma solicitação de serviço GET especialmente gerada.



Para que o serviço interaja com o assistente de voz "Alice", foi criada a habilidade "Lazy Jimmy".

Jimmy preguiçoso
Diga a Alice: “Execute a habilidade preguiçosa Jimmy” e ele oferecerá a você informações sobre o código de ativação, que você pode encontrar em sua conta pessoal .



Após a ativação, você pode alterar o estado de seus comutadores usando os comandos Ligar ou Desligar. Por exemplo, se você disser "Ligar a luz", o status do interruptor "Luz" muda para positivo. Se você disser "Luz", o estado do comutador mudará para o oposto.

Para que o diálogo pareça mais natural, existe a oportunidade de criar switches com nomes mais compreensíveis, por exemplo, "With Utrechk", então você pode dizer a Alice "Tell Jimmy With Utrechk" e o estado do switch mudará.

Resta configurar o HomeBridge. Por exemplo, usaremos a extensão cmdswitch2 . Crie uma opção para o HomeKit chamada "Alice Button 1".

{ "platform": "cmdSwitch2", "name": "CMD Switch", "switches": [ { "name": "Alice Button 1", "on_cmd": "curl --silent \"http://alicehomebridge.org/alice/switches.php?switch=34&hb=ADB7BYBT728O&state=set&val=true\"", "off_cmd": "curl --silent \"http://alicehomebridge.org/alice/switches.php?switch=34&hb=ADB7BYBT728O&state=set&val=false\"", "state_cmd": "curl --silent \"http://alicehomebridge.org/alice/switches.php?switch=34&hb=ADB7BYBT728O&state=get\" | grep -oh \"true\"", "polling": true, "interval": 2 } ] } 

Para não sobrecarregar o servidor com solicitações desnecessárias, defina o parâmetro interval para pelo menos 2 segundos.

Está tudo pronto.



Agora, se você disser “Alice diz ao preguiçoso Jimmy com a palavra da manhã”, a chave “Alice Button 1” mudará de estado. Aqui está uma demonstração de como tudo funciona em conjunto com scripts personalizados do HomeKit:


Versão completa do arquivo de configuração HomeBridge

PS A maioria dos sistemas inteligentes de gerenciamento doméstico, como o HomeKit, oferece suporte a scripts. Você pode criar um script que gostaria de usar em uma situação específica, por exemplo, ao acordar e atribuir uma chamada ao evento "Ligar o Utrechk".

PS Meu serviço está apenas desenvolvendo e ainda está, para dizer o mínimo, longe do ideal. Mas Alice também se recusa a aceitar certas frases de tempos em tempos. Por exemplo, ela transmite perfeitamente a frase "acenda a luz" para a habilidade, mas não passa a frase "bom dia". Espero que a Yandex conheça o problema e o resolva em breve. Aguardando seus comentários.

Source: https://habr.com/ru/post/pt434184/


All Articles