Trucos para ESPHome

Hoy vamos a ver 5 trucos muy útiles para ESPHome:

  • Datos de diagnóstico
  • Sustituciones
  • Varios WiFi
  • IP Fija
  • Poner en Hora

Este es el vídeo:

Aquí está el código analizado en el vídeo:


substitutions:
  hostname: "esp-pruebas" 
  friendly_name: "ESP pruebas"

esphome:
  name: "$hostname" 
  friendly_name: "$friendly_name"

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "OcDZxE7e3uuc9gBj1Kbk6iCoDY9te028Q7h0g3PDuxU="

ota:
  password: "a65ca3c5dd78b1eb5f0c4b4afb978fe4"

wifi:
  # definimos varios Wifi para que el dispositivo se conecte automáticamente al 
  # que llegue con mejor cobertura
  networks:
  - ssid: !secret wifi_ssid
    password: !secret wifi_password
  - ssid: !secret wifi_ssid2
    password: !secret wifi_password
  
  manual_ip:
    static_ip: 192.168.0.210
    gateway: 192.168.0.1
    subnet: 255.255.255.0
    
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp-Pruebas Fallback Hotspot"
    password: "vlhLyscKbSSN"

captive_portal:

# Led ejemplo    
switch:
  platform: gpio
  id: led
  name: led
  pin: GPIO33

# Pulsador ejemplo
binary_sensor:
  platform: gpio
  id: pulsador
  name: pulsador
  pin: GPIO25


## Información general y de conectividad
text_sensor:
  # Versión de ESPHome
  - platform: version
    name: "$hostname ESPHome Version"

  # Información de conectividad Wifi.
  - platform: wifi_info
    ip_address:
      name: "$hostname IP"
    ssid:
      name: "$hostname SSID"
    bssid:
      name: "$hostname BSSID"
    mac_address:
      name: "$hostname MAC"
  - platform: template
    name: "$hostname Friendly Name"
    icon: "mdi:information-outline"
    lambda: |-
      return {"$friendly_name"};
  - platform: template
    name: $hostname Uptime HR
    id: uptime_hass
    icon: mdi:clock-start

sensor:
  # WiFi Signal sensor.
  - platform: wifi_signal
    name: '$hostname WiFi Signal'
    update_interval: 120s

  # Sensor tiempo encendido
  - platform: uptime
    name: "$hostname Tiempo Encendido"
    id: "tiempo_encendido"
    on_raw_value:
      then:
        - text_sensor.template.publish:
            id: uptime_hass
            state: !lambda |-
              int segundos = round(id(tiempo_encendido).raw_state);
              int dias = segundos / (24 * 3600);
              segundos = segundos % (24 * 3600);
              int horas = segundos / 3600;
              segundos = segundos % 3600;
              int minutos = segundos /  60;
              segundos = segundos % 60;
              return (
                (dias ? String(dias) + "d " : "") +
                (horas ? String(horas) + "h " : "") +
                (minutos ? String(minutos) + "m " : "") +
                (String(segundos) + "s")
              ).c_str();
Scroll al inicio