Instalación y primer uso de ESPHome en Home Assistant

ESPHome es un sistema que permite integrar dispositivos ESP32 en nuestro Home Assistant sin apenas escribir código. A través de esta interface es posible realizar la programación de diferentes elementos que podemos conectar a cualquier placa ESP32 y recibir los datos o interactuar con ella a través de nuestro Home Assistant.

Permite interactuar con multitud de dispositivos que tienen como base el controlador ESP8266 o el ESP32, en la siguiente imagen aparecen los dispositivos que se pueden utilizar a través de ESPHome:

Instalación de ESPHome en nuestro Home Assistant

Para proceder a la instalación acudiremos a Hassio para realizar la búsqueda de esta pequeña aplicación.

En la pestaña suprerior ADD-ON STORE encontraremos diferentes add-ons entre los que se encuentra ESPHome.

Utilizaremos el botón Install para proceder a la instalación de este plugin en nuestro Home Assistant.

Una vez instalado, encontramos diferentes opciones que podemos configurar, Start on boot activa la ejecución automática cuando se reinicio nuestro servidor. Es necesario activar esta opción si pensamos hacer uso de este plugin para integrar dispositivos.

En nuestro caso hemos activado también la opción Show in Sidebar ya que genera un acceso directo en la barra lateral de nuestro Home Assistant para un acceso más rápido, en caso de no activarlo, el acceso se realizará desde esta ventana a través del botón de la parte inferior derecha, open web ui.

Importante: En algunas ocasiones durante el proceso de configuración de nuevas placas, el sistema genera un error que no permite acceder al editor de los archivos yaml con el código que vamos a utilizar. En estos casos solo he encontrado una solución, reiniciar el servicio desde la ventana de configuración usando el botón restart.

Con estos sencillos pasos ya hemos realizado la instalación de este plugin.

Poniendo en marcha el primer dispositivo

Para inciarnos en el uso de ESPHome hemos elegido un esquema extremadamente sencillo, vamos a construir un sensor de temperatura y humedad para posteriormente integrarlo en nuestro Home Assistant con un número mínimo de lineas de código.

Para empezar hemos conectado un sensor de temperatura y humedad DHT22 (Amazon) a una placa de desarrollo ESP32 NodeMCU (Amazon). La conexión es muy sencilla ya que este tipo de sonda puede trabajar tanto a 3v como a 5v por lo que será sufiente conectar el positivo de la sonda a la salida de 3v de nuestra placa, el negativo a GND y el bus de datos a una de las entradas/salidas digitales, en nuestro caso hemos optado por el pin 22.

Realizada la conexión física del cableado, pasamos a la configuración en la aplicación de la placa y del sensor.

Integración de la placa en ESPHome y Home Assistant

Si seguimos los pasos anteriores, ESPHome debería aparecer en nuestra barra lateral de Home Assistant, en caso de que no aparezca, debemos acceder a través del botón Hassio, OpenWebUI.

Una vez en la pantalla principal de la aplicación, utilizaremos el botón + para añadir un nuevo dispositivo y comenzaremos con los pasos de configuración.

Una vez que pulsemos el botón nuevo nodo, comenzará el asistente en el que debemos cumplimentar los datos de la placa, nombre que tendrá en nuestro sistema, tipo de dispositivo, datos de acceso de la red wifi de nuestra casa y la contraseña de acceso al dispositivo. Esta última se utiliza para que solo nuestro HomeAssistant tenga acceso a nuestra placa y para realizar actualizaciones vía WIFI y modificaciones en el código, algo que veremos posteriormente.

Los pasos son los siguientes:

En el momento en el que finalicemos de rellenar los datos solicitados y pulsemos el botón submit, tras unos segundos aparecerá el dispositivo en la lista.

Dado que el dispositivo no se encuentra configurado ni activo porque aún no hemos establecido el código que lo hará funcionar y no se ha grabado esta información en la placa, su estado figura como desconocido.

Para iniciar el proceso de puesta en marcha, el primer paso será utilizar el botón EDIT para editar el código de nuestro dispositivo que posteriormente compilaremos y grabaremos en la placa.

Por defecto aparecerá el código que vemos en la imagen anterior con los datos que hemos introducido en el asistente, en nuestro caso vamos a modificar su contenido para adaptarlo a nuestras necesidades.

#Información sobre el dispositivo. Nombre identificativo, plataforma (en nuestro caso placa de desarrollo ESP32) y tipo de placa.
esphome:
  name: salon
  platform: ESP32
  board: esp32dev

#Información sobre la red WIFI a la que se conectará el dispositivo
wifi:
  ssid: "nombre de la red wifi"
  password: "contraseñawifi"

  # En caso de que la red wifi no esté disponible, el dispositivo creará la siguiente red con un portal cautivo para su configuración
  ap:
    ssid: "Salon Fallback Hotspot"
    password: "SHe4DECXAw1L"

captive_portal:

# Enable logging
logger:

# Activa la conexión a través de la API de Home Assistant y la contraseña para actualizaciones Over The Air
api:
  password: "acceso"

ota:
  password: "acceso"
 
#Datos de nuestro sensor, plataforma, pin al que está conectado y nombre asignado a cada lectura que realice y frecuencia de actualización de los datos
sensor:
  - platform: dht
    pin: 22
    temperature:
      name: "Salón Temperatura"
    humidity:
      name: "Salón  Humedad"
    update_interval: 60s  

Una vez modificado el código, procederemos a compilar nuestro binario a través de la opción que aparece al pulsar en los tres puntos de la parte derecha de nuestro dispositivo en ESPHome.

En el momento en el que termine de compilar por primera vez el código de nuestro dispositivo, podemos descargarlo a través del botón Download Binary.

La primera vez que generamos un dispositivo, debemos grabar el binario a través de una aplicación externa o del puerto USB de nuestro servidor Home Assistant. En nuestro caso hemos recurrido a una herramienta externa para grabar en la placa, la aplicación es ESPHome Flasher y esta disponible en GITHUB para Windows y para MAC.

Abrimos la aplicación, seleccionamos con el botón Browse el binario que acabamos de descargar y lo grabamos en nuestra placa pulsando el botón FlashESP.

Una vez realizado este paso, la placa se reiniciará, se conectará automáticamente a nuestra API ESPHome y estará disponible para su uso desde Home Assistant.

Una vez activo el dispositivo, podemos terminar de configurarlo a través de las integraciones en la parte de configuración de Home Assistant donde aparecerá nuestro nuevo dispositivo y nos permitirá su integración en la pantalla principal.

Nos solicitará la contraseña que utilizamos en el código del dispositivo para la API y posteriormente nos preguntará sobre el área en el que queremos integrar el dispositivo.

Finalmente editaremos la pantalla principal y añadiremos las lecturas del nuevo dispositivo. De esta forma y sin apenas escribir código hemos conseguido integrar en nuestro Home Assistant un dispositivo creado con una placa ESP32 sin ninguna dificultad.

La ventaja, además de que el procedimiento, en el momento en el que uno se acostumbra a su uso resulta extremadamente sencillo es la versatilidad de esta solución que permite integrar numerosos sensores y activadores como relés, etc y la capacidad que tiene de ser escalado con cierta facilidad ya que una vez que se ha compilado y grabado por primera vez, cabe la posibilidad de realizar modificaciones y subirlas directamente vía OTA sin necesidad de conectar nuevamente el dispositivo por cable a nuestro equipo, siempre que se encuentre conectado a nuestra red WIFI.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *