Display interactivo con ESPHOME


En un post anterior vimos como conectar con EspHome un modulo analizador de consumo eléctrico ultra famoso (el PZEM004 del que hemos hablado ya en numerosas ocasiones) y un sensor de temperatura y humedad ( el DHT11) conectado a un nodeMCU ESP32, para desde nuestro pc, tableta o telefono ,poder hacer un seguimiento del consumo eléctrico así como la temperatura y humedad.

Bueno quizás un ordenador o un móvil no sean el mejor sitio para ver el consumo eléctrico, temperatura o humedad, así que vamos a ver en este artículo cómo construir su propio medidor de temperatura y energía eléctrica de matriz LED basado en ESPHome (requiere un sistema Home Assistant ya existente y configurado , con el complemento ESPHome instalado como vimos en este post).

En esta nueva configuración que vamos a ver se mostrará la temperatura exterior y la potencia actual producida por una instalación de células solares, pero en realidad se puede personalizar para que muestre cualquier dato que exista en su sistema Home Assistant.

Este montaje incluso incluye el soporte de un botón que se puede utilizar para cambiar entre las diferentes fuentes de datos, o también puede hacer que cambie entre las fuentes de datos de forma automática mediante el ajuste del código.

La carcasa está impresa en 3D y se puede utilizar los archivos STL listos para imprimir o adaptar el archivo fuente (creado con Fusión 360) a sus propias necesidades. Obviamente si no se cuenta con una impresora 3D también se puede equipar en una caja ABS tradicional pues en realidad solo requiere la apertura de un rectángulo para el display de leds.

Componentes

Necesitará los siguientes elementos:

  • Lolin/Wemos D1 Mini Pro (también sirve un ESP8266 o mejor un ESP32 microcontrolador que funcionan con ESPHome)
  • MAX7219 LED módulo de matriz de puntos 8×32 puntos
  • Pulsador montado en PCB con tapa
  • Pequeño trozo de veroboard/stripboard con paso estándar de 0,1″, para montar el pulsador
  • Fuente de alimentación de 5V, cualquier cargador USB servirá.

Puede visitar https://web.esphome.io para configurar el D1 Mini Pro (o el microcontrolador que quiera utilizar). Dale un nombre que describa la función, en este caso se llama «solar-wattmeter».

Una vez que esté configurado y conectado a su red, también debe añadirlo a su sistema Home Assistant, esto permitirá que el dispositivo lea cualquier dato en tu sistema HA. Para añadirlo, siga las instrucciones que encontrará aquí: https://www.home-assistant.io/integrations/esphome/

Conexiones

Corte un trozo de verobord/stripboard con un tamaño e 10×5 agujeros (ver imagen), la longitud debe ser de unos 28,5 a 29 mm. Las líneas de conexión de la placa deben ir a lo largo del lado más largo de la placa (horizontal si la placa está orientada como en la imagen). Suelde el pulsador en el centro. A continuación suelde dos cables de unos 150 mm de longitud para que conecten con los dos conectores del pulsador de un lado.

A continuación, conecte la pantalla MAX7219 al D1 Mini Pro o a su microcontrolador favorito de la siguiente manera:

  • VCC a 5V
  • GND a GND
  • DIN a GPIO13 (D7)
  • CS a GPIO12 (D6)
  • CLK a GPIO14 (D5)

Asimismo conecte el botón usando el pin GPIO5 (D1) y GND.

Conecte la entrada de alimentación a los pines VCC y GND de la pantalla MAX7219 (también se puede conectar directamente al D1 Mini Pro, pero como la pantalla consumirá la mayor parte de la energía tiene más sentido conectarla allí y dejar que el D1 Mini Pro se alimente a través de la conexión entre la pantalla y el D1 Mini Pro).

Por favor, compruebe la imagen en el paso de montaje a continuación para ver aprox. la longitud de los cables que necesita entre la pantalla y el D1 Mini (Pro), y entre el interruptor y el D1 Mini (Pro). Alrededor de 10-15 cm debería estar bien.

Software

