ESPHome
ESPHome es un sistema para controlar todos los ESP2866/ESP32 de una manera simple y muy potene usando archivos de configuración muy simples, además se comunican de un forma muy fácil y sencilla con Home Assistant.
Instalar Addon ESPHome en Home Assistant
Para ello ve al menú de Supervisor Tienda de Complementos y Busca Esp Home, haces click y le das a instalar.

Una vez instalado te aparecerá en el menú lateral.
Si quieres saber un poco más
Hardware recomendado
Cualquier ESP32 o Wemos es suficiente, lo puedes adquirir por pocos euros en Aliexpress, hay diferentes modelos, con conexión a una antena Wifi, con una cámara (llamado ESPCAM), etc.
Si quieres saber un poco más
Flashear ESP32
Afortunadamente los ESP32 traen su propio puerto para poder programalos, tan solo necesitas un cable micro usb, el programa ESPHome Flasher , y el archivo binario, que lo generarás con ESPHome.
Mira como se flashea
Crear tu primer nodo ESP
Ya tienes tu ESP32 en la mano, y te gustaría algo que hacer, pero tengo que programar en C++, quizás tengo que llamar a varias librerías, no, todo es mucho más fácil de lo que parece, todo a través de ESPHome. Para ello vamos a crear nuestro primer nodo:
Pulsamos sobre el símbolo +, que está justo abajo a la derecha:

Completamos los siguientes datos:
- Name: Nombre que le darás a tu nodo para identificarlo rápidamente
- Wi-Fi SSD: El nombre de tu wifi
- Wi-Fi password: La contraseña de tu wifi

Seleccionas el modelo de tu ESP, normalmente es un ESP32, y automáticamente tu primer nodo estará creado:

Aparece con una linea roja por arriba indicando de que no esta disponible, evidentemente hasta que no lo flasehemos no estará disponible.
Para descargarte el firmware que luego grabarás en tu dispositivo deberás hacer click en los 3 puntitos de la derecha y seleccionar la opción de menú Install Manual Download

Ahora verás como automaticamente se empieza a compilar y generar el binario, dependiendo de la potencia de tu equipo puede tardar unos minutillos. Una vez que haya terminado, el ficharo binario se descargará, y así ya lo puedes flashear
Usar ESP32 como receptor Bluetooth
Tienes los famosos termométros de Xiaomi, si los cuadraditos pequeños, pero el Bluetooth de tu sistema domótico no los consigue leer, quizás está un poco lejos, pues puedes usar un ESP32.
Aunque se pueden usar estos termómetros sin necesidad de cambiar el firmware os recomendamos encarecidamente de que los cambiéis.
Cambiar firmware
Una vez que tengamos los termométros con el firmware alternativo, podemos hacer que un ESP32 coja los valores de ese termométro y los transmita vía Wifi a nuestro servidor Home Assistant, ¿como lo hacemos?
Deberás tener creado un nodo con un ESP32 en ESPHome. Necesitas saber las MAC Bluetooth de tu termometros, para saber la MAC de tu termométro:
- Usar la aplicación de móvil Bluetooth Mac Address Finder (Android)
- Usar la aplicación de Mi Home, buscar el termométro, emparejarlo y en características ver la MAC
- Usar la integración de HACS ble monitor , y usar el asistente de esta integración para ver la MAC.
Añade las siguientes líneas a tu nodo de ESPHome:
esp32_ble_tracker:
sensor:
- platform: pvvx_mithermometer
mac_address: "Aquí pones tu MAC, en el formato AA:0E:3F:56"
temperature:
name: "Temperatura estancia ejemplo"
humidity:
name: "Humedad estancia ejemplo"
battery_level:
name: "Nivel estancia ejemplo"
battery_voltage:
name: "Voltaje estancia ejemplo"

Ampliar cobertura de un ESP32
Tienes problemas con tu ESP32, ¿se te desconecta habitualmente?, ¿no te llega el Wifi?, no te preocupes, sino te da miedo el soldador puedes conecetarle una antena a tu ESP y recuperar la cobertura.
Aunque tu ESP32 no tenga conector de antena,puedes cortar las pista de la antena Wifi y soldarle una antena:
@jabato35
Problemas con el log en ESPHome
¿Tines problemas con el log de tu nodo?, ¿accedes y recibes el mensaje de no buffer space avalaible?, pues tienes solución te contamos cómo.
Parece ser que es un problema del buffer de los interfaces de red que crea docker, que por alguna razón se queda sin espacio, prueba a ejecutar los siguientes comando en Raspbian:
sudo sysctl -w net.ipv4.igmp_max_memberships=50
sudo sysctl -w net.ipv4.igmp_max_msf=30
Comprueba si ya desaparece el mensaje, si sigue apareciendo prueba a subir un poco los valores. Estos cambios cuando reinicies los perderás, por lo que vamos a hacerlos fijos. Editamos el archivo sysctl.conf
sudo nano sysctl.conf
Y añades las siguientes líneas al final de archivo
sysctl -w net.ipv4.igmp_max_memberships=50
sysctl -w net.ipv4.igmp_max_msf=30
@JaviLopezFotografia