You have searched the Poupar Melhor blog archives for home-assistant. If you are unable to find anything in these search results, you can try with different search query


ESPhome e Home-assistant

Se têm como eu uma série de ESP8266 e ESP32 espalhados pela casa, com código vosso e com sensores, sabem o que custa manter tudo a funcionar. Também sabe como as horas que gastaram para por a funcionar um destes equipamentos a primeira vez.

Mantenho alguns destes pela casa, tudo harmoniosamente ligado ao meu Raspberry Pi que, por sua vez, corre o Home-assistant (HASS). Mas não foi simples.

Uma das principais dificuldades era a necessidade de configurar manualmente os ESP no HASS. De cada vez que mudava qualquer coisa no ESP, lá tinha de ir também garantir que a configuração do HASS estava correta. E quando não estava, re-iniciar o HASS, o que demora o seu tempo.

Acrescentando a esta dor, haviam ainda as dificuldades em conjugar sistemas eletrónicos, de que percebo muito pouco, com código fonte, que não sou especialista.

O ESPhome tornou-me a vida muito mais fácil. O trabalho dele foi simplificar a manutenção do código que corre nos ESP. Facilita porque o código é gerado com base em configurações feitas num ficheiro YAML, mas também porque permite correr um interface gráfico onde tudo é feito.

Mas primeiro tive de perceber como é que aquilo tudo funcionava. O texto no homepage do ESPhome não é muito claro para os principiantes.

O ESPhome apresenta-se como um add-on do HASS.io, a versão de distribuição do Home-assistant (HASS), ou como um utilitário de linha de comandos.

Para quem tem HASS.io é só ir à loja de add-ons do HASS e começar. Provavelmente, a primeira vez que tiverem de fazer upload do vosso código para o ESP, convém ligá-lo por fio ao servidor HASS.io. Se programarem o vosso código para ter Over The Air (OTA), os carregamentos posteriores já em tem de fazer mais nada.

Para quem, como eu, instalou o HASS num servidor a correr uma distribuição de sistema operativo diferente da HASS.io.

Em qualquer das duas opções podem executar tudo à mesma da linha de comando de um outro computador, que é o que fiz. As instruções de instalação estão no próprio site do ESPhome.

Para correr o interface gráfico de utilizador, o que facilita bastante todo este trabalho, criem um diretório onde queiram que fiquem guardadas todas as configurações e executem o comando:

esphome <caminho para o diretório> dashboard --open-ui

O ESPhome vai lançar uma janela de browser e correr um interface gráfico que vos permite fazer tudo com os vossos ESP:

  • Configurar;
  • Carregar o código;
  • Monitorar o funcionamento;
  • Analisar os registos de execução (logs).

Cada ESP tem o seu código guardado depois no diretório que criaram e o binário resultante, compilado pelo ESPhome, está lá também, caso necessitem de forçá-lo de outro modo para um ESP.

O site ESPhome oferece uma série de receitas prontas a usar. Estas receitas incluem, para além do próprio YAML para alterarem e configurarem os vosso ESP, instruções de como ligar sensores e atuadores.

Depois de carregarem o código, basta irem ao interface do HASS e, nas configurações, usar a facilidade mais recente do HASS para as integrações.

Nas integrações identificam que querem acrescentar uma integração com ESPhome e introduzem o caminho para o novo ESP e a password que definiram quando configuraram o novo ESP.

Duas notas sobre segurança:

  1. Para além de outras defesas que tenho na minha rede, para evitar dissabores, o acesso aos ESP para carregamento de código OTA é feito com recurso a uma password complexa.
  2. Também, ao contrário dos utilizadores de HASS.io, não vou manter o ESPhome Dashboard aberto a não ser que precise dele, por isso não é instalado no meu Raspberry Pi.

Algumas coisas que deram jeito aprender:

O IPMA no Home-Assistant

Home Assistant

Home Assistant

Tenho andado entretido a automatizar a minha casa, por isso, o Home-assistant é um tema que visito muitas vezes.

Com a última evolução desde mordomo free open source, foi acrescentado um componente que permite apresentar os dados do nosso Instituto Português do Mar e Atmosfera (IPMA).

Este componente é da autoria do Diogo Gomes que tem um repositório no GitHub repleto de coisas para o Home-assistant.

Conforme os valores no código, o componente atualiza as previsões do IPMA a cada 30 minutos para as coordenadas ou estação meteorológica que tenham configurado.

