IKEA Vindriktning Air Quality Sensor

Thanks! If I’ve understood the discussion and the various links to github issues, it boils down to the PM1006K supporting PM1, PM2.5 and PM10, but the PM1006 not doing so and the VINDRIKTNING containing the PM1006. So, Tasmota’s implementation is interpreting some data as PM1 and PM10 on the assumption that this is what is contained in the frame, but this is not officially confirmed by Cubic - actively denied, in fact - and so considered erroneous by @Habbie?


That is correct!


Too sensitive.
Test: electric griddle for fish, located in the kitchen, extractor fan on.
VINDRIKTNING in another place approximately 10 meters away


PS: the fish did not burn and was very good

An alternative conclusion would be that your extractor fan is not compensating for the results of cooking as well as you think. At least the data shows that air quality restores quickly!

That looks good to me. I am not using the IKEA one in the kitchen but I have a Xiaomi airpurifier and a Philips one at two locations in the house both having a direct door or space towards the kitchen.

Even if the kitchen fan is on or off, both of them picks up the smell and turns to higher levels.

The other day, the Philips one was even reporting bad air quality hours later during the night.

It works as expected, I would say.

Damn I want to make this, but it’s sold out everywhere here in The Netherlands.

Hello guys,

How do you find the noise of the built-in fan in Vindriktning? I have bought and modded mine yesterday, but i find the fan is too loud.

Hi @Mosher,

Please read back the topic. There are a decent amount of discussion about the fan’s noise level, together with different solutions how to reduce it.

Thanks for a reply. I have read those posts, but the topic is left open. Reducing speed will affect intended readings in my opinion.

Probably. But unfortunately there is no good solution.

I sleep in a room with an airpurifier, and I have a mosquito trap which has a blue/purple light to lure and a fan to suck the little bastards into a trap. Both makes noise, but I sleep quite well with it.
Might be if you set the fan to run continuously from the 3V terminal that would make it more acceptable for you.

But of course it all depends on your sensitivity. I also have an old clock as well which hits half’s and hours as well, and I sleep so well with it. What wakes me up is really when the noise stops… :wink:

Man! I envy you!

1 Like

I spent a lot time working and living next to running generators or engines. So I learnt to sleep this way. And really a blackout or engine stop wakes me up.

But there used to be times when a ticking clock or watch could make me stay awake for hours.

Unfortunately, I am totally disappointed. I can hear this sensor from 6m away. For me it’s unacceptable. I will return it.

Hi all,

did anyone get the PM1006 disassembled from the Ikea case running standalone without the controlling PCB? I’ve tried to attach it to my ESP32 and set up an update interval of 20 sec. As far as I
Unfortunately I don’t get any values. What makes me wondering most that I dont see much on the console.

[17:03:51][C][pm1006:017]: PM1006:
[17:03:51][C][pm1006:018]:   PM2.5 'Particulate Matter 2.5µm Concentration'
[17:03:51][C][pm1006:018]:     Device Class: 'pm25'
[17:03:51][C][pm1006:018]:     State Class: 'measurement'
[17:03:51][C][pm1006:018]:     Unit of Measurement: 'µg/m³'
[17:03:51][C][pm1006:018]:     Accuracy Decimals: 0
[17:03:51][C][pm1006:018]:     Icon: 'mdi:blur'
[17:03:51][C][pm1006:019]:   Update Interval: 20.0s

I would at least expect an entry every 20 sec.
The uart is also set up and connected. It doesnt matter if it is the one at GPIO1+3 or another one:

  rx_pin: GPIO26   #gb
  tx_pin: GPIO25   #gn
  baud_rate: 9600
  id: "uart3"

and that’s my config of the sensor:

  - platform: pm1006
      name: "Particulate Matter 2.5µm Concentration"
    update_interval: 20s
    uart_id: "uart3"

Any idea what’s wrong?

I’m one step further: After enabling VERBOSE log I can see that requests are send but it seems that no data is received:

[12:21:50][V][pm1006:024]: sending measurement request
[12:21:50][V][pm1006:038]: Byte 0 of received data frame is invalid.

Can it be the case that the PM1006 expects another UART level? The ESP32 has a 3,3V level, correct? The datasheet says:

◆UART communication:
UART level range
-UART RX: 0~4.5V data input
-UART TX: 0~4.5V data output

Can that be an issue?

I am tagging @Habbie, he might can answer your questions.

I have the same issue, on one sensor I also had the BME680 BSEC integration running, after removing that and using the normal BME680 I got readings from the PM1006 and ADC again. On a different sensor I have the BME280, and the PM1006 is not working after removing the IKEA MCU and going full ESP8266, unfortunately I can’t set the logging level to verbose/very_verbose, it conflicts with the bme280 library, so I’ll try to add a level shifter between the esp TX and sensor RX tomorrow to see how it goes.

I’m going to add a ‘me too’ to this. I really wanted to combine this sensor with a CO2 sensor, so I have added a MHZ19B sensor to this.

All done with a Wemos D1 Mini I had lying around.

The boards/sensor stuck on with 3M command strips - these are great as if you pull the tabs slowly, the sticky pad just comes off! I tend to try and use sockets so I can remove the sensors if necessary.

ESPHome even provides the ability to baseline calibrate via a service call :slight_smile:

    - service: mhz19_01_calibrate_zero
        - mhz19.calibrate_zero: mhz19_01

  - id: uart_air
    rx_pin: D2
    baud_rate: 9600
  - id: uart_co2
    rx_pin: RX
    tx_pin: TX
    baud_rate: 9600

  - platform: pm1006
    uart_id: uart_air
      name: "Particulate Matter 2.5µm Concentration"
  - platform: mhz19
    id: mhz19_01 
    uart_id: uart_co2
      name: "CO2 Sunroom"
      name: "MH-Z19 Temperature"
      accuracy_decimals: 2
    update_interval: 60s
    automatic_baseline_calibration: false

1 Like

Yes, ESP32 is 3v3, but it worked for me.

If you turn logging up even more, the uart will log all data sent and received - can you try that?

1 Like

Are you powering it with 5V?