Skip to main content

Construyendo un centro de control de hogar inteligente alrededor de Home Assistant

En este artículo, detallaremos cómo configurar Home Assistant en el nuevo producto LinkStar H68K de Seeed Studio y desplegar el entorno ESPHome. ESPHome es un servicio muy común en Home Assistant. Debido a las limitaciones del sistema de enrutamiento por software, usaremos ESPHome como ejemplo para guiarte a través de un método inteligente para instalar este servicio.

Comenzando

Si quieres seguir este tutorial completamente, necesitarás preparar lo siguiente.

LinkStar H68K con Wi-Fi 6reRouter CM4 1432 (Opcional)XIAO ESP32C3
Obtener Uno AhoraObtener Uno AhoraObtener Uno Ahora

*El reRouter CM4 1432 también es compatible con este tutorial. Puedes comprar LinkStar o reRouter.

El objetivo de este proyecto es instalar Home Assistant y ESPHome usando el servicio Docker de LinkStar, y luego configurar un punto de acceso LinkStar para conectarse a LinkStar usando las capacidades WiFi del XIAO ESP32C3 para completar la red.

Luego, combinado con el vasto ecosistema Grove, puedes crear aún más posibilidades en Home Assistant.

El contenido de este tutorial pasará ampliamente por los siguientes pasos.

  1. Configurar el entorno Docker en LinkStar OpenWRT
  2. Instalación y configuración de Home Assistant, ESPHome
  3. Agregar Seeed Studio XIAO ESP32C3 a ESPHome
  4. Módulos Grove con ESPHome y Home Assistant

Configurar el entorno Docker en LinkStar OpenWRT

Paso 1. Instalar OpenWRT para LinkStar

Hemos detallado cómo instalar varios sistemas para LinkStar en el Wiki de LinkStar. En este tutorial, tomaremos el sistema OpenWRT como ejemplo y explicaremos cómo instalar el Contenedor de Home Assistant mientras aseguramos que LinkStar actúe como una ruta suave.

Por favor selecciona arriba la ubicación del sistema donde te gustaría instalar OpenWRT para LinkStar.

Paso 2. Configurar la red LinkStar

Por favor conecta a LinkStar a través de un cable de red e ingresa la dirección IP: 192.168.100.1 en tu navegador para acceder al backend operativo de OpenWRT.

La contraseña de cuenta inicial es:

Account: root
Password: password

A continuación necesitamos conectar LinkStar a internet.

Necesitas comprar un LinkStar con redes inalámbricas, por lo que puedes elegir conectar un cable de red al LinkStar o a WiFi.

  • Si es una red cableada, por favor configura tu red según las instrucciones de tu operador de red.
  • Si quieres usar una LAN inalámbrica, puedes buscar una red en las opciones de Wireless.

Después de eso, simplemente ingresa tu contraseña de red, haz clic en Save and Apply.

Asegúrate de tener un buen estado de red antes de continuar con los siguientes pasos.

Paso 3. Asignar más espacio a Docker

Por defecto, docker tiene solo unos 250MB de tamaño, lo cual no es suficiente para instalar la imagen, así que primero necesitamos expandir la capacidad para Docker.

Haz clic en System --> Disk Man --> EDIT.

En la última línea, escribe el tamaño del espacio de almacenamiento a agregar en la columna END SECTOR. En mi caso, es +20G. Luego haz clic en el botón NEW.

Elige el formato ext4, luego haz clic en el botón FORMAT.

Cuando esté listo, verás que se agregó un nuevo espacio de 20GB. Sin embargo, ahora es un espacio libre, necesitas montarlo en Docker.

Luego elige System --> Mount Points, encuentra la sección Mount Point, haz clic en el botón ADD.

Elige el nuevo espacio que acabas de crear.

Elige el Mount Point Use as Docker data (/opt). No olvides marcar la casilla Enable this mount, luego haz clic en el botón SAVE & APPLY.

Todas las configuraciones para la expansión están completas, solo necesitas reiniciar para que sea válido.

Elige System --> Reboot, haz clic en el botón PERFORM REBOOT. Espera a que OpenWRT se reinicie e inicia sesión nuevamente.

Instalación y configuración de Home Assistant, ESPHome

Paso 4. Instalar Home Assistant con Docker

Una mejor manera de instalar Home Assistant en OpenWRT es hacerlo en Docker, lo cual asegura que LinkStar sea estable como una ruta suave y también permite que Home Assistant sea desplegado.

