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


Wifi em hotéis

Quando, por razões profissionais ou de lazer, tenho que ficar num hotel, um dos requisitos mais importantes é o da existência de ligação à Internet, de preferência através de wireless. Antes de tomar uma decisão, consulto normalmente o TripAdvisor e procuro verificar se, para além da existência de ligação à Internet, como é que funciona, e se a cobertura atinge o hotel todo ou apenas parte.

Numa análise recente, descobriu-se que dois terços dos hotéis e alojamentos da Europa, do site HRS oferecem wifi gratuito aos seus hóspedes. A lista é liderada pela Turquia, com quase 85% de 125000 ofertas a incluírem wireless de borla!

A posição de Portugal na referida lista foi para mim uma grande surpresa! Todavia, em função do facto de que somos o País da Europa com menor penetração de banda larga fixa, sermos os últimos da lista dos hotéis com ligação à Internet gratuita, e por uma larga margem, deixa assim de ser surpresa. Quando há que pagar Internet, o custo relega-nos para uma posição de meio da tabela, mas pagar Internet não é algo a que muitos estejam dispostos. Por isso, não se admirem que os turistas troquem este jardim à beira-mar plantado, por outros locais melhor ligados à rede global…

Wifi mais rápido pelo preço de uma folha de alúminio

Já aqui vos dissemos o método dos engenheiros de como garantir o melhor sinal WiFi dentro da vossa casa. Este método envolve alguns conhecimentos técnicos sobre sinal, como medir o sinal e ajeitar o router WiFi a ângulos de 90º.

Também já tínhamos aqui referido que existem outras maneiras de ganhar sinal no WiFi. Como sou mais para os lados do cozinheiro, encontrei alguém que se deu ao trabalho de ilustrar o método que usa apenas uma folha de alumínio.

Basicamente, terão de dobrar uma folha de alumínio num retângulo e moldá-lo em curva para o colocar em torno da antena. A solução, não sendo extraordinária, dá para notar a diferença, mas a banda sonora do filme é épica.

Desligar o Bluetooth e Wifi

A utilização de algumas funcionalidades em determinados equipamentos podem significar um consumo adicional de energia. Tal é o caso genérico do Bluetooth e Wifi, sendo o consumo do Bluetooth bastante inferior ao do Wifi, conforme pode ser visto neste documento. Tal é explicado pelos diferentes potência de sinal, alcance e velocidades, claramente superiores no caso do Wifi. Nalguns casos, o consumo do Bluetooth pode ser de apenas 6% do consumo de Wifi. Todavia há situações em que a diferença de consumo não é tão substancial.

Quando estas funcionalidades se desligam, pode haver lugar a diminuições no consumo de energia. Todavia, como elas consomem muito pouco, serão sobretudo sentidas em equipamentos alimentados a pilhas ou baterias. Tal é o caso, por exemplo, de portáteis e telemóveis. Nestes casos, quando a funcionalidade não é precisa, pode ser desactivada.

Note-se todavia que a desactivação da funcionalidade pode não levar a uma redução do consumo. Tal é desejável, mas como já vimos em exemplos anteriores, nem sempre isso acontece. Nalguns casos, desligar num botão físico poderá ser mais eficiente que desligar por software. De qualquer forma, na dúvida desligue sempre, porque para além de prolongar a autonomia, fica igualmente mais seguro!

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.

Interruptores smart com ESPhome e Home-assistant

Com o tempo, tenho transformado o meu apartamento numa smart home. Fiz isso usando o Home-assistant (HASS), alguns ESP8266 e ESP32 com vários tipos de sensores, e uns interruptores da marca SonOff, produzidos pela ITEAD.

Até há uns dias, usava código meu nos ESP8266 e ESP32. Nos interruptores, algo bem mais complicado, converti-os do firmware original para um firmware free open source chamado Tasmota. Este firmware Tasmota é largamente utilizado pela comunidade portuguesa do HASS. Nesta conversão, a parte mais difícil é mesmo abrir os interruptores e soldar uns pins a um programador série para fazer upload do código. Só custa a primeira vez…

