IKEA Vindriktning Air Quality Sensor

Thanks for share the way!
It’s really easy connect to ESPhome & HA
I also put DHT22 in it, here’s my setup & code:

  name: ikea-pm25
  platform: ESP8266
  board: d1_mini

# Enable logging

# Enable Home Assistant API


  ssid: !secret my_ap_ssid
  password: !secret my_ap_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
    ssid: "Ikea-Pm25"
    password: !secret the_ap_password

  rx_pin: D2
  baud_rate: 9600

  - platform: pm1006
      name: "PM2.5 sensor"

  - platform: dht
    pin: D5
      name: "Temperature"
      name: "Humidity"
    update_interval: 30s

Hi guys!

Have you noticed that your reading will either stay the same for very long time or will change to unknown after home assistant reboots?

I’m, running esp32 with esphome, with config same as everyone else’s above :slightly_smiling_face:

Thanks for any input!

Great solution!
I would be very grateful if you could share your yaml configuration

Tasmota now supports Vindriktning. Currently it is required to compile your own firmware with


webui !

1 Like

How are the 3 different values? Full RX/TX UART support?

@Habbie, you might want to have a peek on this…

Full RX/TX is in pm1006: add support for sending a measurement request by Habbie · Pull Request #2214 · esphome/esphome · GitHub

I also saw the two other numbers in the data frame from the pm1006, but the datasheet does not say what they are, so I did not make a separate sensor output for them. If somebody has good information on what they are, we can add them, of course.

(reading calculation appears to be wrong · Issue #3 · Hypfer/esp8266-vindriktning-particle-sensor · GitHub has some earlier discussion on the other numbers in the frame)

1 Like

The PM1006K is not the PM1006

The Tasmota code is at Tasmota/xsns_91_vindriktning.ino at 03b26adf07b6ee5f42a9511eaae6fece3948cb0d · arendst/Tasmota · GitHub - it indeed appears to be based on mixing the PM1006 and PM1006K datasheets :slight_smile:

Judging from the code, the Tasmota implementation is RX-only, like the one currently in ESPHome (but see my PR above for adding TX to the one in ESPHome).

I was assuming RX/TX, as I’ve never seen the other two values before, and though the PM2.5 was only due because the TX from the device queries only that. But now I understand the whole thing.

It is interesting that there are PM1006 and PM1006K sensors, with identical look and far too similar specs and behaviour. I have a feeling that the PM1006 is a sensor which fails on the higher specs PM1006K’s QC process or missing some calibration. (The PM1 on the previous picture looks extreme for me, that’s why I think the above.) Someone should ask Cubic what is the difference if any.

I emailed Cubic 20 minutes ago to ask about the other values in the PM1006 response :smiley: I did not ask about the difference between the two products.

Also interesting: Cubic’s Chinese site only lists the pm1006; the English site only lists the pm1006k. They are both ‘article 105’.

As for the extreme ‘PM1’ value (which we are assuming is because of how the responses from the pm1006k look), you can also see that at reading calculation appears to be wrong · Issue #3 · Hypfer/esp8266-vindriktning-particle-sensor · GitHub - it’s the 06 9f column.

1 Like

I’ve also just reached a similar conclusion as searching for PM1006 on Google. It brings up PM1006K articles where it is just referenced as PM1006. So, it might be some naming thing and they should be the same. Let’s wait for their answer.

By the way, after browsing their website, if you ever come across one of their AM7000 device for a reasonable price, then please let me know. It looks really tempting…

I found one for EUR 149 - I guess that’s not reasonable? :money_mouth_face:

I thought of something closer to 49 Euro. :wink:

By the way, what is the TX message to the sensor from the IKEA device? Maybe that is the problem. The document says what it should be to query the measurements. Maybe that has some difference.

Read measures result of particles: 
 Send: 11 01 02 EC

Haha, I had not read your post yet until I came here to comment, but: I just sent it 11 01 02 EC and then I get a frame back that matches the PM1006K datasheet. PM2.5 value matches what I get from the PM1006-style command. PM1.0 and PM10 are zero.

The IKEA MCU sends 0x11, 0x02, 0x0B, 0x01, 0xE1, like the PM1006 datasheet says.

I did a guide on making it work with Tasmota and went a bit overboard with air quality sensoring - IKEA Vindriktning air quality sensor running Tasmota | Blakadder's Smarthome Shenanigans


Running into same issue, does someone have a solution? I used nodemcuv2

I’m convinced that my sensor is damaged! I’ll get a new one to test it out