Entonces todo lo que necesitamos hacer es descargar la imagen específica de Home Assistant. Esta imagen nos servirá bien para instalar el servicio ESPHome más adelante.

homeassistant/qemuarm-64-homeassistant:latest

Usamos la imagen descargada para crear un Contenedor.

En la página donde se crea el contenedor, necesitamos hacer algunas configuraciones simples.

  • Container Name: el nombre de tu contenedor
  • Docker Image: elige la imagen qemuarm-64-homeassistant recién descargada
  • Network: elige el modo host
  • Environment Variables(-e): tu variable de entorno

Una vez que hayas completado lo anterior, guarda y aplica. Verás que el Contenedor ha sido creado. Vamos a iniciarlo.

Paso 5. Instalar ESPHome con Docker

Como estamos instalando el Contenedor de Home Assistant, no podemos simplemente descargar el servicio ESPHome a través de la tienda de Add-on, por lo que se necesita una solución alternativa.

Repitiendo los pasos anteriores, descargamos la imagen de ESPHome.

esphome/esphome:latest

En la página donde se crea el contenedor, necesitamos hacer algunas configuraciones simples.

  • Container Name: el nombre de tu contenedor
  • Docker Image: elige la imagen esphome recién descargada
  • Network: elige el modo host
  • Environment Variables(-e): tu variable de entorno

Una vez que hayas completado lo anterior, guarda y aplica. Verás que el Contenedor ha sido creado. También necesitas iniciarlo.

Paso 6. Agregar el servicio ESPHome a Home Assistant

Para lograr el mismo efecto que descargar ESPHome en Home Assistant, necesitamos modificar el archivo de configuración bajo Home Assistant.

Ve al Contenedor de Home Assistant.

Vamos al terminal en Home Assistant.

Ingresa el siguiente comando en el terminal.

vi configuration.yaml

Añade el siguiente contenido al final de configuration.yaml.

# Example configuration.yaml entry
panel_iframe:
esphome:
title: "ESPHome"
url: "http://192.168.100.1:6052"
icon: mdi:chip

Salga del contenedor docker escribiendo exit en el shell del contenedor de Home Assistant. Una vez hecho esto, reiniciamos el contenedor de Home Assistant.

Cree una nueva página del navegador, ingrese la dirección IP 192.168.100.1:8123 y registre su cuenta de Home Assistant y verá que ESPHome aparece en la barra de herramientas de la izquierda.

Agregar Seeed Studio XIAO ESP32C3 a ESPHome

  • Paso 1. Haga clic en + NEW DEVICE
  • Paso 2. Haga clic en CONTINUE
  • Paso 3. Ingrese un Nombre para el dispositivo e ingrese las credenciales de WiFi como Nombre de red y Contraseña. Luego haga clic en NEXT
  • Paso 4. Seleccione ESP32-C3 y haga clic
  • Paso 5. Haga clic en SKIP porque configuraremos esta placa manualmente
  • Paso 6. Haga clic en EDIT debajo de la placa recién creada
  • Paso 7. Esto abrirá un archivo YAML y este archivo se utilizará para establecer todas las configuraciones de la placa. Edite el contenido bajo esp32 de la siguiente manera
esp32:
board: seeed_xiao_esp32c3
variant: esp32c3
framework:
type: arduino
version: 2.0.5
platform_version: 5.2.0

Nota: Aquí estamos usando la versión más reciente de Arduino core para ESP32 y soporte ESP32 para PlatformIO

  • Paso 8. luego, por favor haz clic en el botón Save en la esquina superior derecha.

LinkStar H68K no soporta el reconocimiento de dispositivos MCU externos, necesitamos descargar primero el firmware compilado y luego subir el firmware a través de otra PC.

  • Paso 9. Haz clic en el botón Install en la esquina superior derecha. Luego selecciona el último elemento Manual download.
  • Paso 10. Selecciona Modern format.

Luego tomará mucho tiempo descargar y compilar, así que por favor ten paciencia. Una vez que todo esté listo, el firmware se descargará automáticamente a tu computadora.

  • Paso 11. Para subir el firmware al XIAO ESP32C3 hay un par de opciones aquí mostramos 2 formas de hacerlo:

Asegúrate de tener los controladores correctos instalados. A continuación están los controladores para chips comunes usados en dispositivos ESP.

  1. Controladores CP2102: Windows & Mac
  2. Controladores CH342, CH343, CH9102: Windows, Mac
  3. Controladores CH340, CH341: Windows, Mac

