IKEA Vindriktning Air Quality Sensor

I think this documentation has the answer for your question.



I see “Mean Time To Failure ~ >-5yr” ? That’s pretty good!

I understand the lifetime of the ones that use a laser light are driven by it’s shorter lifetime.

I guess that’s it. I had no clue what MTTF, but happy to see that you knew it.

I guess the fan makes it prolonged as it supposed to clean as well the sensor, as it was discussed in the Hackaday article’s comments section.

1 Like

This was just waiting for someone to connect it with an ESP. Simple and cheap solution!

One thing I struggle with a bit is all these ‘ESP-Hacks’ are just generating a lot of wifi connections, isn’t that a bit overkill for the network?

now my hard part has been finding these in the US it seems like every Ikea in 100 miles of me is out of stock.

1 Like

It depends what router you have. Some have limitations for number of connections like 16 or 32. In that case, yes it is an overkill. But generally not the dirt cheap bottom of the line routers access points can handle a higher number of clients and these devices generally do not use high bandwidth. Plus, for any device what you generally use to access the internet would use nowadays 5Ghz, meanwhile these ESP devices use only the 2.4Ghz frequency. So like your phone, Chromecast, laptop, tablet etc would use a faster access than these devices and they would not interfere with each other.

Anyone who was compared rhe values with other particulate sensors? Have just been running the sensor for a couple of hours but the values seems pretty off compared to my Sensirion sps30 sensor (SPS30 Particulate Matter Sensor — ESPHome) and the outdoor values (Luftdaten sds011). The values are about three or four times greater than what the other sensors measures. Sps30 (indoor) measures 2.23 ug/m3, sds011 (outdoor) 2.35 ug/m3. The vindriktning sensor, which is placed just next to the sps30 8 ug/m3.


I just want to say be very careful with soldering (or maybe I’m just very bad at it).
In my case the + pad on the board came loose and when I tried to fix it somehow it came loose all the way to the edge of the board.

Any tips for what the best way is to solder this, let me know :).
Like do you put tin first on the pad and then solder the wire to the pad?

Guess I’ll have to buy a new one :frowning:

1 Like

I was thinking about stripping the original pcb and drive the sensor + status leds directly with the wemos.
This way the status leds could be used for other thing (messages, alarm etc etc).
Maybe add some pressure/temp and CO2 sensors.
Give it a try before trashing it!

1 Like

I believe here is the answer why the PCB has those connectors at the end:


I cannot see any information what solution it will have Wifi or Zigbee, but I am pretty sure someone will find some time to tinker with it once it is released. (My guess would be Wifi and using the already implemented CoAP from the Tradfri bridge.)

@Habbie, @Hypfer

1 Like

Just built one of these, pretty easy and fun! Thanks for showing us how to mod one, I think it’s a great ESPHome starter project.

I was just wondering about the PM1006 sensor. I thought a PM2.5 sensor means that it’s detecting only particles smaller than 2.5. But the sensor datasheet seems to indicate it detects between 0.3 and 10 micrometer? Doesn’t that make it a PM10 sensor? Or don’t I understand the PM definitions correctly?

@rindlerblabla I think this might also be why you see differing values between your other PM2.5 sensors and the IKEA one. If it’s actually a PM10 sensor, wouldn’t it catch much more particles than a true PM2.5 and thus return a much higher value?

But my other sensors also output PM10, and the IKEA vindriktning sensor is about as much higher than those values as well. Right now it says 9ug/m3. Sps30 indoor, which is placed just next to the IKEA sensor is 1.43ug/m3, the outdoor sensor says 2.38ug/m3.

I will filter the values and create a text sensor instead, with the values according to the manual - low, medium, high. The number values are too unspecific to use.



Just seen this project and great mod. well done OP

Question . Can we use tasmota on the wemos and is the ikea sensor compatible ?

If you build the component for Tasmota, then of course. The Wemos just does UART RX and decodes the values what was received. But this ia not implemented out of the box for Tasmota, only for ESP Home currently.

If you do add that code to the Tasmota project, please report back here and I will add it to the OP as well.

I’m keeping the numbers - be they what they may - but added color ranges to my graph so it’ll show up orange/red when PM becomes medium/high according to their stats.

So far so good, all green :slight_smile:

1 Like

I did something similar with Apex charts, my pms7003, and my Xiaomi Air Purifier.

And actually I used the sensor and my air purifier together in a Generic Thermostat - unit is wrong but functions fine.

Mobile screen shot so doesn’t look as nice.

Take a guess when I’m cooking:)

I use the Australian quality thresholds.


Hey guys, just an idea.

It would be very cheap and easy to add a TM1637 number display to this. Cheap as.

Hardest bit would be cutting a hole for it I guess?

1 Like

Hello all, I’ve tried to use the @sermayoral fork to use the @Habbie code from esphome… All is installed, but no data is returned! I checked the connections and all seems ok, I also desoldered and soldered again, and nothing! This is my code:

  name: livingroom-particulate-matter
  platform: ESP8266
  board: nodemcuv2

# Enable logging

# Enable Home Assistant API


  ssid: !secret wifi_ssid
  password: !secret wifi_password
  fast_connect: true
  domain: .myhome
    ssid: "livingroom_particulate_matter"
    password: !secret wifi_ap_password


  port: 80

  broker: !secret mqtt_broker
  discovery: false
  topic_prefix: "esphome/livingroom_particulate_matter"
# Example configuration entry
  rx_pin: D2
  baud_rate: 9600

  - platform: pm1006
      name: "Livingroom Particulate Matter 2.5µm Concentration"
  - source: github://sermayoral/esphome@pm1006
    components: [ pm1006 ]

Any help would be welcome