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();

