COMO AÑADIR UN ESP32 A HOME ASSISTANT Y NO MORIR EN EL INTENTO


Si estás interesado en la domótica y el Internet de las Cosas (IoT), seguramente has oído hablar de ESPHome y Home Assistant. Estas herramientas permiten transformar placas como ESP32 y ESP8266 en potentes dispositivos inteligentes para el hogar.

En este artículo, exploraremos cómo instalar y configurar el firmware de ESPHome, integrar dispositivos con Home Assistant, y aprovechar al máximo la automatización del hogar. Descubre cómo hacer tu casa más inteligente con soluciones personalizadas y eficientes. ¡Empecemos!

¿Qué son las placas nodeMCU ESP32 y ESP2866?

Las placas ESP son chips Wi-Fi de bajo costo, equipados con memoria flash incorporada que permiten crear dispositivos de un solo chip con conectividad Wi-Fi.

  • ESP32: Incorpora, además de Wi-Fi, soporte para BLE (Bluetooth de bajo consumo).
  • ESP8266: Es una opción robusta y económica para proyectos básicos de IoT.

Estas placas se pueden adquirir por aproximadamente 4-9 dólares/euros en plataformas como AliExpress, o un poco más en Amazon si se opta por un envío más rápido. Con ESP, es posible desarrollar soluciones inteligentes para automatizar el hogar de manera sencilla y efectiva.

Crear un nuevo nodo ESPHome desde HomeAssistant

Primero, debemos definir un nuevo nodo de inicio de ESP. Como ESPhome es parte de Home Assistant, ahora puedes hacer esto directamente desde la interfaz de usuario de Home Assistant.

  • Iniciar sesión en Home Assistant
  • En el menú principal haga clic en ESPHome
Instale el complemento HomeAssistant si no ve el elemento de menú ESPhome
  • En ESPhome haga clic en el botón “+ NUEVO DISPOSITIVO” en la esquina inferior izquierda
  • Proporcione el nombre de su nodo y las credenciales de WiFi para la red WiFi a la que el chip necesita conectarse y haga clic en siguiente.

NOTA: Algunos módulos especialmente de baja calidad puede que tengan dificultades para conectarse a su punto de acceso , así que si encuentra dificultades intente realizar esta configuración cerca del router o punto de acceso.

  • Seleccione el tipo de ESP que está utilizando. La versión de la placa está impresa en el chip WiFi del ESP. Haga clic en Siguiente.
    • ESP32 es la placa que contiene Bluetooth
    • ESP8266 es la placa genérica.
  • Recuerda que, aunque se identifique como ESP32, existen variantes. En algunos casos, es necesario editar el archivo YAML para especificar el modelo exacto, como en el ejemplo a continuación:
  • Felicitaciones, ya ha creado su primer nodo ESPhome. Haga clic en Instalar.

NOTA IMPORTANTE: A pesar de que bajo el nombre ESP32 puede parecer que es lo mismo a todas las variantes , esto no siempre es así por lo que tenemos que asegurarnos que modelo de placa exactamente estamos usando para lo cual podemos editar el fichero yaml y concretar el modelo exacto ( si no lo hacemos así probablemente a no ser que sea el original no funcionara).Por ejemplo si nuestra placa es una NodeMCU, deberemos especificarlo manualmente en el fichero de configuración .yaml.

esphome:
  name: "medidorprueba"
  platform: ESP32
  board: nodemcu-32s
.....

Primer destello de ESPhome

Necesitamos comenzar compilando el firmware que usaremos para flashear el chip ESP. Solo necesitas hacer esto una vez. Tan pronto como ESPhome esté instalado en tu chip, puedes actualizar el firmware a través de la conexión WiFi con la llamada instalación «por aire» (OTA).