Como primer paso, necesita la fuente «Pixelmix» cargada en HomeAssistant, en la carpeta /homeassistant/esphome/fonts. Si la carpeta «fonts» no existe, créela (el complemento «File Editor» es una herramienta útil para ello). La fuente es gratuita para uso personal, y puede descargarse aquí: https://www.dafont.com/pixelmix.font

El siguiente paso es editar el archivo YAML para el dispositivo, utilizando el código de mas abajo. Todo lo que hay por encima del comentario «Todo lo que hay por encima…» no debe cambiarse, ya que esta parte se creó como parte de la instalación del dispositivo y su adición a HomeAssistant.

Otras partes deberá adaptarlas a sus necesidades, aquí tiene algunas pistas:

  • Sensor:Esta parte se debe adaptar, para obtener los datos que necesita, utilizando los nombres de los sensores de su sistema de HomeAssistant.
  • Mostrar lambda: Este es el código real que mostrará los datos. Realize los cambios que necesite, como mínimo cambie los nombres de los sensores para que coincidan con lo que ha definido en la parte «sensor:».Si deja todo lo demás sin cambiar, la pantalla comenzará mostrando la potencia del inversor (solar). Al pulsar el botón cambiará a mostrar la temperatura exterior, pulse de nuevo para volver a mostrar la potencia.
  • Intervalo: Descomente esta parte si desea que la pantalla cambie automáticamente entre los valores a mostrar. Si lo mantiene comentado, puede cambiar entre valores con el botón.

Este es el código a añadir al ESPHOME:

esphome:
  name: "solar-wattmeter"
  friendly_name: solar-wattmeter

esp8266:
  board: d1_mini_pro

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "********************************************"

ota:
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails

  ap:
    ssid: "Esphome-Web-Dae120"
    password: "************"


captive_portal:

# Everything above this line should be left un-changed, it was created during the install

# Everything below is the actual implementation 

spi:
  clk_pin: D5
  mosi_pin: D7

font:

  - file: 'fonts/pixelmix.ttf'
    id: digit_font
    size: 8

  - file: 'fonts/pixelmix.ttf'
    id: digit_font_sml
    size: 6

sensor:

  - platform: homeassistant
    entity_id: sensor.inverter_active_power
    id: active_power

  - platform: homeassistant
    entity_id: sensor.netatmo_hagby_hallen_utomhus_temperature
    id: outdoor_temp


binary_sensor:
  - platform: gpio

    pin:
      number: GPIO5
      mode: INPUT_PULLUP
      inverted: True

    name: "mode switch"

    filters:
      - delayed_on: 10ms

    on_click:
      min_length: 50ms
      max_length: 350ms
      then:

        - lambda: |-
            id(page) = (id(page) + 1);
            if (id(page) > 2) {
              id(page) = 1;
            }

display:

  - platform: max7219digit
    id: dmx
    cs_pin: D6
    num_chips: 4
    flip_x: False
    intensity: 1
    scroll_enable: False
    lambda: |-
      switch (id(page)){
        case 1:
           if(id(active_power).has_state()) { 
               it.printf(24,0,id(digit_font),TextAlign::TOP_RIGHT,"%.0f",id(active_power).state);
           } else {
             it.print(24, 0, id(digit_font), TextAlign::TOP_RIGHT, "----");
           }
           it.print(27, 0, id(digit_font), "W");
           break;
        case 2:
           if(id(outdoor_temp).has_state()) { 
             it.printf(24,0,id(digit_font),TextAlign::TOP_RIGHT,"%.1f",id(outdoor_temp).state);
           } else {
             it.print(24, 0, id(digit_font), TextAlign::TOP_RIGHT, "-.-");
           }  
           it.print(30, -1, id(digit_font_sml), TextAlign::TOP_RIGHT, "o");
           break;
      }

globals:

- id: page
  type: int
  initial_value: "1"

#interval:
#- interval: 2s
#  then:
#    - lambda: |-
#        id(page) = (id(page) + 1);
#        if (id(page) > 2) {
#          id(page) = 1;
#        }