Aqui há uns dias, converti todos os meus ESP para ESPhome, pelas várias vantagens que já referi. Hoje, decidi testar o ESPhome num dos meus interruptores de testes da SonOff.

As instruções para fazer esta mudança dos SonOff de Tasmota para ESPhome estão no próprio site do ESPhome. Mas ficam aqui os passos que fiz para um SonOff T2.

A primeira coisa que é necessário fazer é gerar um firmware com Over The Air (OTA) e fazer upload para o SonOff. Fiz tal e qual como nas instruções do ESPhome.

Cada interruptor smart-home SonOff pode ter uma configuração diferente. Cá em casa tenho vários SonOff T1 com 1 e 2 interruptores. Seguindo as instruções do ESPhome, fiz um teste com o SonOff T1 2ch.

No site está uma tabela com os pins e a configuração que temos de preparar em cada pin.


Pin
Função
GPIO0 Button 1 (inverted)
GPIO12 Relay 1 and Blue LED
GPIO9 Button 2 (inverted)
GPIO5 Relay 2 and Blue LED
GPIO10 Button 3 (inverted)
GPIO4 Relay 3 and Blue LED
GPIO13 Blue LED (inverted)
GPIO1 UART TX pin (for external sensors)
GPIO3 UART RX pin (for external sensors)

Por cada botão, vamos ter de adicionar uma secção destas:

binary_sensor:
- platform: gpio
pin:
number: GPIO0
mode: INPUT_PULLUP
inverted: True
name: "Sonoff 2CH Button 1"
on_press:
- switch.toggle: relay_1

E um destes:

switch:
- platform: gpio
name: "Sonoff 2CH Relay 1"
pin: GPIO12
id: relay_1

Vão ter de arrumar todos os switch e todos os binary_sensor na mesma secção, e não se podem repetir secções.

Reparem que o binary_sensor, que aqui representa um dos botões no painel do SonOff, tem uma condição on_press que altera um switch chamado relay_1. Este nome deve ser colocado como identificador do switch que querem mudar de posição. Neste caso, o id do switch 1 será relay_1.

É esta condição que faz com que a luz se ligue ou desligue de cada vez que pressionam o botão no painel do interruptor.

O resultado final fica assim:

substitutions:
  hostname: 'sonoff_04'
esphome:
  name: $hostname
  platform: ESP8266
  board: esp01_1m
wifi:
  ssid: MINHA_REDE_WIFI
  password: PASSWORD_DA_MINHA_REDE_WIFI
  fast_connect: True
  domain: .home
api:
  reboot_timeout: 0s
  password: "PASSWORD_PARA_API"
ota:
  safe_mode: True
  password: PASSWORD_PARA_OTA
logger:
# SonOff T2 2CH configuration
binary_sensor:
  - platform: gpio
    pin:
     number: GPIO0
     mode: INPUT_PULLUP
     inverted: True
    name: "$hostname Button 1"
    on_press:
     - switch.toggle: relay_1
  - platform: gpio
    pin:
     number: GPIO9
     mode: INPUT_PULLUP
     inverted: True
    name: "$hostname Button 2"
    on_press:
      - switch.toggle: relay_2
switch:
  - platform: gpio
    name: "$hostname Relay 1"
    pin: GPIO12
    id: relay_1
  - platform: gpio
    name: "$hostname Relay 2"
    pin: GPIO5
    id_5
output:
  - platform: esp8266_pwm
    id: sonoff_led
    pin:
      number: GPIO13
      inverted: True
light:
  - platform: monochromatic
    name: "Sonoff LED"
    output: sonoff_led

Reparem como aproveitei o que que explico sobre como configurar o ESPhome para facilitar os nomes de cada sensor e atuador.

Assim, se depois de ter o interruptor a teste uns dias estiver tudo a funcionar sem problemas, basta mudar o nome do hostname na secção substitutions para ter tudo pronto para outro interruptor com a mesma configuração. Só muda o nome.