Abre la herramienta web ESPhome con el navegador web Chrome o Edge.

Haz clic en CONNECT.

selecciona el puerto serie del XIAO ESP32 en la ventana emergente.

Haz clic en INSTALL y luego selecciona el archivo .bin descargado de los pasos anteriores.

Si aún no puedes subir el firmware usando el método uno después de instalar el controlador y cambiar navegadores, entonces puedes intentar usar el método dos. Por favor consulta el tutorial oficial para métodos de instalación específicos e instrucciones.

tip

Si deseas observar los mensajes de registro del XIAO ESP32C3, también puedes verlos a través del botón View Logs de este software.

Una vez que la subida esté completa, puedes desconectar el XIAO ESP32C3 de la PC (a menos que tengas necesidad de ver los registros) y simplemente alimentar el XIAO por separado.

Si todo va bien, el XIAO ESP32C3 buscará y se conectará al WiFi que has configurado para él.

Como yo, uso la red de LinkStar H68K. Puedes encontrarla en las opciones de red y ver la dirección IP asignada por LinkStar H68K.

  • Paso 12. Si ves el estado de la placa como ONLINE, eso significa que la placa se conectó exitosamente al WiFi
  • Paso 13. Conectar al XIAO ESP32C3

Si no tienes muchos dispositivos Home Assistant en tu LAN, Home Assistant puede buscar automáticamente y agregar tus dispositivos ESP a la pestaña Devices. Puedes ver este dispositivo dentro de la pestaña Devices & Services en Settings.

Si no busca automáticamente, también puedes conectarte al XIAO ESP32C3 basándote en su dirección IP.

Haz clic en ADD INTEGRSTION y busca esphome.

Luego ingresa la dirección IP del XIAO ESP32C3 con el número de puerto 6053. Luego haz clic en SUBMIT.

Si la dirección IP y el número de puerto ingresados son correctos, entonces verás que se te pide ingresar la clave de encriptación, que pedimos guardar en el archivo yaml.

Luego haz clic en SUBMIT.

En este punto, los pasos para agregar el dispositivo se han completado exitosamente.

Módulos Grove con ESPHome y Home Assistant

¡Ahora conectaremos módulos Grove al Seeed Studio XIAO ESP32C3 para poder mostrar datos de sensores o controlar dispositivos usando Home Assistant!

Conectar Módulos Grove al XIAO ESP32C3

Para usar módulos Grove con el Seeed Studio XIAO ESP32C3, utilizaremos un Grove Shield para Seeed Studio XIAO y conectaremos el XIAO ESP32C3 en él.

Después de eso, los conectores Grove en la placa se pueden usar para conectar módulos Grove

Definiciones de Pines

Necesitas seguir la tabla a continuación para usar los números de pin internos apropiados al conectar los módulos Grove a los conectores Grove en el Grove Shield para Seeed Studio XIAO.

Número de Pin InternoMapeo de Pin
2D0
3D1
4D2
5D3
6D4
7D5
21D6
20D7
8D8
9D9
10D10
6SDA
7SCL

Por ejemplo, si quieres conectar un módulo Grove al puerto D0, necesitas definir el pin en ESPHome como 2

Lista de Compatibilidad de Grove con ESPHome

Actualmente los siguientes módulos Grove son compatibles con ESPHome