Para já, vou testar este componente, mas vocês já sabem o que pensamos sobre os supercomputadores do IPMA e como as suas previsões são… voláteis.

 

Como saber os preços dos combustíveis através do seu Home-assistant

Home-assistant - Preços dos combustíveis

Home-assistant – Preços dos combustíveis

Há uns tempos tínhamos falado aqui convosco, o Home-Assistant é um mordomo no Raspberry Pi (ou outro computador). Atualmente tenho o meu integrado no Home da Apple para pode dizer “Hey Siri, turn on the lights”.

Agora já temos um script para obter e publicar o preço dos combustíveis de qualquer estações de combustível feito com a ajuda do @RodolfoVieira e as dicas do A.Sousa.

A solução facilita a obtenção e a publicação dos preços de combustíveis de múltiplas estações. A solução vai buscar os preços à direção geral de energia para as estações de combustível que configurem. Depois publica no Home-assistant.

A solução é um script em Bash faz o scrapping da informação e já está publicado no meu repositório do GitHub – Home-assistant-fuel-scrapper.

As instruções de uso em português estão no forum do Home-assistant português.

Home-Assistant, o mordomo free open source

Home Assistant

Home Assistant

Quando coloquei aqui a ideia de construir uma espécie de mordomo que reconhecia os habitantes da casa, o amigo Pedro veio avisar-nos que já alguém tinha pensado nisto. Nestas coisas dos computadores há sempre alguém que já fez uma parte do caminho.

O Home Assistant já tem um conjunto de componentes disponíveis para configurar. Para isso usa os interfaces de comando disponíveis nos equipamentos e softwares e disponibiliza forma de os comandar-mos de um só sitio. Os componentes disponíveis são receitas para controlo de equipamentos e software de várias marcas e permitem:

  • Receber notificações de alarmes de proteção da casa;
  • Receber informação de um sensor autónomo;
  • Receber imagens de uma câmara;
  • Controlar algo que construímos  com um Arduino;
  • Controlar a porta da garagem;
  • Ligar e desligar o ar condicionado;
  • Registar dados históricos para análise posterior;
  • Integrar componentes físicos como tomadas elétricas;
  • Ligar e desligar luzes;
  • Trancar e destrancar fechaduras;
  • Controlar um media player como o iTunes, Kodi e outros;
  • Enviar notificações por email, Twitter e outros;
  • Organizar múltiplos equipamentos e tratá-los como um só;
  • Identificar a aproximação de objetos a certas áreas para alterar parâmetros de outros equipamentos;
  • Criar configurações específicas dependentes do estado de outros equipamentos;
  • Deteção de presença recorrendo à identificação de equipamentos e com o iCloud, Nmap, OpenWRT, DD-WRT, Bluetooth e outros;
  • Abrir e fechar estores;
  • Controlar vários sensores como temperatura, valor do BitCoin, um sensor ligado ao Raspberry PI e outros;
  • Controlar vários tipos de interruptores;
  • Controlar termóstatos de várias marcas;
  • Falar com o Home Assistant para que ele execute comandos simples;
  • Obter e apresentar informação metereológica;
  • Descobrir e configurar equipamentos automaticamente; e
  • Ler as notícias de hora a hora a partir de um RSS Feeds e enviar os resultados para outro componente (ou dizer as notícias alto e bom som).

As possibilidades de colocar qualquer destes componentes em conjunto são bastantes. Depende só do que temos em casa que responde a isto e o que queremos fazer.

Raspberry Pi a simular um disco USB externo para uma moldura eletrónica de fotos

E se de repente decidirem usar o vosso Raspberry Pi (RPi) para simular um disco externo USB para utilizar na vossa moldura de fotos eletrónica? Isso é excesso de engenharia!

Aqui vamos jogar com 2 coisas diferentes e tentar juntar tudo numa só:

  • Moldura que mostra fotos que estejam num disco externo USB.
  • Um disco a que se pode ligar remotamente para colocar fotos.

A minha tese era que seria possível reutilizar uma moldura eletrónica já antiga, como a minha Rollei DF-80 memories, mas que não serve e recebe ficheiros ao mesmo tempo. Esta moldura eletrónica lê as fotos que coloco num disco externo USB, mas para isso tenho de ligar o disco fisicamente a um computador para onde previamente já tive de passar as fotos, copiar as fotos para o disco, retirar o disco do computador, colocar o disco na moldura… estão a perceber a coisa, não estão?

