Home Assistant — Convertendo arquivo em Base64

Convertendo arquivos para Base64 no Home Assistant: Aprenda como criar uma função "shell" para converter arquivos em Base64 e utilizá-la em suas automações

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! 👋