ESPHome: Código base para facilitar a configuração dos dispositivos

image
Esse tutorial traz uma configuração básica para seus dispositivos ESP usando ESPHOME.

Para instalar e configurar o ESPHOME:

Nesse modelo, além principais informações de configuração ficar todas juntas na parte superior do código, já inclui alguns sensores com informações do dispositivo:

  • Status: conectado ou desconectado
  • Rede: Nome da rede wifi
  • Sinal Wifi: Intensidade do sinal wifi
  • IP: Endereço IP na rede
  • Reiniciar: comando para reiniciar o esp
  • Versão: versão do ESPHOME e data da compilação do código

image

Código base para o dispositivo ESPHOME

Os comentários do código abaixo pode auxiliar no entendimento de cada componente, dúvidas podem ser sanadas na documentação oficial.

substitutions:
  #Configurações:
  Plataforma: ESP8266 #Altere para o modelo da sua placa
  TipoPlaca: nodemcuv2 #Altere para o tipo da sua placa
  hostname: espteste #Hostname do dispositivo na rede (não usar underline '_' pois atrapalha o funcionamento do mDNS).
  comment: Descrição do projeto...
  PrefixoNome: 'Teste - ' #Texto que aparece no início de cada entidade e forma o id da entidade

  #Configurações da rede
  RedeWifi: !secret RedeWifi #Nome da rede wifi que o dispositivo irá se conectar
  SenhaWifi: !secret  SenhaWifi #Senha da rede wifi que o dispositivo irá se conectar
  SenhaWifiReconfig: !secret SenhaWifiReconfig #Senha do AP Wifi para reconfiguração do wifi do dispositivo
  EndConfig: ${hostname}.local #192.168.1.50 #Endereço para configuração (IP que o esp está acessível atualmente na rede), especialmente usado quando quer alterar o hostname via OTA
  WifiOculto: 'False' #Se a rede wifi está oculta defina como 'True'
  WifiFastConnect: 'False' #Se o esp realizará a conexão à rede wifi sem escanear as redes disponíveis defina como 'True'

  #Senhas
  SenhaAPI: !secret SenhaAPI #Senha para adicionar o esp no HA
  SenhaOTA: !secret SenhaOTA #Senha para atualizar o firmware do esp via OTA

esphome:
  name: $hostname
  comment: ${Comment}
  platform: ${Plataforma}
  board: ${TipoPlaca}

  project:
    name: "dougiteixeira.modeloesp"
    version: "1.0.0"
  
wifi:
  networks:
  - ssid: ${RedeWifi}
    password: ${SenhaWifi}
    hidden: ${WifiOculto}
  fast_connect: ${WifiFastConnect}
  use_address: ${EndConfig}
  
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: ${hostname}_WIFI
    password: ${SenhaWifiReconfig}

#Habilita um AP Wifi para reconfigurar em caso de perda de conexão com a rede configurada
captive_portal:

#Habilita a api para comunicar com o Home Assistant
api:
  password: ${SenhaAPI}

#Habilita a atualização de firmware por OTA
ota:
  password: ${SenhaOTA}

#Habilita as mensagens de logs pela porta serial e via MQTT
logger:

binary_sensor:
  #Status (conectado ou desconectado)
  - platform: status
    id: status_conexao
    name: ${PrefixoNome} Status
    device_class: connectivity

button:
  #Comando reinicilizar esp remotamente
  - platform: restart
    id: restart_button
    name: ${PrefixoNome} Reiniciar
    icon: mdi:restart

text_sensor:
  #Informações da conexão wifi
  - platform: wifi_info
    #Endereço IP
    ip_address:
      id: IP
      name: ${PrefixoNome} Endereço IP
      icon: mdi:ip-network
    #Nome da Rede
    ssid:
      id: SSID
      name: ${PrefixoNome} Rede Wifi
      icon: mdi:wifi
  #Informação da versão da compilação
  - platform: version
    id: versao
    name: ${PrefixoNome} Versão
    icon: mdi:information

sensor:
  #Sensor Intensidade Sinal Wifi
  - platform: wifi_signal
    id: wifi_sinal
    name: ${PrefixoNome} Intensidade Wifi
    icon: mdi:signal
    update_interval: 10s

Todas as informações importantes (senhas OTA e API, configuração da rede wifi, etc) estão armazenadas no arquivo secrets.yaml (ver aqui e aqui para mais detalhes de configuração e uso).

Mais detalhes pode ser visto na documentação do ESPHome:

6 Likes

bacana demais! nao sabia q era possivel pegar todas essas informacoes… vou adicionar aqui nos meus esp32

Só fique atento que é necessário alterar a Plataforma e o TipoPlaca de acordo com o modelo que for utilizar.

Muito bom este exemplo, me ajudou a começar a entender… sou iniciante. obrigado.

1 Like