Integrar Ikea VINDRIKTNING en HA

Si quieres tener un sensor de calidad del aire barato y elegante, atento que hoy vamos a integrar Ikea VINDRIKTNING en HA!

Ikea VINDRIKTNING

Recientemente he podido probar distintos sensores de calidad de aire, y hace tiempo que quería llevar a cabo el proyecto para integrar Ikea VINDRIKTNING en HA. Este es un sensor de Ikea muy barato (lo acabo de comprar de oferta por 12€), sencillo y minimalista que analiza la calidad del aire detectando partículas PM2.5.

Para utilizarlo sólo tienes que conectarlo a un cable USB-C y esperar unos segundos. Mediante el LED de su parte frontal indica tres niveles de calidad del aire: verde, amarillo y rojo.

*Algún precio puede haber cambiado desde la última revisión

Las pegas que tiene este sensor es que la información que proporciona es muy pobre y no es integrable con Home Assistant. No obstante, con este proyecto vamos a conseguir lo siguiente:

  • Integrarlo en ESPHome, y leer la concentración de partículas PM2.5.
  • Crear entidades que traduzcan la calidad del aire.
  • Incorporar un sensor de temperatura y humedad.

Requisitos previos

Para integrar Ikea VINDRIKTNING en HA previamente necesitas:

  • Un Ikea VINDRIKTNING.
  • Una placa ESP32-C3 SuperMini. Estrictamente podrías usar cualquier placa ESP, pero este modelo se adapta muy bien a este proyecto, gracias a su reducido tamaño y precio.
  • Un sensor AHT10, para incorporar la información de temperatura y humedad a nuestro dispositivo.
  • Un cable USB-C para alimentar la placa de DATOS (con un cable de carga no vas a poder instalar el software).
  • Haber instalado ESPHome en Home Assistant.

Conexión de los componentes

Lo primero que vamos a hacer para integrar Ikea VINDRIKTNING en HA es abrir la carcasa del sensor. Para ello tienes que quitar los 4 tornillos que hay en las esquinas y hecho esto ya podrás retirar (con cuidado) la cubierta frontal. Desconecta los conectores de la placa tirando suavemente de ellos para trabajar más cómodamente.

Fíjate en la placa que trae el dispositivo, por la parte opuesta al puerto USB-C, y observarás una serie de pines expuestos. En estos pines vamos a soldar tres cables que irán a nuestra placa ESP.

  • El cable de alimentación (en mi caso, el rojo) irá al pin identificado con +5V
  • El cable de tierra (en mi caso, el negro) irá al pin identificado con GND
  • El cable de datos (en mi caso, el verde) irá al pin identificado con REST

Lo siguiente es observar el ‘pinout’ (o distribución de pines) de la placa. En mi caso voy a utilizar una placa ESP32-C3 SuperMini y este es su ‘pinout’.

El esquema de conexiones que vamos a seguir es el siguiente:

  • El cable de alimentación (en mi caso, el rojo) irá al pin 5V
  • El cable de tierra (en mi caso, el negro) irá al pin GND
  • El cable de datos (en mi caso, el verde) irá al pin GPIO8/D8

Ahora vamos a conectar nuestro sensor AHT10 a la placa, con el siguiente esquema de conexiones:

  • El pin ‘VIN’ irá al pin 3V3 de la placa.
  • El pin ‘GND’ irá al pin al pin GND de la placa.
  • El pin ‘SCL’ irá al GPIO7/D5 de la placa.
  • El pin ‘SDA’ irá al pin GPIO6/D4 de la placa.
⚠️ No olvides volver a encajar los conectores que quitaste en el primer paso, pero no montes tu dispositivo todavía! Aún queda flashearlo con el código de ESPHome y probar que todo funciona!

Configuración en ESPHome

Ahora tenemos que ‘flashear’ la placa con ESPHome y la configuración correspondiente siguiendo estos pasos:

  1. Conecta la placa a tu ordenador a través del puerto USB-C.
  2. En Home Assistant, accede al complemento de ESPHome desde el menú lateral y pulsa en “New device”. Pulsa en “Continue” y dale un nombre (por ejemplo, “Ikea Vindriktning»).
  3. Pulsa en “Next” y a continuación selecciona la opción “ESP32-C3” como tipo de dispositivo. Verás que en el fondo se ha creado un nuevo dispositivo.
  4. Pulsa en “Skip” y haz clic en el enlace “Edit” del bloque correspondiente al dispositivo que acabas de crear.
  5. Añade las siguientes líneas al final del código (y adapta los pines de la placa si no has usado los mismos que yo).