Una vez actualizado el archivo YAML, guárdelo. Asegúrese de que su dispositivo está encendido y aparece en línea en HomeAssistant, a continuación, instale la nueva configuración. Una vez instalada, la pantalla debería cobrar vida y mostrar sus datos. Tenga en cuenta que mostrará «—-» durante los primeros segundos, hasta que se haya establecido una conexión entre HomeAssistant y el dispositivo.

Si el dispositivo no funciona, compruebe el registro del complemento ESPHome en HomeAssistant, normalmente hay algunas pistas allí. También es posible que desee volver a comprobar el cableado.

Versión alternativa del código


Una opción a la configuración mencionada es cambiar el código para que sólo muestre la potencia actual cuando las células solares están produciendo electricidad, y de lo contrario sólo mostrar la temperatura exterior. El botón seguirá funcionando, si desea mostrar la temperatura cuando la energía está mostrando. Aquí está la parte cambiada del código para esta versión:

lambda: |-

      switch (id(page)){
        case 1:
           if(id(active_power).has_state()) { 
             if(id(active_power).state > 0) {
               it.printf(24,0,id(digit_font),TextAlign::TOP_RIGHT,"%.0f",id(active_power).state);
               it.print(27, 0, id(digit_font), "W");
             }
             else {
               it.printf(24,0,id(digit_font),TextAlign::TOP_RIGHT,"%.1f",id(outdoor_temp).state);
               it.print(30, -1, id(digit_font_sml), TextAlign::TOP_RIGHT, "o");
             } 
           } else {
             it.print(24, 0, id(digit_font), TextAlign::TOP_RIGHT, "----");
             it.print(27, 0, id(digit_font), "W");
           }
           break;
        case 2:
           if(id(outdoor_temp).has_state()) { 
             it.printf(24,0,id(digit_font),TextAlign::TOP_RIGHT,"%.1f",id(outdoor_temp).state);
           } else {
             it.print(24, 0, id(digit_font), TextAlign::TOP_RIGHT, "-.-");
           }  

           it.print(30, -1, id(digit_font_sml), TextAlign::TOP_RIGHT, "o");
           break;
      }

Carcasa en 3D

Los archivos STL y el archivo fuente de la carcasa pueden descargarse aquí: https://www.thingiverse.com/thing:6443928

No es necesario imprimir el «Stand L» y el «Stand R», a menos que desee que la carcasa pueda apoyarse sobre una superficie plana.

Hay dos versiones del fondo de la carcasa, una para la variante más grande del D1 Mini Pro (la que tiene un conector de batería) y otra para la variante más habitual del D1 Mini.

Nota: Cuando corte el fondo de la carcasa, asegúrese de que la primera capa es inferior a 0,2 mm. Lo recomendable es que la primera capa sea de 0,15 mm y el resto de capas de 0,20 mm. Si la primera capa es demasiado gruesa, no se imprimirá el «difusor» para la pantalla. El difusor es sólo una capa de espesor y debe cubrir la pantalla por completo, lo que hace que la pantalla más agradable a la vista.

Montaje

En primer lugar, retire los dos módulos LED exteriores y, a continuación, fije la placa de la pantalla al fondo de la carcasa con tornillos de 3 mm (5 mm de longitud). Vuelva a colocar los módulos e intente alinearlos en altura. Pruebe a colocar la parte superior de la carcasa y asegúrese de que los módulos de visualización están alineados con la parte superior de la carcasa (capa difusora). Si no es así, ajuste la altura de los módulos de visualización levantándolos ligeramente en sus conectores.

Fija el D1 Mini (Pro) a la parte inferior de la carcasa, con tornillos de 2 mm (también de 5 mm de largo) o simplemente deslízalo en su lugar (dependiendo de la versión de la carcasa que hayas impreso). Si su versión de microcontrolador no encaja, probablemente pueda fijarlo sólo en uno o dos de los agujeros de los tornillos.

Inserte con cuidado el conjunto de botones en la parte superior de la carcasa y atornille el fondo y la parte superior con tornillos de 3 mm, de unos 15 mm de largo.

Si es necesario, fije los soportes al fondo de la carcasa. Si se utilizan soportes, el cable de alimentación debe pasarse por uno de los orificios para tornillos de la parte posterior, en lugar de por el orificio de la parte inferior. Si quiere montarlo en la pared, cuélguelo de dos tornillos o utilice cinta adhesiva de doble cara.

