- Ative a API do Home Assistant para seu usuário e obtenha um token de acesso de longa duração.
- Crie uma Skill na Alexa Developer Console seguindo os passos abaixo:
- Name your Skill: Escolha um nome de sua preferência (Ex: Home Assistant Assist)
- Choose a primary locale: Portuguese (BR)
- Choose a type of experience: Other
- Choose a model: Custom
- Hosting services: Alexa hosted (Python)
- Hosting region: US East (N. Virginia) é o padrão, mas é necessário utilizar a mesma região onde criou a conta na AWS e configurou o IAM Instruções aqui
- Templates: Clique em
Import skill - Insert the address: https://github.com/fabianosan/HomeAssistantAssist.git e clique
Import
- Vá na aba Code
- Insira suas informações no arquivo de configuração conforme instruções abaixo:
- Abra o arquivo
config.cfgno diretório raiz do projeto (/Skill Code/lambda/). - Insira as seguintes informações:
home_assistant_url=https://SUA-URL-EXTERNA-DO-HOME-ASSISTANT home_assistant_token=SEU-TOKEN-DO-HOME-ASSISTANT home_assistant_agent_id=SEU-AGENT-ID home_assistant_language=pt-BR home_assistant_room_recognition=False home_assistant_dashboard=ID-SEU-DASHBOARD home_assistant_kioskmode=False
- home_assistant_url: URL externa do seu Home Assistant (caminho raiz).
- home_assistant_token: Token de acesso de longa duração do seu Home Assistant.
- (opcional) home_assistant_agent_id: ID do agente de conversação configurado no seu Home Assistant, se não configurado, será utilizado o Assist (Padrão).
- (opcional) home_assistant_language: Idioma para chamar a API de conversação do Home Assistant. Se não configurado, será utilizado o padrão do agente definido.
- (opcional) home_assistant_room_recognition: Ative o modo de identificação de área do dispositivo com
True. Atenção, só funciona com IA, se utilizar o Assist padrão, desative essa opção, pois nenhum comando irá funcionar. - (opcional) home_assistant_dashboard: Caminho do dashboard para exibir na echoshow, ex.:
mushroom, se não configurado, irá carregar o "lovelace" - (opcional) home_assistant_kioskmode: Ative o modo quisque com
True. Atenção, só ative essa opção se tiver o componente instalado.
- Abra o arquivo
- Se desejar, altere as respostas padrão da skill no arquivo
/locale/pt-BR.langou outro idioma suportado). - Salve as alterações.
- Clique em
Deploy.
- Com seu Home Assistant aberto, navegue até a Ferramentas de Desenvolvedor, vá na aba
Açõese siga os passos abaixo:
- Busque por
conversation.processno campo de ações e selecione:
- Ative o campo
Agentee selecione o agente de conversação desejado na lista:
- Alterne para o
MODO YAMLe copie o ID que está no campoagent_id:
-
Com seu Home Assistant aberto, navegue até o seu perfil de usuário, no canto inferior esquerdo, clique e depois vá na aba
Segurançana parte superior:- No final da página, clique no botão
CRIAR TOKEN: - Digite o nome que achar adeuqado, ex.:
Skill Home Assistant Assiste clique em emOK:
- Copie o token:
- Coloque o token gerado no arquivo de configuração.
- No final da página, clique no botão
- O nome de invocação padrão configurado no código é "casa inteligente".
- Para alterar o nome de invocação:
- Vá para a aba Build.
- Clique em
Invocationse depois emSkill Invocation Name. - Insira o novo nome de invocação desejado e salve as alterações (teste se essa palavra de ativação pode ser usada na aba de Test).
- Dê rebuild do modelo clicando
Build skillse alterar.
-
Após fazer o deploy do código na aba Code, volte para aba Build e clique em Build skill.
-
Depois vá no aplicativo Alexa em seu celular e vá em:
Mais>Skills e jogos> deslize a tela até o fim e clique emSuas Skills>Desenv., clique na skill que você acabou de criar e ative -
Volte no console da
Alexa Developer Consolee teste a Skill na aba Test para garantir que a palavra de ativação e a skill estão funcionando corretamente.
-
Nesse modo, a skill envia o device id (do dispositivo
echoque está executando a skill) na chamada da API de conversação do Home Assistant, então com uma instrução de comando para a IA e um rótulo associado no dispositivo, a IA consegue identificador os dispositivo da mesma área onde está localizado suaAlexa, para ativar, siga os passos abaixo:Atenção !
- Altere a configuração
home_assistant_room_recognitionparaTruee faça um novodeploye um novoBuild Modelda skill; - Ative o log de debug da API de conversação adicionando a seguinte configuração no
configuration.yamldo Home Assistant:
- Insira a seguinte informação:
logger: logs: homeassistant.components.conversation: debug
- Reinicie o Home Assistant e inicie a skill pelo dispositivo echo desejado, depois de ativado, o log mostrará a instrução recebida pela skill conforme o exemplo abaixo:
2024-10-10 11:04:56.798 DEBUG (MainThread) [homeassistant.components.conversation.agent_manager] Processing in pt-BR: ligue a luz da sala. device_id: amzn1.ask.device.AMAXXXXXX
Você também pode obter o device_id no log "device: " pela
Alexa Developer ConsoleemCloud Watchse souber como fazê-lo. 4. Pegue todo o identificador que estiver após o device_id, ex.:amzn1.ask.device.AMAXXXXXXe adicione um novo rótulo no dispositivo echo pela IntegraçãoAlexa Media Player:- Atualize o prompt de comando da IA de sua preferência com a instrução abaixo:
Se solicitado uma ação em um dispositivo e sua área não for fornecida, capture o identificador contido após o "device_id:" no comando, obtenha o rótulo com mesmo identificador e associe a área desse rótulo ao dispositivo para saber área o dispositivo pertence.
- Altere a configuração
Agora você pode usar sua skill Alexa para integrar e interagir com o Home Assistant via Assist por voz ou abrir a tela do seu dashboard preferido na Echoshow. Se gostou, lembre-se de mandar um Obrigado para os desenvolvedores.
Agradecimentos
Ao [rodrigoscoelho](https://github.com/rodrigoscoelho), quem iniciou o desenvolvimento desta skill.







