En esta entrada te enseño a instalar ESPHome en Home Assistant para aprender a crear tus propios dispositivos.
Índice
¿Qué es ESPHome y para qué sirve?
Tal y como indican en su página web, ESPHome es un sistema para controlar microcontroladores (como las placas ESP8266 y ESP32) mediante archivos de configuración simples pero potentes y controlarlos de forma remota a través de sistemas de domótica.
Esto en la práctica nos permite crear fácilmente un ‘firmware’ personalizado, cargarlos en placas de muy bajo coste, añadirles un montón de sensores y componentes a nuestra elección para crear nuestros propios dispositivos y, como no, integrarlos en Home Assistant.
🥑 Si estás empezando con ESPHome, te recomiendo que veas el taller de la academia para sacarle el máximo partido!
Requisitos previos
Para instalar ESPHome en Home Assistant necesitas, al menos, lo siguiente:
- Disponer de una placa ESP32 o ESP8266.
- Un cable USB de datos para instalar el firmware en las placas (no sirve un cable de carga). Si no tienes ninguno a mano, puedes comprarlo muy barato en Aliexpress.
- Adicionalmente puedes añadirle a tu placa algunos sensores compatibles. Por ejemplo en mi caso voy a utilizar estos sensores de humedad Moisture para controlar la humedad de mis plantas (que cuestan una quinta parte de lo que valen los sensores comerciales).
- Por último, si quieres proteger tu dispositivo y tienes impresora 3D puedes diseñar una carcasa o descargar alguna como la nuestra. Si no es tu caso, también puedes comprar una de estas cajitas baratas para alojar tu placa y tus sensores. Sea como sea, verifica antes que las medidas son válidas para tu modelo de placa!
Instalar ESPHome en Home Assistant
Puesto que ESPHome tiene integración oficial con HA el proceso es tan sencillo como seguir estos pasos:
- Ve a Ajustes > Complementos > Tienda de complementos y busca «ESPHome».
- Pulsa sobre el complemento y haz clic en «Instalar».
- Espera unos segundos y activa la opción de “Vigilancia”, “Actualización automática” y “Mostrar en el panel lateral”.
- Pulsa en “Iniciar”, y ya está!
- Accede siempre a la pestaña de registro para verificar que no hay ningún mensaje de error y la instalación se ha realizado correctamente.
Comprobarás que tienes un nuevo apartado en el menú lateral desde el que puedes acceder a ESPHome y empezar a crear tus propios dispositivos.
Añadir dispositivos a ESPHome
Una vez que hemos terminado de instalar ESPHome en Home Assistant vamos a añadir nuestro primer dispositivo, siguiendo estos pasos:
- Lo primero que tenemos que hacer es instalar o ‘flashear’ el software de ESPHome en nuestra placa. La primera vez que lo hagamos tendremos que hacerlo conectándola por USB a nuestro ordenador, aunque a partir de ahí podremos hacerlo por WiFi. En mi caso voy a utilizar una placa ESP32 wroom-32d (si, las mismas que utilizo con ESPresense).
- Una vez conectada a tu ordenador, accede al apartado de ESPHome en HA y pulsa sobre el botón «+ New Device». Aparecerá un mensaje en pantalla que te indicará lo que acabamos de comentar. Pulsa en «Continue».
- Ahora tienes que darle un nombre al dispositivo (por ejemplo, «sensor-humedad-cactus»).
- En la parte inferior introduce el nombre de tu red WiFi y la contraseña, y pulsa en «Next».
- En la siguiente ventana tendrás que seleccionar en qué tipo de placa vas a instalar ESPHome (si no lo tienes claro, en la propia placa viene impreso el modelo). Al hacerlo verás que se crea tu dispositivo en la pantalla de fondo.
- También te dará un código de encriptación que debes copiar y conservar para integrar el dispositivo en Home Assistant. Una vez copiado el código, pulsa en «Install».
- A continuación te dará varias opciones para llevar a cabo la instalación:
- Wirelessly. Esta opción permite instalar el software a través del WiFi, y como hemos comentado no es válido para la primera vez que utilizas la placa.
- Plug into this computer. De esta forma instalaremos ESPHome conectando la placa al ordenador donde estamos visualizando HA a través del navegador. Este método requiere una conexión mediante HTTPS.
- Plug into the computer running ESPHome Dashboard. Esta opción serviría para hacerlo conectando la placa al dispositivo donde tenemos nuestra instancia de Home Assistant (por ejemplo, en mi caso, una Raspberry Pi).
- Manual download. Esta opción te proporcionará la imagen en un fichero para que la instales por otros medios y es la que voy a utilizar.
- Tras pulsar en «Manual download» se abrirá una consola que empezará a compilar el código. Cuando termine de hacerlo te ofrecerá descargarlo en dos formatos. Selecciona el formato «Modern format» para descargar un fichero ‘.bin’.
- Ahora accede a la página web de ESPHome para instalar desde el navegador el fichero que acabamos de descargar. Puesto que ya tienes conectada tu placa al ordenador, pulsa en «Connect». Se abrirá una ventana emergente donde tendrás que seleccionar tu placa y pulsar en «Continuar».
- Pulsa en «Install», selecciona el fichero que acabas de descargar y pulsa en «Install».
⚠️ Si se genera un error en la instalación, inténtalo de nuevo mientras pulsas un pequeño botón que hay en la placa que indica 'boot' hasta que comience la instalación. Si aun así el error permanece es probable que necesites instalar los 'drivers' para placas ESP.
- Cuando termine la instalación ya podrás interactuar con la placa a través del WiFi. Si lo consultas en el apartado ESPHome de Home Assistant verás que aparece como «Online». De hecho, puedes acceder directamente al registro pulsando en «Logs» o editar el fichero yaml de configuración pulsando en «Edit».
- Como siempre, te recomiendo que le asignes una IP fija en tu router para prevenir posibles problemas futuros en la configuración.
Configuración del dispositivo
El siguiente paso es configurar tu placa y, en su caso, los sensores que le quieras acoplar. La forma de hacerlo dependerá, lógicamente, del uso que le quieras dar a tu dispositivo.
En cualquier caso el procedimiento comienza por ir a la página de ESPHome y buscar el sensor que quieres utilizar. Accediendo a la documentación encontrarás información sobre sus características, instrucciones para el cableado y las líneas de código que tienes que incluir en el fichero de configuración. Si no lo encuentras en la documentación oficial te tocará buscar por internet el modelo exacto que has comprado.
Cableado de sensores
Como ya habrás podido observar, tu placa tiene unos palitos o ‘pines’ a través de los cuáles vas a poder conectar tus sensores. Para el cableado conviene que busques en Google alguna imagen del ‘pinout’ o relación de pines de tu placa, para saber a qué corresponde cada uno.
Por ejemplo, esta es una imagen del pinout de una placa esp32-wroom-32d, que es exactamente el modelo que estoy utilizando en esta ocasión.
Por otro lado, el sensor que voy a utilizar para controlar la humedad de las plantas es el modelo Capacitive Soil Moisture Sensor v1.2, que presenta el siguiente diseño. Si te fijas en la parte derecha de la imagen, los tres pines de conexión vienen identificados:
- GND. Este pin corresponde a ‘ground’ o tierra y debe ir conectado a pin de la placa que tenga la misma leyenda.
- VCC. Este pin proporciona la alimentación necesaria al sensor y debe ir conectado en la placa a un pin de 3.3 o 5v.
- AOUT. Este pin (‘analog outpout’) es el que va a proporcionar un voltaje variable en función de la humedad y por tanto nos va a dar el valor buscado. Debe ir conectado a cualquiera de las entradas analógicas de la placa (identificadas en el ‘pinout’ con una etiqueta morada ‘ADCX_CH’). Por ejemplo, yo voy a usar el pin 32 de la placa.
Una vez que ya sabemos donde tenemos que hacer cada conexión, es posible que la disposición de los pines no te permita hacerlo directamente con el cable que viene con el sensor. En este caso tienes que utilizar cables ‘dupont’ o ‘jumper’, que puedes conseguir muy baratos.
Configuración del código
Una vez cableados correctamente la placa y los sensores, y conectada esta a nuestro ordenador, tenemos que editar el fichero de configuración a través del complemento de ESPHome.
Como ya vimos anteriormente, para ello tienes que ir a Home Assistant y seleccionar ESPHome en el panel lateral. Ahora localiza tu dispositivo en el panel y pulsa sobre «Edit». Lo que verás es un editor de texto con un fichero yaml, algo a lo que seguro que ya estás acostumbrado.
Al final de este fichero tienes que copiar el código que va a crear los sensores correspondientes a tu dispositivo. Por ejemplo, en mi caso he utilizado las siguientes líneas para la configuración inicial:
sensor: - platform: adc pin: GPIO32 ## El número corresponde al pin donde has conectado tu sensor name: "Cactus (Humedad)" id: humedad_cactus attenuation: auto update_interval: 30s ## Periodo de actualización del sensor, en segundos icon: "mdi:water-percent" filters: - calibrate_linear: - 0.95 -> 100 - 2.50 -> 0
💡 Puesto que en este caso se trata de un dispositivo para medir la humedad de las plantas, vamos a calibrarlo con los valores deseados, y a convertirlo a un valor porcentual para facilitar su lectura. Esto es precisamente lo que he hecho bajo la línea 'calibrate_linear' asignando el valor correspondiente al 0% y 100% de humedad.
Una vez editado el código, pulsa en «Save» y en «Install» (esta vez ya puedes utilizar la opción «wirelessly»). De nuevo aparecerá la consola que empezará a compilar el código y finalmente lo cargará en la placa. Además, si te fijas antes de cerrar la consola, el ‘log’ o registro ya empieza a mostrar los valores deseados (en mi caso, la humedad).
Integración del dispositivo
Lógicamente, la gracia de instalar ESPHome en Home Assistant es poder integrar nuestros dispositivos con el resto de la domótica, y esto es muy fácil de hacer:
- Desde el menú lateral ve a ESPHome y localiza tu dispositivo en el panel.
- Pulsa sobre los tres puntos, selecciona la opción «Show API Key» y copia el código proporcionado.
- Ve a Ajustes > Dispositivos y servicios > Añadir integración > ESPHome, selecciona tu dispositivo e introduce la clave que acabas de copiar.
- Y ya está! bajo la integración de ESPHome se habrá añadido un nuevo dispositivo, mostrando como entidades los valores correspondientes.
Alimentación de la placa
Ya sólo queda colocar tu dispositivo en el lugar más apropiado. Para ello ten en cuenta que para que funcione tienes que alimentarlo con corriente. En este sentido tienes distintas opciones, pero la más sencilla es utilizar el puerto micro USB.
De la misma forma que lo has hecho para programarla, puedes alimentarla a través de USB conectándola a tu PC, a uno de los puertos del router, al puerto USB de tu Smart TV o, simplemente, a un adaptador de corriente. También puedes utilizar un ‘powerbank’ para poder utilizar un dispositivo «portátil» que no dependa de una toma de corriente cercana.
Podcast sobre proyectos ESP
Si acabas de descubrir las placas ESP y quieres saber cuáles son los usos más interesantes que puedes darles, te recomiendo que escuches este capítulo del podcast de aguacatec.
Puedes escuchar este capítulo sobre los asistentes de voz desde este reproductor o suscribirte en tu plataforma de podcast favorita.
¿Dudas?¿necesitas ayuda? entra aquí
Y si te ha gustado, compártelo! 🙂