Hoje em dia já há até tem um produto à venda que faz isto com a ajuda de uma app, tudo muito cómodo e por cerca de 200€, mas eu já tinha a moldura e dois RPi ali à espera de um projeto. O que se pretende é passar a receber as fotos de qualquer equipamento sem tirar o disco da moldura, e depois ver as fotos na moldura eletrónica, tudo comodamente e sem sair do seu lugar.

Para atingir o objetivo, decidi usar o Raspberry Pi Zero W e:

  1. Instalar o Raspberry Pi OS Lite
  2. Instalar o Samba
  3. Configurar o Raspberry Pi como gadget de armazenamento em massa (g_mass_storage)

No final, também ainda insultei o RPi e tudo à sua volta umas quantas vezes, e tive de desejar com muita, mesmo muita força, que o sistema da moldura reconhecesse o disco que lhe disponibilizei.

Se estiverem interessados em repetir esta receita, basta seguir as instruções que escrevi nas parte 1, 2 e 3 deste artigo. No final, há uma parte Bonus que explica como colocar as fotos na moldura a partir da app do Home-assistant.

Parte 1 – Instalar o Raspbian OS Lite

Escolhi a distribuição Debian do Raspberry Pi por facilidade de utilização. Podem ir até ao site da distribuição Raspberry PI OS (Raspian OS) e seguir as instruções. Vão precisar de uma forma de escrever para o disco SSD que vão usar. Facilita utilizarem a aplicação que o Raspbian OS já oferece para o vosso sistema operativo.

  1. Selecionem a versão de sistema operativo.
  2. Selecionem o disco onde querem escrever o novo sistema operativo. Aconselho utilizar logo a opção de configurar a ligação WiFi e outras disponíveis nesta aplicação.
  3. Selecionem escrever (Write).

A aplicação faz a verificação do disco e quando terminar, é só colocarem o disco no Raspberry Pi e esperar uns momentos.

O vosso utilizador e password podem ser logo configurados se utilizarem a aplicação do Raspberry Pi OS, o que vos vai poupar algum trabalho na parte seguinte desta tarefa.

O novo sistema operativo deve ficar disponível via SSH (Secure Shell) na vossa rede WiFi através do nome que derem ao Raspberry Pi na configuração. Vai ser por aqui que vamos continuar.

Parte 2 – Instalar o Samba

Podem aceder ao vosso Raspberry Pi remotamente a partir da linha de comandos ligando-se ao nome que deram na configuração ou através do IP com que ficar na vossa rede.

ssh pi@raspberrypi.local

Uma vez remotamente a controlar o vosso Raspberry Pi, podem começar a executar o conjunto de comandos necessários ao nosso objetivo.

Primeiro, devem atualizar e limpar a instalação.

sudo apt update && sudo apt upgrade --show-upgraded
sudo apt clean
sudo apt autoremove -y

Podem verificar se há algum pacote que esteja instalado, para o remover por vossa conta e risco, listando todos os pacotes com sudo dpkg -l.

Como não dava para instalar uma solução NAS, como explico na ultima secção deste artigo, e já tenho o Home-Assistant, decidi-me por instalar o servidor de ficheiros Samba, que é compatível depois com vários sabores de computador e pode já hoje em dia ser montado remotamente no Home-assistant, facilitando a gestão de ficheiros pela app e por browser.

sudo apt install samba

Dependendo do vosso RPi, a instalação vai demorar mais ou menos tempo. Podem ignorar a mensagem de instalação a dizer que ele não se configurou como um Domain Controler. Não me parece que queiram controlar remotamente os vossos computadores lá de casa a partir da vossa moldura de fotografias.

Podem testar a instalação do servidor Samba localmente.

sudo systemctl status nmbd

Se tiver corrido tudo bem, vão ver uma mensagem verde a dizer que está ativo e a ser executado. O vosso Raspberry Pi vai aparecer-vos na rede doméstica como uma máquina Windows, para já sem pastas partilhadas.

Agora, criam uma pasta para simular um disco. Vão fazê-lo no diretório do utilizador para facilidade de teste e configurar logo os acessos. Não se preocupem muito para já com isto. Mais à frente vamos mudar.

mkdir /home/pi/datafolder
chmod 777 /home/pi/datafolder

Para configurar o acesso a um disco, vão ter de editar o ficheiro de configuração do serviço Sama. Se tivessemos um NAS seria aceder a um interface gráfico de utilizador, mas enfim… Venha lá mais instruções para a linha de comandos.

sudo nano /etc/samba/smb.conf

A configuração não tem de ser necessariamente esta, até porque aquele 0777 que vão escrever quer dizer que todos podem tudo (ler, escrever e executar). Depois de testarem que tudo funciona, convém reverem a configuração do vosso smb.conf.

[Photos]
comment = RPi Share for photo frame
path = /home/pi/datafolder
create mask = 0777
directory mask = 0777
writable = true
security = share
browseable = true
public = yes

Criada a configuração, tem de reiniciar o serviço para que leia a configuração (Sem comentários).

sudo service smbd restart

Tudo instalado e configurado, podem passar à Parte 3.

Parte 3 – Configurar o Raspberry Pi como gadget de armazenamento em massa (g_mass_storage)

O que querem é que ao mesmo tempo o Raspberry Pi receba os ficheiros e os disponibilize à moldura eletrónica, como se de um disco externo USB se tratasse.

A questão é que agora, o disco não vai vos aparecer na moldura porque o RPi está a funcionar como um computador e não como um gadget de armazenamento para os vossos dados.

Para configurar o Raspberry Pi como um gadget de armazenamento (mass storage) terão de editar o ficheiro de configuração do próprio RPi.

sudo nano /boot/config.txt

No final do ficheiro vão ter de acrescentar dtoverlay=dwc2. Para gravar e sair do nano, carreguem em na tecla ctrl + O e depois ctrl + X.

Vão ter de acrescentar também ao ficheiro de configuração dos módulos do sistema operativo o mesmo dwc2. Este dwc2 é o nome do driver de kernel linux que vai fazer o serviço, mas que, por omissão não vem configurado.

sudo nano /etc/modules

No final do ficheiro, acrescentem dwc2 e gravem com ctrl + O e ctrl + X.

Para tudo funcionar, ainda faltam maus umas voltas. Vamos ter de:

  1. Criar um contentor (container) para simular o disco que será disponibilizado como gadget.
  2. Montar o disco no filesystem.
  3. Atualizar o container de cada vez que lá sejam colocados ficheiros.

Para criar o container, executem o comando abaixo, tendo em conta que o valor que colocam em count é o espaço que estão a reservar para simular o disco. Neste caso, os 2048 equivalem a 2GB.

sudo dd bs=1M if=/dev/zero of=/piusb.bin count=2048

Depois de criado este contentor, têm de formatar e montar o disco automaticamente para que possa ser utilizado.

sudo mkdosfs /piusb.bin -F 32 -I
sudo mkdir /mnt/piusb
sudo nano /etc/fstab

No ficheiro /etc/fstab, vão ter de acrescentar uma linha que monte o disco automaticamente.

/piusb.bin /mnt/piusb vfat users,umask=000 0 2

Para montar todos os discos configurados em /etc/fstab, correm o comando sudo mount -a. O vosso sistema encarrega-se disto no futuro.

Para disponibilizar o disco piusb na rede através do Samba, já adivinharam. Vão ter de configurar o Samba, como já fizemos anteriormente, mas agora a apontar para o disco piusb.

sudo chmod 777 /mnt/piusb/
sudo nano /etc/samba/smb.conf

No ficheiro /etc/sambe/smb.conf, podem acrescentar o vosso novo disco a partilhar, alterando o caminho para a pasta para /mnt/piusb.

[Photos]
comment = RPi Share for photo frame
path = /mnt/piusb
create mask = 0777
directory mask = 0777
writable = true
security = share
browseable = true
public = yes
guest ok = yes
read only = no

Para ligar o RPi em modo gadget de armazenamento em massa, ainda vão ter lhe ligar o módulo que anteriormente configurámos e dizer-lhe onde está o ficheiro que simula o disco.

sudo modprobe g_mass_storage file=/piusb.bin stall=0 ro=1

Depois de testarem, escrevendo algo, lendo e sincronizando os dados com o comando sudo sync, podem desmontar o disco do interface USB via modprobe. O disco vai continuar disponível via Samba.

sudo modprobe -r g_mass_storage