Mas información en : https://www.instructables.com/Home-AssistantESPHome-LED-Matrix-Temperature-and-P

¿Que es esphome?


Si está empezando a construir sus propios dispositivos IoT, verá muchas menciones al IDE Arduino y a escribir código. Si está intentando crear un dispositivo domótico sencillo y no eres un gran fan de la programación, te desanimarás rápidamente. Escribir código es complicado, ¡incluso si se es un programador experimentado! ¿Y si hubiera una forma de especificar qué tipo de sensor tiene conectado a su ESP8266/ESP32 y que éste supiera cómo leer los datos por usted? ¿Y si pudiera disponer de estos sensores en Home Assistant sin escribir una sola línea de código? Suena increíble, ¿verdad?

ESPHOME

ESPHOME es un framework de codigo abierto para controlar los módulos ESP8266/ESP32 de una manera muy sencilla pero potente y crear dispositivos inteligentes1. Estos módulos, amigo lector como sabrá son microcontroladores económicos y potentes que se utilizan en una amplia gama de dispositivos, desde bombillas inteligentes hasta sensores de temperatura.

ESPHome proporciona una interfaz de usuario fácil de usar para configurar los dispositivos ESP. Puede usar ESPHome para controlar los pines del dispositivo, conectar sensores y actuadores, e incluso acceder a servicios en la nube.

Asimismo también permite modificar el sistema de otros dispositivos que utilicen estos módulos, como la gama Sonoff, para hacerlos más potentes y versátiles1.

Algunos ejemplos de lo que puede hacer con ESPHome incluyen:

  • Crear una bombilla inteligente que se pueda controlar con su voz o con un toque en su teléfono.
  • Crear un sensor de temperatura que envíe datos a su sistema de automatización del hogar.
  • Crear un interruptor de luz que se pueda controlar con un botón físico o con un comando de voz.

ESPHome es un firmware alternativo para los procesadores ESP8266 y ESP32 que nos permite el uso de multitud de sensores y actuadores con una interfaz web que nos ofrece la edición e incluso el flasheado del dispositivo2. Vemos pues que ESPHome es una herramienta poderosa que puede ayudarlo a crear sus propios dispositivos inteligentes personalizados. Si está interesado en la domótica o el Internet de las cosas, ESPHome es una excelente manera de comenzar asi que sigamos.

INSTALACION ESPHOME

Una vez que haya configurado su dispositivo ESP con ESPHome, puede controlarlo con una variedad de sistemas de automatización del hogar, incluido Home Assistant, Homey y Domoticz.

Para instalar ESPHome, hay dos opciones: la instalación manual y la instalación a través de Home Assistant. La instalación manual es un proceso más detallado que requiere la instalación de Python y la instalación de ESPHome a través de pip3, para ello puede seguir los siguientes pasos para instalar ESPHome:

  1. Actualice su Raspberry Pi a la última versión de Raspbian.
  2. Instale las herramientas de desarrollo de Python.
  3. Instale el paquete ESPHome.

Para actualizar su Raspberry Pi, abra una terminal y ejecute los siguientes comandos:

sudo apt update
sudo apt upgrade

Para instalar las herramientas de desarrollo de Python, ejecute el siguiente comando:

sudo apt install python3-dev

Para instalar el paquete ESPHome, ejecute el siguiente comando:

pip3 install esphome

Una vez que haya instalado ESPHome, puede comenzar a crear sus propios dispositivos inteligentes.

Instalación de ESPHome con Docker

Si prefiere instalar ESPHome con Docker, siga estos pasos:

  1. Instale Docker en su Raspberry Pi.
  2. Cree un directorio para ESPHome.
  3. Cree un archivo de configuración de Docker para ESPHome.

Para instalar Docker en su Raspberry Pi, siga las instrucciones de la documentación de Docker.

Para crear un directorio para ESPHome, ejecute el siguiente comando:

mkdir /docker/esphome

Para crear un archivo de configuración de Docker para ESPHome, abra un editor de texto y pegue el siguiente código:

