Introduction
With winter come closed windows and doors, the air quality might be of less quality in such conditions.
So I took the opportunity of a visit at IKEA to buy a VINDRIKTNING. This is a PM2,5 device indicating air quality with green/amber/red light.
The goal of this post is to make it smart and integrate it into Home Assistant. As very often, that’s a job for Tasmota.
Hardware
The hack is pretty basic, as the internal PCB of the device already exposes GND, +5V and TX, it is as simple as wiring these 3 pads to a WeMos D1 Mini ESP8266.
ESP8266 | Vindriktning | Notes |
---|---|---|
GND | GND | Power - |
VBUS | 5V | Power + |
D2 GPIO4 | REST | Data |
3V3 | (Fan +) | To reduce fan speed and noise. Optional |
Bill Of Materials
The BoM is probably the shortest you can image.
Part | Quantity | Approx. Price |
WeMos D1 Mini ESP8266 | 1 | 5€ |
Some flexible silicone wire rolls (30 AWG, 20m, 5 rolls) | 3 * 10 cm | 15€ for 5*20m |
VINDRIKTNING from IKEA | 1 | 10€ |
You’ll of course need some soldering iron, I use a Yihua 853D rework soldering station. It might be overkill but I wanted an all-in-one solution (soldering iron, hot air gun and DC power supply).
Software
Tasmota Firmware
As for all devices using an ESP chip, you have to wire it to your computer using a Serial-to-USB adapter for a bare chip or directly over USB if you use a board like the WeMos D1 Mini ESP8266.
The easiest way to flash Tasmota nowadays is to use the Tasmota Web installer at https://tasmota.github.io/install/
However, while the Vindriktning has official support (see “Supported peripherals“), it is NOT built by default.
TODO, 2024-11-03 : The unofficial build does not seem to ship support for the device, I’ve switched to a custom build using Visual Studio Code / Platform IO. See https://tasmota.github.io/docs/Compile-your-build/ and the use of user_config_override.h
Here is the minimum content for that:
#ifndef _USER_CONFIG_OVERRIDE_H_ #define _USER_CONFIG_OVERRIDE_H_ #define USE_VINDRIKTNING // Add support for IKEA VINDRIKTNING particle concentration sensor (+1k code)¸ #endif // _USER_CONFIG_OVERRIDE_H_
Back to the old content:
Make sure to select unofficial > Tasmota All Sensors (english).
After a successful flash and connection to the module’s WiFi, use below template.
{"NAME":"Vindriktning","GPIO":[1,1,1,1,7456,1,1,1,1,1,1,1,1,1],"FLAG":0,"BASE":18}
Continue with the usual WiFi, MQTT and misc configurations.
Home Assistant configuration
Tasmota integration
To ease Tasmota usage in HA, I’ve installed the Tasmota Integration.
Custom graph
I’ve installed the Lovelace Mini Graph Card using HACS.
The below configuration is made to compare two Vindriktning running the fan at 5V and 3.3V.
type: custom:mini-graph-card align_header: left align_icon: left entities: - entity: sensor.tasmota_vindriktning_vindriktning_pm2_5 name: Salon - entity: sensor.tasmota_vindriktning_2_vindriktning_pm2_5 name: Bureau hour24: true font_size: 80 icon: mdi:chemical-weapon name: Air quality (PM2.5) points_per_hour: 6 show: extrema: true average: true state: false color_thresholds: - value: 0 color: '#00ff00' - value: 35 color: '#ff8800' - value: 85 color: '#ff0000'
Reducing fan noise
Now that we are happy and the device is deployed in the house, we notice it is a noisy one.
A common hack is to cut the +5V of the fan and solder it to the +3.3V of the WeMos D1 Mini ESP8266, this indeed works pretty well and the device becomes finally quite. But there’s a catch, is it still as reliable?
Reducing the fan voltage reduces its speed and so is the air flow. Let’s have a quick comparison between 5V & 3.3V.
As you can see, values are still pretty close. The 3.3V variant is slightly more permissive, so I’d have to test it following a “kitchen crisis” like a burnt slice of bread.
Here is another test, when moved from Room 1 to Room 2 and back to Room 1.
And the final test AKA the toasted bread, with an overview of 48 hours.
So, is it worth it? If you want a quite device it is mandatory. Assuming you won’t use the device for life saving purposes, the offset seems OK. Maybe using a voltage like 4V might be preferred as it’ll balance further the noise/offset ratio.
For my own case, I’ll hack the second device to use 3.3V.
References
DIY: Use an IKEA VINDRIKTNING air quality sensor in Home Assistant with ESPHome
IKEA Vindriktning air quality sensor running Tasmota
https://blakadder.com/vindriktning-tasmota/
Mega thread at Home Assistant community, what appears to be the original work
https://community.home-assistant.io/t/ikea-vindriktning-air-quality-sensor/324599