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 problemaMinha 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".

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 HomeBridgePS 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.