version: '3.8'
services:
  esphome:
    container_name: esphome
    image: esphome/esphome
    volumes:
      - /docker/esphome:/config
      - /etc/localtime:/etc/localtime:ro
    restart: always
    privileged: true
    network_mode: host

Guarde el archivo como docker-compose.yml en el directorio /docker/esphome.

Para iniciar ESPHome, ejecute el siguiente comando:

docker-compose up -d

Una vez que ESPHome esté iniciado, puede acceder a la interfaz web de ESPHome en http://localhost:8080.

Alternativamente, puede instalar ESPHome a través de Home Assistant, para ello siga estos pasos:

  1. Abra la interfaz de usuario de Home Assistant y navega hasta el panel Supervisor.
  2. Busque ESPHome en la pestaña “Add-on Store”.
  3. Haga clic en el botón “Install” para instalar ESPHome.
  4. Espere a que se complete la instalación.

Primeros pasos

Si ha escrito código personalizado para sensores en el pasado, estará encantado con la facilidad de uso de ESPHome pues puede registrar sensores y dispositivos con simples archivos de configuración YAML en lugar de escribir código. En este post, vamos a configurar un dispositivo ESP8266 con ESPHome y crear un dispositivo IOT interactivo utilizando un sencillo archivo de configuración ESPHome.

Estos son los pasos que vamos a repasar en esta guía:

  • Instalar el complemento ESPHome en Home Assistant.
  • Conectar un sensor a su dispositivo ESP8266/ESP32
  • Crear un archivo de configuración ESPHome básico.
  • Flashear su dispositivo ESP con su configuración ESPHome.
  • Añadir el dispositivo ESPHome a Home Assistant.
  • Añadir el sensor del dispositivo ESPHome a su panel de control de Home Assistant.

PASO 1-Instale el complemento ESPHome en Home Assistant

Como puede ver, supondremos que tiene una configuración de Home Assistant en funcionamiento y que ya tienes un dispositivo ESP8266 o ESP32. Los dos sensores que vamos a utilizar en esta guía son un sensor de temperatura/humedad DHT11 ( del que hemos tratado en numerosas ocasiones en este blog) y un simple relé (el sensor de temperatura/humedad demostrará cómo se pueden leer fácilmente los valores de su sensor con ESPHome y el relé nos enseñará cómo se puede hacer su propio dispositivo domótico interactivo a través de Home Assistant).

Utilizaremos el panel ESPHome que puede instalar en el Asistente Doméstico por unas sencillas razones:

  • Home Assistant es propietario del proyecto ESPHome, por lo que la integración es muy estable.
  • Si ya tiene Home Assistant funcionando en una Raspberry Pi o algún otro dispositivo, vamos a mantenerlo simple.
  • Su Home Assistant será/seguirá siendo el punto centralizado de todos sus proyectos de domótica.

Por el bien de esta guía, vamos a suponer que vamos a seguir con la guía e instalar ESPHome en Home Assistant. Para instalar el Aadd-on en Home Assistant, tenemos que navegar a la tienda de complementos:Home assistant dashboard → Supervisor → Add-on store

Ahora busque ESPHome en la tienda de complementos:

Haga clic en el complemento y en la página siguiente podrá instalarlo en su Asistente de inicio.

ESPHome es propiedad de Home Assistant, por lo que puede estar seguro de que la instalación está bien probada y es fiable. Las actualizaciones no romperán su instalación. Puede activar las opciones «Iniciar al arrancar«, «Vigilancia«, «Actualización automática» y «Mostrar en la barra lateral». Estas opciones harán que sea mucho más fácil añadir rápidamente nuevos dispositivos y gestionar los existentes. La facilidad de uso es la clave.

Si todo va como esperamos ,acabara de instalar el panel ESPHome en su instancia del Asistente Doméstico. Ahora estamos listos para ir al siguiente paso: Dar a su ESP8266/ESP32 algo que hacer, para lo cual vamos a conectarle un sensor que podremos añadir a Home Assistant más adelante.

Paso 2-Conecte un sensor a su dispositivo ESP8266/ESP32