Módulo GroveCategoría
Grove - Sensor de Polvo Láser PM2.5Gas
Grove - Sensor ambiental todo en uno SEN55, NOx, PM, VOC, RH, TempGas
Grove - Sensor ambiental todo en uno SEN54, PM, VOC, RH, TemperaturaGas
Grove - Sensor de CO2, Temperatura y Humedad (SCD30)Gas
Grove - Sensor de CO2, Temperatura y Humedad - SCD41Gas
Grove - Sensor de Gas VOC y eCO2 - SGP30Gas
Grove - ADC de 4 Canales de 16 bits (ADS1115)ADC
Grove - Sensor de Distancia Time of Flight (VL53L0X)Distancia
Grove - Sensor de Distancia UltrasónicoDistancia
Grove - Sensor de Temperatura y Humedad de Grado Industrial I2C AHT20Ambiental
Grove - Sensor de Temperatura y Humedad V2.0 (DHT20)Ambiental
Grove - Sensor de Temperatura y Humedad Pro (DHT22/AM2302)Ambiental
Grove - Sensor de Temp, Humedad y Barómetro (BME280)Ambiental
Grove - Sensor de Temperatura, Humedad, Presión y Gas para Arduino - BME680Ambiental
Grove Sensor de Temperatura y Barómetro (BMP280)Ambiental
Sensor de Temperatura One Wire - DS18B20Ambiental
Grove - Sensor de Temperatura y Humedad (DHT11)Ambiental
Grove - Sensor de Temperatura I2C de Alta Precisión - MCP9808Ambiental
Grove - Sensor de Temperatura y Humedad (SHT31)Ambiental
Grove - Sensor de Temperatura y Humedad (SHT40)Ambiental
Grove - Sensor Barométrico de Alta Precisión (DPS310)Ambiental
Grove - Amplificador de Termopar I2C (MCP9600)Ambiental
Grove - Sensor de Color I2C V2Color
Grove - Sensor de Luz Digital - TSL2561Luz
Grove - ADC para Celda de Carga (HX711)Peso
Grove - Sensor Táctil Capacitivo I2C de 12 Teclas V3 (MPR121)Capacitivo
Grove - Controlador PWM de 16 Canales (PCA9685)PWM
Grove - Display de 4 DígitosDisplay
Grove - Display OLED 0.66" (SSD1306)Display
Grove - ReléRelé
Grove - Relé SPDT (30A)Relé
Grove - Relé de Estado Sólido V2Relé
Grove - Relé SPDT de 2 CanalesRelé
Grove - Sensor de Movimiento PIRMovimiento
Grove - sensor de movimiento PIR miniMovimiento
Grove - Sensor de Movimiento PIR Digital (12m)Movimiento
Grove - ServoActuador
Grove - Multiplexor I2C de 8 Canales/Hub I2C (TCA9548A)Multiplexor

Ahora seleccionaremos 6 módulos Grove de la tabla anterior y explicaremos cómo se pueden conectar con ESPHome y Home Assistant.

Grove - Sensor de Temperatura y Humedad (AHT20)

Configuración de Instalación

  • Paso 2. Dentro del archivo xiao-esp32c3.yaml que creamos anteriormente, añade lo siguiente al final del archivo y envíalo por OTA al XIAO ESP32C3
i2c:
sda: 6
scl: 7

sensor:
- platform: aht10
temperature:
name: "Temperature"
humidity:
name: "Humidity"

Puedes aprender más sobre el componente AHT10 aquí. Te permite usar sensores basados en AHT10, AHT20 y AHT21. Aquí agregamos el componente Bus I²C porque el AHT20 se comunica usando el protocolo I2C.

Visualizar en el Panel de Control

  • Paso 1. En la página Resumen de Home Assistant, haz clic en los 3 puntos y haz clic en Editar Panel de Control
  • Paso 2. Haz clic en + AGREGAR TARJETA
  • Paso 3. Selecciona POR ENTIDAD, escribe temperature y selecciona la casilla de verificación junto a Temperature
  • Paso 4. Repite lo mismo para Humidity
  • Paso 5. Haz clic en CONTINUAR
  • Paso 6. Haz clic en AGREGAR AL PANEL DE CONTROL

Ahora tu panel de control de Home Assistant se verá como se muestra a continuación

  • Paso 7. También puedes visualizar los datos del sensor como medidores. Haz clic en Gauge bajo POR TARJETA
  • Paso 8. Selecciona Temperature del menú desplegable
  • Paso 9. Haz clic en GUARDAR
  • Paso 10. Repite lo mismo para Humidity

Ahora tu panel de control se verá como se muestra a continuación

Para el Grove - Sensor de Gas VOC y eCO2 (SGP30) y Grove - Sensor de CO2, Temperatura y Humedad (SCD41) en este wiki, puedes seguir un procedimiento similar para visualizar los datos del sensor en el panel de control

Grove - Sensor de Gas VOC y eCO2 (SGP30)

Configurar la configuración

  • Paso 2. Dentro del archivo xiao-esp32c3.yaml que creamos antes, agrega lo siguiente al final del archivo y envíalo OTA al XIAO ESP32C3
i2c:
sda: 6
scl: 7

sensor:
- platform: sgp30
eco2:
name: "eCO2"
accuracy_decimals: 1
tvoc:
name: "TVOC"
accuracy_decimals: 1

Puedes aprender más sobre el componente SGP30 aquí.

Grove - Sensor de CO2, Temperatura y Humedad (SCD41)