Algo que o sistema não se encarrega é a sincronia disto tudo. De cada vez que copiam imagens para este /mnt/piusb, seja por que via for, teriam de fazer um conjunto de operações, e lá voltávamos ao que nos trouxe até aqui: demasiadas operações só para ver umas fotos novas na nossa moldura eletrónica. Aqui a revista MagPi deu uma ajudinha.

Terão ainda de criar algo que engane o equipamento que vai receber o disco externo para que fique no modo como se lhe tivessemos tirado e voltado a meter o disco USB externo, e assim recarregar a lista de ficheiros com as mudanças.

Vamos necessitar do Python, do Pip3 e de um script que vai fazer de cão de guarda (watchdog) e executar instruções de cada vez que detete uma alteração.

sudo apt install python python3-pip
sudo pip3 install watchdog

cd /usr/local/share
sudo wget http://rpf.io/usbzw -O usb_share.py
sudo chmod +x usb_share.py

Vão ter de adaptar o ficheiro usb_share.py para que esteja de guarda ao /mnt/piusb. Para isso, alterem o ficheiro com sudo nano /usr/local/share/usb_share.py e onde estiver WATCH_PATH = "/mnt/usb_share", tem de passar a estar WATCH_PATH = "/mnt/piusb".

Para isto tudo funcionar, temos ainda de colocar o script como um serviço, assim ele funciona logo ao arranque do RPi e continua a funcionar.

cd /etc/systemd/system
sudo nano usbshare.service

No ficheiro usbshare.service vamos colocar as configurações para o ficheiro python que instalámos funcionar como um serviço.

[Unit]
Description=Watchdog for piusb

[Service]
Type=simple
ExecStart=/usr/local/share/usb_share.py
Restart=always

[Install]
WantedBy=multi-user.target

Depois de gravarem, com ctrl + O e sairem com ctrl + X, tem de ativar e iniciar o vosso novo serviço.

sudo systemctl daemon-reload
sudo systemctl enable usbshare.service
sudo systemctl start usbshare.service

O serviço vai procurar por alterações no /mnt/piusb e esperar 30 segundos antes de cumprir a sua função, por isso, sejam pacientes.

Antes de desligar o RPi para o mudarem de sitio, não se esqueçam de fazer sudo halt para não danificar os discos.

Na parte seguinte deste artigo explico como usar o Home-assistant com isto tudo. Se não tiverem o Home-Assistant, também podem enviar a imagem a partir de qualquer computador para a vossa partilha de ficheiros Samba já instalada.

Bonus – Copiar ficheiros para o RPi USB Gadget a partir do Home-Assistant

A parte de receber ficheiros podia ser feita só com cópia de ficheiros, mas não tinha a mesma graça e era preciso andar às voltas com a linha de comandos. Se tiverem o Home-assistant, podem ir ao vosso menu de gestão de armazenamento em rede (Netowrk Storage), adicionar a vossa nova drive remota como Media, com o protocolo Samba ligado para o vosso novo servidor, e dar-lhe o nome Photos, ou outro à vossa escolha.

Só falta resolver a questão de “Então mas e agora como é que ponho lá as fotos com o Home-assistant?”.

Para além do interface gráfico de utilizador que é disponibilizado via browser, o Home-assistant oferece as Companinon App, o que facilita enviar as fotos do vosso smartphone.

Em qualquer interface gráfico de utilizador, podem seguir os mesmos passos: Media > My Media > Photos. Está feito.

Atenção ao tamanho das imagens que enviam para a vossa moldura. Isto como é uma coisita já antiga e com poucos recursos, é capaz de se engasgar com esses novos formatos de grande dimensão que são hoje em dia gravados no vosso smartphone por cada foto. No caso do iPhone, depois de selecionar as fotos que quero enviar, podem carregar e selecionar o tamanho mais pequeno (Small).

Raspberry Pi Zero W v1.1 de 2017 e Raspberry Pi 2B de 2015

Nas referências deste artigo vão encontrar uma série de voltas que dei a tentar colocar uma solução de gestão do sistema via browser. Estas soluções estão na categoria dos Network Attached Storage (NAS).

A maioria dos NAS open source mais comuns só podem ser instalados em arquiteturas de 64-bit, o que significa que o vosso Raspberry Pi antigo pode não servir. No meu caso, o que usei foi um Raspberry Pi Zero W v1.1 de 2017 e um Raspberry Pi 2 B de 2015, por isso tive de procurar uma solução 32-bit.