Vamos a conectar nuestros primeros sensores a nuestro dispositivo ESP: Un sensor DHT11 (sensor de temperatura y humedad) y un relé que podemos utilizar para encender dispositivos más grandes como lámparas. Para guiarle a través de este proceso, usamos un ESP8266 para configurar los sensores. Si está utilizando un ESP32, su disposición de pines puede ser un poco diferente, así que asegúrese de prestar atención a estos.

El ESP8266 tiene los nombres de los pines en un lado de la placa, mientras que los pines reales están en el otro lado de los pines. Esto hace que sea un poco difícil de poner los sensores en el pin GPIO derecho a veces, así que le aconsejo que siempre vuelva a comprobar si usted tiene sus sensores conectados a los pines GPIO derecho.

El sensor DHT11 tiene 3 pines, así que vamos a necesitar 3 pines en el ESP8266:

  • Una conexión a tierra: marcada como GND tanto en el ESP8266 como en el sensor DHT11
  • Una fuente de alimentación: marcada como 3v3 en el ESP8266, y como VCC en el sensor DHT11
  • Una conexión de datos: utilizaremos el pin GPIO D5 ya que está justo al lado de un pin 3v3 y GND en el ESP8266

Vamos a conectar el ESP8266 y el DHT11 juntos con ters cablecillos hembra/hembra, por lo que se ve un poco como esto:

Ahora haremos lo mismo con un relé. El relé, al igual que el sensor DHT11, tiene 3 pines:

  • Una conexión a tierra: Marcada como GND o DC- dependiendo de su relé.
  • Una fuente de alimentación: marcada como VCC o DC+ dependiendo de su relé
  • Una conexión de datos: Marcada como IN en su relé

Conectemos el Relé a un pin 3v3, GND, y GPIO D8.

Su ESP8266 (o ESP32) ahora debe tener 2 elementos conectados:

  • Un sensor DHT11 con una conexión de datos en D5.
  • Un relé con una conexión de datos en D8.

Ambos elementos también deben estar conectados a un 3v3 y un GND. Ahora estamos listos para crear una configuración básica ESPHome para nuestros dispositivos ESP, el sensor DHT11 conectado, y el relé. ¡Vamos a ello!

Crear un archivo de configuración ESPHome básico

Después de haber instalado el tablero ESPHome en el Asistente de Hogar, ha añadido el complemento a la barra lateral. Navegue hasta el panel ESPHome.

Se le presentará una página básica con un gran botón verde en la esquina inferior derecha «+ NUEVO DISPOSITIVO«. Cuando haga clic en este botón y no esté ejecutando Home Assistant en HTTPS, Home Assistant le dirá que tendrá que conectar el ESP8266 al ordenador que está ejecutando el panel ESPHome. Esto suena un poco confuso, pero significa que tendrá que conectar su ESP8266 a su Raspberry Pi (u otra máquina) que esté ejecutando Home Assistant en su casa. Puede conectar los dos usando un cable micro-USB.

Una vez que haga clic en «Continuar», se le pedirá que introduzca un nombre para su configuración. Puede elegir un nombre reconocible para su nuevo dispositivo inteligente. En este ejemplo lo llamaremos temperature-light (temperatura-luz).

Cuando pulse continuar, ESPHome le preguntará para qué tipo de dispositivo quieres crear la configuración. Si conoce la placa específica que está utilizando, puede seleccionarla en la opción «Elegir placa específica». En nuestro caso, como tenemos una placa NodeMCU ESP8266, eso es lo que seleccionamos. Ahora, todo lo que tiene que hacer es pulsar «siguiente» y ¡su primera configuración ESPHome se creará para usted!

Si quisiera, podría instalar esta configuración en el dispositivo ESP que ha conectado a su Raspberry Pi u otra máquina. Sin embargo, su dispositivo inteligente no hará nada si instala esta configuración actual. Así que vamos a pulsar «Saltar» por ahora y establecer nuestra configuración Wi-Fi.

Ahora que estamos en la página de ESPHome con nuestra configuración «temperatura-luz», vamos a ver una de las características importantes de ESPHome.

