Home Assistant — Convertendo arquivo em Base64
Olá Gente!
Depois dos tutoriais de Salvar SnapShot e Vídeo de uma Câmera você deve ter se deparado com um problema.
Muitas APIs precisam receber o arquivo em Base64.
Isto deveria ser muito simples, mas se mostrou bem mais complexo.
A primeira coisa a fazer, é criar uma função “shell”, nas configurações do Home Assistant, que ao ser chamado ira converter o arquivo.
Para isto, abra o arquivo de configurações do Home Assistant (configuration.yaml) e adicione a linha abaixo:
Estas linhas, irão criar um serviço “get_base64_image”, que iremos chamar, passando o arquivo, e ira nos retornar o conteúdo em base64.
Agora iremos criar um Script, que ira tirar um Snapshot de uma câmera, depois ira converter o arquivo em Base64 e ira enviar o arquivo (Já codificado) para um serviço de notificações:
Vamos entender este script:
1.
Criamos a variável “arquivo_nome” para conter um nome da imagem.
2.
Chamamos o serviço “camera.snapshot” para tirar um SnapShot da camera.
3.
Chamamos a função “shell_command.get_base64_image”, que criamos anteriormente dentro do “configuration.yaml”.
Observe que aqui, passamos como parâmetro o caminho completo do arquivo:
arquivo: /config/www/{{ arquivo_nome }}
E o retorno da função, é salvo na variavel “arquivo_raw”:
response_variable: arquivo_raw
Observe também, que a função shell retorna um array, a saída da conversão fica no elemento “stdout”:
arquivo_raw.stdout
4.
Enviamos o arquivo codificado para a notificação “notify.whatsapp”.
Uma notificação customizada que tenho, que faz um REST para uma API externa.
Por hoje é isto, queridos desenvolvedores! 👩💼
Até logo! 👋