Por teimosia, acabei por instalar o Webmin no Raspberry Pi Zero W e no Raspberry Pi 2 B para ter um interface simplificado de configuração, até porque não sou muito fluente em smb.conf, mas isso fica para outro dia.

curl -o setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh
sudo bash setup-repos.sh
sudo apt install --install-recommends webmin

O vosso acesso via browser ao Webmin vai ficar disponível em https://raspberrypi.local:10000. Vão ter de aceitar o certificado digital autoassinado que vem de origem e o port 10000 podem alterar depois. O username e password são o mesmo que usaram para se ligarem via SSH.

Para controlar os discos, instalei os Smartmontools que serve depois no Webmin para ter Self-Monitoring, Analysis, and Reporting Technology (SMART) dos discos compatíveis.

sudo apt install smartmontools

Todos os pacotes que instalei e testei eram identificáveis pelo posfixo da arquitetura armhf. Para confirmarem a arquitetura do vosso Raspberry Pi podem correr o comando dpkg --print-architecture.

Se não se lembrarem do nome que deram ao vosso RPi, façam cat /etc/hostname e podem ler o resultado.

Todos os Raspberry Pi foram tratados de maneira humana e sem sofrimento para efeitos deste artigo.

Referências:

Automatizar a casa com ESPhome, desta vez com Shelly

Esta semana comecei uma nova etapa de automatizar a minha casa com ESPhome. Vou substituir os meus fieis interruptores de parede SonOff por interruptores normalíssimos, aditivados nas ligações elétricas com equipamentos Shelly, mas com o twist de os carregar com software gerado a partir do ESPhome..

Representação do Shelly 1 instalado por trás de um interruptor elétrico de parece

Com o Shelly e ESPhome é possível adicionar funcionalidades a um interruptor antigo e ainda assim evitar preocupações por ter dados nos computadores dos outros, isto é, na nuvem (Cloud) ou vir a ter código obsoleto instalado.

Por deformação profissional, vou acompanhando os males (vulnerabilidades) de que vêm sofrendo cada vez mais os sistemas de informação, mas também outros males que decorrem do uso que é dado aos nossos dados. A titulo de exemplo, vejam:

Tenho utilizado na minha casa o Home-assistant com equipamentos baseados em Espressif, os quais carrego com código aberto gerado com a ajuda do ESPhome. Esta configuração evita expor os meus dispositivos eletrónicos de controlo doméstico às redes de informação dos outros por os ligar a nuvens, ou utilizar código de software fechado, sem ter como os atualizar porque o fabricante desapareceu ou por obsolescência programada.

A grande diferença entre ter interruptores completos programáveis e ter apenas o circuito elétrico intercetado por uma peça de eletrónica programável, é que é possível escolher usar os interruptores que visualmente melhor combinam com a minha decoração.

Para quem já tenha a experiência com os ESP8266 ou ESP32 da Espressif, a maior dificuldade vai ser mesmo lidar com eletricidade a 220V (que “aleija” um bocado se nos distrairmos, para além de poder pegar fogo à casa).

Na prática, o Shelly regista as alterações de posição do interruptor físico, mudando a posição do interruptor programável através do software. Isto permite acionar a luz diretamente no interruptor ou por instrução remota via WiFi.

Esquema de ligação elétrica do Shelly 1 v3

O software que vem dentro do equipamento (firmware) Shelly faz tudo, e tem até a possibilidade de não o ligar à nuvem. Existe mesmo uma integração direta com Home-assistant para equipamento Shelly, que se pode instalar através da loja de add ons HACS.

Tendo em conta o meu objetivo de libertar o equipamento, que possivelmente também é o vosso objetivo, podem optar por substituir o firmware, através da injeção direta nos pins de programação do Shelly, com a ajuda de um adaptador ou usando a funcionalidade de substituição do firmware Shelly sobre wifi. (Esta segunda opção é, no meu entender, menos fiável porque pode falhar e ficam com o equipamento inutilizado)

Shelly 1 Pin out

Para quem não esteja muito habituado a configurações com YAML, o que não é o caso para os veteranos de Home-assistant, ou não tenha a certeza que os equipamentos que comprou possam ser utilizados com ESPhome, pode sempre consultar os exemplos de configuração ESPhome para vários equipamentos partilhados no ESPhome-Devices.