Cuando cree su primer dispositivo domótico con ESPHome, lo más probable es que quiera conectar su dispositivo a su red Wi-Fi local. Para ello,si desea conectarse a su red Wi-Fi, necesitará 2 cosas: El nombre de la red Wi-Fi y la contraseña. Podría añadir la contraseña de su red local en la configuración, pero eso no es una buena idea por 2 razones:

  • Se supone que tu contraseña es secreta.
  • Va a reutilizar esta contraseña para muchas configuraciones y ¿qué pasa si cambias su contraseña Wi-Fi? Tendrás que cambiar cada archivo de configuración a mano.

¡Así que pongamos esta contraseña Wi-Fi en los secretos!, En la esquina superior derecha de la página ESPHome, verá un sección de «Secretos». Cuando lo pulse, aparecerá una ventana emergente con el título «secrets.yaml«.

Vamos a añadir nuestro punto de acceso Wi-Fi y la contraseña Wi-Fi en este archivo:

## Your Wi-Fi SSID and password wifi
ssid: "MyWiFiAccessPointName"
wifi_password: "MyWiFiPassword"

Después de introducir sus datos, puede pulsar «Guardar» en la parte inferior de la ventana emergente.

Escribir la configuración

Ya hemos configurado nuestros secretos Wi-Fi, así que ahora podemos editar la configuración de nuestro flamante dispositivo domótico. Vamos a editar la configuración de nuestro dispositivo haciendo clic en «editar«:

Ahora será recibido con el único «código» que está involucrado en todo este proceso. Este es el archivo de configuración para su dispositivo ESPHome.

Es posible que ya vea los secretos Wi-Fi que se aplican en la configuración, pero si no, puede establecer estos ahora:

wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password

Anteriormente, hemos conectado dos «sensores» a nuestro dispositivo ESP:

  • Un sensor DHT11 en el pin GPIO D5
  • Un relé en GPIO pin D8

Para que estos dispositivos sean manejables a través de ESPHome, tendremos que configurar los sensores en este archivo de configuración. Esto suena complicado, pero casi todo el trabajo ya se ha hecho antes por los colaboradores del proyecto ESPHome. Todo lo que tenemos que hacer es encontrar la configuración correcta en esphome.io. Abrir esphome.org en una nueva pestaña y seguir adelante. 

En el sitio web, usted encontrará una gran cantidad de configuración, que es abrumador al principio pero se aprendea navegar por ella con bastante rapidez.

Vamos a utilizar la barra de búsqueda en la esquina superior izquierda para buscar «DHT»:

Nos aparecerán los resultados de la búsqueda del sensor adecuado:

Cuando se desplace por esta página, verá un ejemplo de la configuración utilizada:

Vamos a copiar/pegar esta configuración en nuestro dispositivo ESPHome. Cambiemos el pin a «D5», renombremos el nombre de la temperatura a «Light temperature«, y renombremos el nombre de la humedad a «Light Humidity». Vamos a mantener el update_interval en 60s, por lo que nuestro dispositivo comprobará cada 60 segundos los cambios en la temperatura o la humedad. Si quiere comprobarlo con menos frecuencia, por ejemplo cada 10 minutos, puede cambiarlo a 600s. Esta es la configuración que tenemos en ESPHome para el sensor ahora:

sensor:
- platform: dht
pin: D5
temperature:
name: "Light temperature"
humidity:
name: "Light Humidity"
update_interval: 60s

Ya hemos configurado nuestro primer sensor domótico. Sigamos los mismos pasos para el relé y veamos la configuración final de nuestro dispositivo:

esphome:
name: temperature-light
esp8266:
board: nodemcuv2
Enable logging
logger:
Enable Home Assistant API
api:
ota:
password: "auto-generated-password-goes-here"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Temperature-Light"
password: "auto-generated-ap-password-goes-here"
captive_portal:
switch:
platform: gpio
pin:
number: D8
inverted: true
name: "Relay"
icon: "mdi:lightbulb-on-outline"
sensor:
platform: dht
pin: D5
temperature:
name: "Light temperature"
humidity:
name: "Light Humidity"
update_interval: 60s

Flashea tu dispositivo ESP con tu configuración ESPHome