ESPHome le ofrece una serie de opciones para instalar ESP:

  • De forma inalámbrica
    Esto funcionará después de que haya finalizado el flash inicial de ESPhome en el chip.
  • Conectado directamente desde esta computadora.
    Este método se explica a continuación.
  • Conectado desde su servidor Home Assistant
    Es personalmente mi preferido consistiendo en conectar el ESP32 mediante un cable USB al servidor Home Assistant (normalmente implementado en una Raspberry Pi o en un PC). Atención , aunque este conectado al HA , la operación lo haremos desde nuestro PC desde la pagina de HA ( normalmente http://homeassistant.local:8123)
  • Descarga manual
    Este método se explica a continuación.

A continuación describiré el método de conexión directa desde esta computadora y el método de descarga manual.

Instalar ESPhome usando el método Plugged-in directamente desde su ordenador

La forma más sencilla de realizar la actualización inicial es mediante el método de «conexión directa desde este equipo». Con este método, conecta el ESP mediante USB a su equipo y la actualiza directamente desde el navegador.

Nota: Este método solo funciona si Home Assistant se ejecuta de forma segura (HTTP S ) en el navegador. Si utiliza NabuCasa, puede utilizar la URL pública segura que puede encontrar en Configuración -> Home Assistant Cloud en Control remoto.

Suponiendo que estás accediendo a Home Assistant bajo HTTPS, haz clic en “Conectado directamente desde esta computadora ”. Aparecerá una ventana emergente en el navegador; debes permitir que el navegador se conecte al COM3 del USB. Selecciona el COM y haz clic en conectar. ESPHome ahora flasheará el chip desde el navegador. ¡Qué asombroso y qué fácil!

Instalar ESPhome mediante el método de descarga manual

Si no tienes Home Assistant ejecutándose con HTTPS, es posible que quieras usar el método de descarga manual. Este método te permitirá compilar y descargar el firmware a tu ordenador. Luego, puedes usar la herramienta ESPFlasher para flashear el ESP.

En el menú Instalar, haga clic en Descarga manual. Ahora comenzará la compilación y el archivo .bin se descargará cuando esté listo.

Flash ESP con firmware compilado (.bin)

Ahora necesitamos flashear el chip ESP con el firmware compilado.

  • Vaya a la página de GitHub de esphome-flasher y descargue el flasher para el sistema operativo que esté usando. Existe una herramienta de flasheo de esp home para macOS, Ubuntu y Windows:
    https://github.com/esphome/esphome-flasher/releases
  • Conecte su placa ESP con USB a su computadora portátil.
  • Abra la herramienta de flasheo
    • Puerto serie : selecciona el puerto COM donde está conectada la placa (probablemente solo haya una opción 😊).
    • Firmware : busque la ubicación donde descargó el firmware compilado y seleccione su firmware.
    • Haga clic en Flash ESP y espere
  • Ahora el ESP se habrá flasheado. Puedes seguir el progreso en la ventana de la consola. Cuando termine de escribir el firmware, el ESP se reiniciará y se conectará a tu WiFi.
El ESP estará listo después de que indique que está listo para actualizaciones inalámbricas y que el servidor API está listo .

Configurar el dispositivo en Home Assistant

Home Assistant reconocerá automáticamente el ESP en la red y le notificará sobre el nuevo dispositivo encontrado. Haga clic en la notificación o en Configuración, Integraciones. Busque el nuevo dispositivo descubierto y haga clic en Configurar.

Aunque inicialmente no se asignarán entidades de control, este paso es fundamental para la integración completa y el manejo futuro del dispositivo desde Home Assistant.

Con estas mejoras y nuevas funciones, la integración de ESPHome en Home Assistant no solo simplifica la configuración de dispositivos inteligentes, sino que también abre un abanico de posibilidades para la automatización del hogar. ¡Atrévete a explorar y lleva tus proyectos de IoT al siguiente nivel!

Instalar un servidor IOT en un PC


Para montar un servidor IoT en un PC, primero necesitamos un PC con los requisitos mínimos necesarios. Estos requisitos suelen ser los siguientes:

  • Un procesador de al menos 1 GHz
  • 2 GB de RAM
  • 10 GB de espacio libre en disco duro
  • Un sistema operativo compatible con IoT, como Windows 10, Linux o macOS

Una vez que tenga un PC compatible, puedes empezar a instalar el software necesario. Hay muchas opciones disponibles, pero algunas de las más populares son:

  1. Apache MQTT es un servidor MQTT que facilita la comunicación entre dispositivos IoT de manera eficiente y ligera. MQTT es reconocido por su bajo consumo de ancho de banda y su capacidad para funcionar en redes con recursos limitados, lo que lo convierte en una opción popular para la comunicación en entornos IoT. Al utilizar un modelo de publicación/suscripción, MQTT permite que los dispositivos envíen y reciban mensajes de manera eficiente, lo que lo hace ideal para aplicaciones donde se requiere un intercambio rápido de datos entre múltiples dispositivos.
  2. Node-RED proporciona un entorno de desarrollo visual para la creación de aplicaciones IoT basadas en JavaScript. Con una interfaz gráfica intuitiva, Node-RED permite a los desarrolladores crear flujos de trabajo complejos al conectar nodos predefinidos. Estos nodos pueden realizar una variedad de tareas, como la integración con dispositivos y servicios IoT, el procesamiento de datos y la generación de respuestas automatizadas. Al simplificar el proceso de desarrollo, Node-RED agiliza la creación de aplicaciones IoT y facilita la implementación de soluciones inteligentes y conectadas.
  3. ThingSpeak es una plataforma en la nube diseñada para la recopilación, el almacenamiento y la visualización de datos de dispositivos IoT. Ofrece herramientas para la integración de dispositivos y la recopilación de datos en tiempo real, así como para el análisis y la visualización de datos a través de gráficos y tablas. ThingSpeak también permite la creación de paneles personalizados para monitorizar y controlar dispositivos IoT, lo que facilita la creación de soluciones personalizadas para diferentes aplicaciones y casos de uso.
  4. HomeAssistant es una plataforma IoT de código abierto ampliamente utilizada que se puede instalar en una variedad de dispositivos, como Raspberry Pi o servidores domésticos. Ofrece una interfaz centralizada para controlar y automatizar dispositivos IoT de diferentes fabricantes y protocolos. HomeAssistant es altamente personalizable y extensible, lo que permite a los usuarios integrar una amplia gama de dispositivos y servicios en una sola plataforma. Con funciones avanzadas de automatización y soporte para la creación de reglas personalizadas, HomeAssistant es una opción popular para aquellos que desean crear un hogar inteligente personalizado y flexible.

Apache MQTT

Apache MQTT: Un servidor MQTT, que es un protocolo de mensajería ligero utilizado para la comunicación entre dispositivos IoT.

Para instalar Apache MQTT, puede seguir estos pasos:

  1. Abra un símbolo del sistema o una terminal.
  2. Escriba el siguiente comando:
sudo apt-get install mosquitto
  1. Presione Enter.

Esto instalará el servidor MQTT en tu PC. Para comprobar que está instalado correctamente, puede escribir el siguiente comando:

sudo service mosquitto status

Si el servidor está instalado correctamente, verá el siguiente mensaje:

mosquitto.service - Mosquitto MQTT v3.1.1 message broker
   Loaded: loaded (/lib/systemd/system/mosquitto.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2023-12-30 12:00:00 CET; 10h ago
  Main PID: 1336 (mosquitto)
  Tasks: 2 (limit: 2349)
  Memory: 1.8M
  CGroup: /system.slice/mosquitto.service

Node-RED

Node-RED: Un entorno de desarrollo visual para crear aplicaciones IoT basadas en JavaScript.

Para instalar Node-RED, puede seguir estos pasos:

  1. Abra un símbolo del sistema o una terminal.
  2. Escriba el siguiente comando:
npm install -g node-red
  1. Presione Enter.

Esto instalará Node-RED en tu PC. Para comprobar que está instalado correctamente, puede escribir el siguiente comando:

node-red

Esto abrirá Node-RED en su navegador web.

ThingSpeak

ThingSpeak: Una plataforma en la nube que permite recopilar, almacenar y visualizar datos de dispositivos IoT.

Para instalar ThingSpeak, puedes seguir estos pasos:

  1. Vaya al sitio web de ThingSpeak.
  2. Haga clic en «Create Account».
  3. Introduzca su información de contacto y cree una contraseña.
  4. Haga clic en «Create Account».

Una vez que haya creado una cuenta, puede empezar a crear canales para recopilar y almacenar datos de sus dispositivos IoT.

Una vez que haya instalado el software necesario, puede empezar a conectar sus dispositivos IoT a tu servidor. La forma de hacerlo dependerá del tipo de dispositivo que esté utilizando.

Por ejemplo, si está utilizando un dispositivo que utiliza el protocolo MQTT, puede conectarlo a su servidor utilizando el siguiente comando:

mosquitto_sub -h localhost -t topic

Este comando suscribirá tu dispositivo al tema «topic».

Una vez que tus dispositivos estén conectados a tu servidor, podrás empezar a recopilar datos de ellos. Puedes hacerlo utilizando el software que hayas instalado anteriormente.

Por ejemplo, si está utilizando Node-RED, puede crear un flujo para recopilar datos de sus dispositivos. El siguiente flujo recopilará datos de un dispositivo que utiliza el protocolo MQTT:

[{"id":"in1","type":"mqtt in","topic":"topic","broker":"localhost"}]

Este flujo creará una entrada llamada «in1» que recibirá datos del tema «topic» del broker MQTT local.

home assistant

Home Assistant

HomeAssistant: Una plataforma IoT de código abierto ampliamente utilizada que se puede instalar en una gran variedad de dispositivos.

Home Assistant es un software de automatización del hogar gratuito y de código abierto que te permite gestionar todos tus dispositivos inteligentes desde un único lugar.También es posible instalar Home Assistant en tu PC.

Para instalar Home Assistant en un PC , puede seguir estos pasos:

  1. Descarga la última versión de Home Assistant desde la página web oficial.Se abre en una ventana nuevawww.home-assistant.ioPágina web oficial de Home Assistant
  2. Descomprime el archivo descargado.
  3. Abre un símbolo del sistema o una terminal en la carpeta descomprimida.
  4. Escribe el siguiente comando:
hass
  1. Presiona Enter.

Esto iniciará Home Assistant. El servidor se iniciará en la dirección http://localhost:8123/.

Una vez que haya iniciado Home Assistant, puede empezar a agregar dispositivos a su sistema. Puede hacerlo utilizando la interfaz web de Home Assistant o mediante la API de Home Assistant.

Para agregar dispositivos a tu sistema utilizando la interfaz web, haz clic en el icono «+» en la esquina superior izquierda de la pantalla. A continuación, seleccione el tipo de dispositivo que deseas agregar.

Para agregar dispositivos a tu sistema mediante la API de Home Assistant, puede utilizar un lenguaje de programación como Python o JavaScript.

Aquí hay algunos ejemplos de lo que puedes hacer con Home Assistant:

  • Controlar tus luces, termostatos y otros dispositivos inteligentes.
  • Automatizar tareas, como encender las luces cuando llegues a casa o apagarlas cuando te vayas.
  • Recibir notificaciones sobre el estado de tus dispositivos.

Home Assistant es una excelente manera de controlar sus dispositivos inteligentes y automatizar su hogar.

Resumen

La elección de la herramienta adecuada depende de sus necesidades específicas y de los requisitos de su proyecto. Aquí hay algunos factores a considerar al tomar una decisión:

  1. Requerimientos del proyecto: Evalúe qué funcionalidades necesita en su solución IoT. ¿Necesita un servidor de mensajería para la comunicación entre dispositivos? ¿Quiere una plataforma para visualizar y analizar datos de IoT? ¿Busca una herramienta para desarrollar aplicaciones IoT de manera rápida y eficiente?
  2. Facilidad de uso: Considere la facilidad de uso y la curva de aprendizaje de cada herramienta. Algunas plataformas pueden ser más amigables para principiantes o ofrecer una interfaz visual intuitiva, mientras que otras pueden requerir un conocimiento más profundo de programación.
  3. Flexibilidad y escalabilidad: Piense en la flexibilidad y la escalabilidad de la herramienta. ¿Puede integrar una amplia gama de dispositivos y servicios? ¿La herramienta puede escalar fácilmente a medida que crece tu proyecto IoT?
  4. Comunidad y soporte: Investige la comunidad de usuarios y el soporte disponible para cada herramienta. Una comunidad activa puede proporcionar recursos, tutoriales y soluciones a problemas comunes, mientras que un buen soporte técnico puede ayudarle a resolver problemas específicos.
  5. Costo: Considere el costo asociado con cada herramienta, incluyendo posibles tarifas de licencia, costos de infraestructura, y gastos de mantenimiento. Algunas herramientas pueden ser de código abierto y gratuitas, mientras que otras pueden requerir una inversión inicial o pagos periódicos.

Analize estos factores y elija la herramienta que mejor se adapte a tus necesidades y objetivos de proyecto. Una vez que hayas recopilado los datos de tus dispositivos, puedes almacenarlos, analizarlos o utilizarlos para automatizar tareas.

Aquí tiene algunos ejemplos de lo que puede hacer con un servidor IoT:

  • Monitorear el estado de tus dispositivos IoT.
  • Recopilar datos para fines de análisis.
  • Automatizar tareas, como encender o apagar luces o abrir puertas.
  • Etc

El potencial de los servidores IoT es enorme. Con un poco de esfuerzo, puede crear aplicaciones IoT que le ayuden a mejorar su vida.