captive_portal:

uart:
  rx_pin: GPIO8
  baud_rate: 9600

i2c:
  scl: GPIO7
  sda: GPIO6
  scan: True
  id: bus_a

sensor:
  - platform: pm1006
    pm_2_5:
      name: "Partículas de 2.5µm"
      id: particulate_matter_2_5
  - platform: aht10
    variant: AHT20
    i2c_id: bus_a
    temperature:
      name: "Temperatura"
    humidity:
      name: "Humedad"
    update_interval: 60s

text_sensor:
  - platform: template
    name: "Color"
    icon: mdi:led-strip
    update_interval: 30s
    lambda: |-
      if (id(particulate_matter_2_5).state <= 35.0) {
        return {"Verde"};
      } else if (id(particulate_matter_2_5).state > 35.0 && id(particulate_matter_2_5).state <= 85.0) {
        return {"Naranja"};
      } else {
        return {"Rojo"};
      }

  - platform: template
    name: "Calidad del aire"
    icon: mdi:emoticon
    update_interval: 30s
    lambda: |-
      if (id(particulate_matter_2_5).state <= 12.0) {
        return {"Excelente"};
      } else if (id(particulate_matter_2_5).state > 12.0 && id(particulate_matter_2_5).state <= 35.0) {
        return {"Buena"};
      } else if (id(particulate_matter_2_5).state > 35.0 && id(particulate_matter_2_5).state <= 55.0) {
        return {"Moderada"};
      } else if (id(particulate_matter_2_5).state > 55.0 && id(particulate_matter_2_5).state <= 150.0) {
        return {"Insana"};
      } else if (id(particulate_matter_2_5).state > 150.0 && id(particulate_matter_2_5).state <= 250.0) {
        return {"Dañina"};
      } else if (id(particulate_matter_2_5).state > 250.0 && id(particulate_matter_2_5).state <= 350.0) {
        return {"Muy dañina"};
      } else {
        return {"Peligrosa"};
      }
  1. Cuando hayas terminado de editar el código pulsa en “Save” e “Install”. Selecciona la opción “Manual download” y espera a que el código se compile.
  2. Cuando termine, selecciona la opción “Modern format” para descargar el fichero ‘.bin’ correspondiente.
  3. Ahora ve a la página de ESPHome y pulsa en “Connect”. En la ventana emergente selecciona tu placa y pulsa en “Conectar”.
💡 Si tu placa se conecta y desconecta sin darte tiempo a flashear el firmware desconéctala de tu ordenador y, mientras mantienes pulsado los botones "Boot" y "RST" de la placa, conéctala de nuevo.
  1. Ahora pulsa en “Install” y selecciona el fichero ‘.bin’ obtenido en el paso 7. De nuevo, pulsa en “Install”.
  2. Vuelve a Home Assistant y ve a Configuración > Dispositivos y servicios. Lo normal es que tu dispositivo haya sido descubierto y aparezca en la parte superior, esperando únicamente a que pulses el botón de “Configurar”. De lo contrario pulsa en el botón de “Añadir integración”, busca “ESPHome” e introduce la IP de tu placa en el campo ‘Host’. Como siempre, te recomiendo que asignes una IP fija en tu router para evitar fallos en el futuro si esta cambia.
  3. Verifica que el dispositivo funciona correctamente y acto seguido, ya puedes alojar todos los componentes en el interior de la carcasa y volver al montarlo. Gracias a los componentes reducidos que hemos utilizado no tendrás problema.

Agradecimientos

Para elaborar esta entrada nos hemos apoyado en este video de nuestro amigo Manolo de Proyectos MicroPIC, canal que te recomiendo totalmente! 😎

🛟 ¿Dudas? Si necesitas ayuda entra aquí 👈 🎁 Y si te ha gustado y quieres más... 🥑
Contenido exclusivo de Aguacatec