IKEA Vindriktning Air Quality Sensor

Do you have a multimeter? Can you check that do you have any continuity between REST and the pad next to it ISPD? And between REST and any other pads? Do this without powering the device or anything.

Use the diode test function for this.

If you don’t have any continuity then power on the device and try to measure DC Volt between Ground and REST, or connect a logic analyser, but that is something what not everyone keeps in their drawer.

So make sure that you haven’t shorted the REST with any other pad, and you have signal output on REST.

Check that your cable is good as well and it is not broken inside.

These are some basic troubleshooting steps what I would do to verify what is going on with the electronics.


  • I tested the continuity and none exists between pads
  • I checked the Volt in REST and Ground and I get 0.71 (2 scale) and 0.07 (20 scale)…
  • I have continuity between REST and D2 in the D1 Mini


Can you see any change in that? (I am not sure that the multimeter can pick it up or not.)

I see minor changes, but don’t know if is errors in the multimeter

Should be, that’s how the UART should work. If you would see a constant DC, that would mean no data output. Regarding the range of 0.7 V, I am not sure that it is the right level, I haven’t tested mine. But it seems to be all working fine from the device side, so must be something with the ESPHome config or the ESP itself.

Have you tried to change the GPIO in the settings and move your cable there?

Turns out there is room for a ESP01 and a small 5V->3.3V converter beside the main control board. That way it cannot disturb the airflow in any way (not that I know if it matters that much. Had to cut off a small part, though (red circle).

What a great little discovery this interface possibility is! Pleasantly surprised these IKEA sensors are only around $10 here in Norway.


It took me a while this morning until I realised where you fitted that two boards. It looks really good!

I’ve just noticed this.

Try to change it to this if you use a Wemos D1 Mini:

board: d1_mini

I had node mcu because I had tested with one node mcu, but now I have it correctly set to d1_mini…

I’m starting to accept that probably the problem is in the Ikea sensor, and not on my side! I can’t understand why it would not work

Someone posted a similar issue at @Hypfer’s original GitHub repo.

If it wasn’t you then some other people has similar issue like you.

I am really sorry, but I cannot think of anything else.

At last, I would try to strip down to bare minimum the config, or try another sensor with the ESP, but really I don’t have any other ideas.

This is a great hack. Got yesterday last two devices from the nearest IKEA :smiley:

I tried to use the statistic-graph with this but the sensor is not available. I did set state_class: "measurement" to the sensor but still nothing.

Reading https://developers.home-assistant.io/docs/core/entity/sensor/#long-term-statistics I get the impression that the device_class should be something compatible? The list for devices does not have anything with µg/m³ as the unit. Is that the reason statistic-graph is not working?

Hi Gabor,

I see you wired/configured the ikea device with DHT22 and wemos d1 mini.
Could you please share the wiring and the config?


So cool that this will be already supported with the next ESPHome release. I’m tempted to go buy one VINDRIKTNING. It’s even available here.

What is actually the output of the sensor. Does it give a reading in µg/m³ and is it halfway exact?

I used a Wemos Mini DHT22 Shield, a Wemos Dq Mini and male dupont cables. GND from IKEA goes to DHT22’s GND the pin next to the GND is not used by the shield so soldered GND and the next pin together. From that pin GND goes to the Wemos.

5V goes from IKEA to the Wemos.

REST goes from IKEA to the Wemos D2 pin.

Wemos D4 pin goes to DHT22 Data.

Wemos VCC (3V) goes to DHT22 VCC.

It is a bit too crowded inside. I placed everything above the pm1006 sensor but if you do not use dupont connectors, but wires only or maybe the solution above with the ESP01 and the 5V->3V converter and a single DHT22 under the fan, you might get a more reliable configuration without blocking any airflow.

Here is the config, I used at that time @Habbie’s repo as an external component, but now you should use @sermayoral’s repo as @Habbie’s code adds a new icon to ESPHome what cannot be picked up as an external component. (Read the GitHub PR from the OP for clarification.) The external component solution is needed until the new version of ESPHome releases the pm1006 component.

  name: cellar-air-quality
  platform: ESP8266
  board: d1_mini

# Enable logging

# Enable Home Assistant API

  password: "xxxx"

  ssid: "wifi"
  password: "password"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
    ssid: "Cellar-Air-Quality"
    password: "xxxx"


  - source: github://Habbie/esphome@pm1006
    components: [ pm1006 ]
  rx_pin: D2
  baud_rate: 9600

  - platform: dht
    pin: D4
      name: "Cellar Temperature"
      name: "Cellar Humidity"
    model: DHT22
    update_interval: 10s
  - platform: pm1006
      name: "Cellar Air Quality"
  - platform: restart
    name: "Cellar Air Quality Sensor Restart"

If any issue drop me a message.


Yes, the readings are in ug/m3 but I would say they’re pretty off. About three of four times too high, but sometimes just two times, so it is hard to convert them. Sometimes it also output “spikes” with even higher values.

Thank you. What is the output of the sensor? Is it a numeric value?

Yes, but I have also created a text sensor with values low/medium/high, according to this IKEA Vindriktning Air Quality Sensor - #34 by rindlerblabla.

Somebody made a custom pcb and used a connector on the main board. Looks also nice.

Hackaday: IKEA Vindriktning PCB

1 Like

The comparison which shows that the values are way too high.


Can you try to increase the particle content of the air to trigger the IKEA ones to go amber or red? Just to see that the values match with the IKEA description.
If the calculation is off then they will show far more higher values than what the color should represent.