Como configuro a automação de limpeza de salas com o Google Home, o Home-Assistant e o Xiaomi vacuum cleaner

Eu uso o Home-Assistant em execução em um Raspberry Pi como o hub principal para automatizar todos os meus dispositivos domésticos inteligentes. Está configurado para conectar ao meu aspirador Xiaomi Mi Roborock , com uma interface básica para iniciar, pausar e encaixar o limpador. O aplicativo Mi Home é mais avançado, capaz de mapear o plano da minha casa enquanto examina e limpa o local.

O aspirador funciona muito bem para limpar toda a casa automaticamente. Mas se eu quiser apenas limpar uma sala particular em casa, eu tenho que usar o aplicativo Mi Home para desenhar um retângulo (zona) ao redor da sala no plano da casa para iniciar a limpeza da zona. O aplicativo não salva isso, então cada vez que eu quero limpar uma sala diferente, eu tenho que repetir os mesmos passos.

Não seria ótimo se eu pudesse automatizar isso? Este post me fez perceber que pode não ser difícil conseguir isso.

Ei Google, limpe o quarto

O objetivo é enviar um comando ao Google Home para informar o aspirador de pó a limpar apenas uma pequena área em casa. Aqui está o passo a passo do que fiz:

  • Descubra a coordenada de um canto de uma sala para descobrir a escala das coordenadas
  • Mapeie as coordenadas de cada quarto em casa
  • Crie uma receita do IFTTT com o Google Assistente como acionador e selecione como chamar o meu servidor de Assistência Doméstica.

Testando o comando app_goto_target na ferramenta de serviço dev no Home-Assistant

A ferramenta de assistência técnica Home-Assistant pode ser usada para chamar serviços para qualquer dispositivo conectado a ela. Existe um comando chamado app_goto_target que pode ser usado para enviar o aspirador para qualquer coordenada.

O ponto de ancoragem do aspirador tem sempre a coordenada [25500, 25500]. Isso está em algum lugar da minha sala de estudos. Através de tentativa e erro, eu descobri a coordenada de um canto da minha sala de estudo. Pode ser qualquer ponto da casa. Ele fornecerá uma referência para desenhar um mapa posteriormente com escala posterior.

Captura de tela do aplicativo Mi Home usado para controlar o aspirador Xiaomi

O aplicativo Mi Home tem meu plano de casa inteiro mapeado. Eu tirei uma captura de tela disso, abri em Sketch e sobrepusquei grades para desenhar os eixos xe y. Isso fornece uma estimativa aproximada de todas as coordenadas da casa.

Captura de tela do meu plano inicial criado pelo aplicativo Mi Home, com grades e coordenadas sobrepostas no aplicativo Sketch. O ponto verde com coordenada [25500,25500] é a estação de acoplamento do aspirador.

O aspirador de pó suporta um comando para limpeza de zona chamado app_zoned_clean . Ele recebe em um array números de 5 dígitos, cada um descreve um retângulo chamado zona – os dois primeiros dígitos são as coordenadas do canto inferior esquerdo da zona, os segundos dois dígitos para o canto superior direito da zona, e o último dígito por número de vezes para limpar uma zona.

Dados de serviço para limpar meu quarto. O número de 5 dígitos é formado pelas coordenadas do canto inferior esquerdo [29500, 21000], canto superior direito [33200, 25000] e número de vezes para limpar a área [1]

Com todas as coordenadas da sala mapeadas, eu as testei no Assistente de Casa e fiz pequenos ajustes se necessário. A zona pode ser um pouco maior que a sala, mas não deve se sobrepor a outra sala.

Teste do comando app_zoned_clean na ferramenta de serviço dev no Home-Assistant

Com todos os quartos da minha casa mapeados, o próximo passo foi criar receitas do IFTTT para permitir que o Google Home se comunicasse com o Home-Assistant para enviar esses comandos para o meu aspirador de pó. Cada receita foi criada escolhendo o Google Assistente como o gatilho do IFTTT e o webhook como ação.

Google Assistente como IFTTT Trigger e Webhook como ação para chamar a API no Home-Assistant

Também é possível criar uma receita para que o aspirador de pó limpe a área algumas vezes, pois o quinto dígito define o número de vezes para limpar a área.

Ei Google, limpe a cozinha 3 vezes

Google Assistente como IFTTT Trigger, com opção de dizer uma frase com um número

O campo params aceita uma matriz de zonas , portanto, é possível criar uma automação que limpe uma área com uma forma personalizada. Por exemplo, quando o aspirador está limpando o chão da minha sala de estar, eu gostaria de excluir a área onde está o tapete.

Ei, Google, limpe minha sala de estar

Dados de serviço para app_zoned_clean com 4 zonas para excluir a área no meio.Screenshot do aplicativo Mi Home mostrando as 4 zonas da minha sala de estar, excluindo a área onde o tapete está

É isso aí. Agora posso pedir que o Google Home limpe os quartos em casa.

Receitas IFTTT para limpar salas com o Google Home e o aspirador Xiaomi

Posts relacionados:

Como consegui meu aspirador falar comigo via Telegram.