Configuración de instalación

  • Paso 2. Dentro del archivo xiao-esp32c3.yaml que creamos anteriormente, añade lo siguiente al final del archivo y envíalo por OTA al XIAO ESP32C3
i2c:
sda: 6
scl: 7

sensor:
- platform: scd4x
co2:
name: "CO2"
temperature:
name: "Temperature"
humidity:
name: "Humidity"

Puedes aprender más sobre el componente SGP4x aquí

Grove - Relay

Configuración de instalación

  • Paso 1. Conecta Grove - Relay a uno de los puertos Digital en el Grove Shield para Seeed Studio XIAO. Aquí seleccionamos el puerto D0
  • Paso 2. Dentro del archivo xiao-esp32c3.yaml que creamos antes, añade lo siguiente al final del archivo y envíalo OTA al XIAO ESP32C3
switch:
- platform: gpio
pin: 2
name: "Relay"

Puedes aprender más sobre el componente Relay aquí

Visualizar en el Panel de Control

  • Paso 1. Bajo + ADD CARD que mencionamos antes, selecciona BY ENTITY, escribe relay, selecciónalo y haz clic en CONTINUE
  • Paso 2. Haz clic en ADD TO DASHBOARD

Ahora puedes encender/apagar el relé ON/OFF usando el interruptor de palanca

Grove - mini sensor de movimiento PIR

Configurar la configuración

  • Paso 2. Dentro del archivo xiao-esp32c3.yaml que creamos antes, añade lo siguiente al final del archivo y envíalo OTA al XIAO ESP32C3
binary_sensor:
- platform: gpio
pin: 2
name: "PIR Sensor"
device_class: motion

Puedes aprender más sobre el componente PIR aquí

Visualizar en el Panel de Control

  • Paso 1. Bajo + ADD CARD que mencionamos antes, selecciona BY ENTITY, escribe pir, selecciónalo y haz clic en CONTINUE
  • Paso 2. Haz clic en ADD TO DASHBOARD

Ahora si se detecta movimiento, se mostrará como Detected

¿Qué Sigue?

Felicitaciones, has aprendido a completar el despliegue de Home Assistant en LinkStar y puedes usar el plugin de ESPHome. Para cualquier cosa similar a no poder instalar un Contenedor de Home Assistant con Add-on, puedes usar este método para instalar otros plugins de Home Assistant.

¡También esperamos que te unas a nuestro equipo de creadores y nos traigas más ejemplos útiles!

Por supuesto, hay más en el XIAO ESP32C3 que solo soporte para el MR24HPCB1 en Home Assistant, y puedes encontrar más tutoriales para tu propio uso en este documento.

¡Deja fluir tu creatividad!

Solución de Problemas

FAQ1: Obtuve el siguiente error mientras subía firmware usando la herramienta Web de ESPhome, ¿cómo puedo solucionarlo?

R: Si aparece esta advertencia mientras subes, desconecta el XIAO ESP32C3 de la PC. Luego, mantén presionado el BOTÓN BOOT, conecta la placa a tu PC mientras mantienes presionado el botón BOOT, y luego suéltalo para entrar al modo bootloader. En este punto es suficiente reconectar y subir el firmware nuevamente.

FAQ2: No puedo instalar esphome flasher bajo Linux siguiendo el tutorial de esphome flasher?

R: Al ejecutar los siguientes comandos, necesitas seleccionar tu versión del sistema, de lo contrario ocurrirá un error. Por ejemplo, mi computadora es Ubuntu 22.04, entonces el comando que debería ejecutarse es el siguiente.

sudo apt install python3

pip3 install -U \
-f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-22.04/ \
wxPython

pip3 install esphomeflasher

FAQ3: Llené el WiFi y la contraseña correctos, ¿por qué no veo la dirección IP del XIAO ESP32C3?

R: Cuando encuentres este problema, por favor verifica que la antena del XIAO ESP32C3 esté conectada en su lugar. Si la antena ya está conectada, por favor asegúrate de que el XIAO no esté a más de 3m del LinkStar si es posible (a menos que hayas reemplazado la antena con una más potente). Si aún no ves el XIAO, puedes usar el software esphome flasher para verificar la información de registro del XIAO y comprobar la conexión del XIAO a través de los registros. Puedes volver a conectar el xiao para permitir que trate de buscar WiFi y conectarse nuevamente.

Soporte Técnico y Discusión de Productos

¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.

Loading Comments...