¡Vamos a flashear el dispositivo ESP con la configuración que hemos creado! La primera vez que hacemos esto, tenemos que conectarlo al ordenador en el que ha instalado ESPHome. En este ejemplo como el servidor sería la Raspberry Pi que está ejecutando Home Assistant, necesitaremos usar un cable micro-USB para esto.

Ahora que el dispositivo está conectado al ordenador que ejecuta ESPHome, podemos flashear el dispositivo a través de la interfaz ESPHome. En la página de ESPHome, vemos tres puntos uno encima del otro en nuestra configuración. Pulse estos puntos y seleccione «Instalar«.

Aparecerá una nueva ventana emergente que te preguntará cómo quiere instalar su nuevo dispositivo.

Seleccione «Conectar al ordenador que ejecuta ESPHome Dashboard«. Ahora podrá seleccionar su dispositivo de la lista de dispositivos USB conectados:

Cuando seleccione el dispositivo USB correcto, ESPHome comenzará a instalar su nuevo dispositivo domótico: Esto llevará un rato la primera vez, así que haga otra cosa durante un rato. La próxima vez que realice este proceso, será mucho más rápido, pero ESPHome se está instalando ahora en su dispositivo ESP, por lo que es bastante lento.

Después de un rato, aparece el mensaje: «setup() finalizó con éxito». El dispositivo se ha instalado y puede pulsar «Detener» en la parte inferior de la ventana emergente.

Ahora notarás que el estado del dispositivo ha cambiado de «offline» a «online«.

La parte de hardware de este proceso ya está completa. Lo único que le queda por hacer es integrar su nuevo dispositivo domótico en el Asistente Domótico.

Añadir el dispositivo ESPHome al Asistente Doméstico

¡La parte más difícil de este proceso ya se ha completado! ¡Ha configurado e instalado su primer dispositivo domótico con ESPHome!

Vamos a añadirlo al Asistente Domótico, para que podamos utilizar la interfaz agradable para interactuar con nuestro nuevo dispositivo. Naveguemos hasta:Home assistant dashboard → Configuration → Integrations

En la página de integraciones, ya verá que se descubre nuestro nuevo dispositivo ESPHome:

Configuremos este dispositivo auto descubierto pulsando en «Configurar». La ventana emergente le preguntará si quiere añadir el nuevo dispositivo al Asistente Doméstico. Todo lo que tiene que hacer es pulsar «Enviar«. El Asistente Domiciliario se conectará ahora a su dispositivo domótico y registrará los sensores.

Una vez que se haya conectado a su dispositivo y configurado los sensores, se le preguntará en qué área se encuentra este dispositivo. Puedes seleccionar la zona adecuada y pulsar «Finalizar«.

Su dispositivo domótico se ha añadido al Asistente Domótico, lo que significa que puede crear interruptores virtuales en el panel del Asistente Domótico, veamos ahora cómo hacerlo.

Navegue hasta la página «Visión general» y vaya a «Editar panel de control«. Ahora puede añadir una nueva tarjeta a su panel de control:

Puede elegir cuál le gustaría añadir, pero le sugerimos «Entidades«, para que pueda añadir todos los sensores del nuevo dispositivo domótico al salpicadero en 1 tarjeta.

Seleccione las entidades adecuadas para la tarjeta como se indica a continuación.

Si ha utilizado la misma configuración que hemos visto hasta ahora, los nombres de sus entidades serán:

  • sensor.light_temperature
  • sensor.light_humidity
  • switch.relay

Dele a su tarjeta un nombre reconocible y pulsa «Guardar«.

Ahora habrá añadido una representación de su nuevo dispositivo domótico en el Asistente Domótico. Verá que el relé ha reconocido automáticamente que puede encenderse y apagarse, por lo que ha creado un bonito interruptor que puede probar si funciona como esperaba encendiendo y apagando el interruptor.

¡Enhorabuena! Ya has añadido tu primer dispositivo domótico al Asistente Domótico utilizando ESPHome. Puedes utilizar los datos de los sensores para crear automatizaciones, o simplemente dejarlos como están ahora en tu panel de control.

Fuente https://www.espforbeginners.com/guides/how-to-install-basic-esphome-home-assistant/