IKEA Vindriktning Air Quality Sensor

The article talks about variable speed but you can also just use it for on/off. When the sensor is not measuring, then ideally the fan would be off. When ready to measure, fan should be turned on and after a few seconds take the measurement if software allows this level of control. I am using a PMS5003 and with that similar sensor it can be done (no need for transistor though with that sensor).

Hej Goram

I am experiencing exactly the same thing but have not found another way than to power cycle the device to reset it.

Best
N3bu

1 Like

Hi!.

I’ve done the way of connecting the EP32 directly to the PM1006 sensor.
I’m receiving values from the sensor so far, but my problem is that such values are way higher than it should be. I’m talking values are from 200 up to 500 and even 600.

What could be the reason?

Thanks!

i have 2, one drift, the other not.
the non-drifting one is in a smoking room where the particle values often goes over 100 or even 200, sometimes even 500

Is there anybody who managed to get the sensor re-calibrated?

When soldering i addecently think i messed up 1 sensors calibration, values dropped by 10 since, and a second unit still displays the old common room values.

The wrong sensor also drops to 0 sometimes.

Can i fix this by anyhow?

I accidently made a connection possible between the connector from sensor, v5 and a resistance. I unmade the connection but somehow the values seem off.

I did it the hard way: I now only use the case of the Vindriktning, but put a Sensirion SPS30 and a Sensirion SCD40 together with an ESP-01S in it. Problem solved. :wink:

did you take photos during your build? Would love to see how it looks.

[EDITED]

The SPS30 has 1 more wire to select between UART or I2C comm (float or connected to ground). The remaining are identical to the original PM1006 : V, RX/TX, GND.

You installed the SPS30 to use UART, right? If so, is the original Ikea circuit board properly light up the front LEDs based on what the new PM sensor reports? Somehow I’d think the Ikea board might not properly read the values but I could be wrong. Perhaps the SPS30 reports values “the same way” as the PM1006 making it a drop in replacement?

The SPS30 comes with its own fan and size wise, it’s a lot thinner. Looking inside a vindri and the location of the holes behind the unit to allow air to come in, did you end up installing the new PM close to the bottom of the unit ~around where the origin fan was located?

Thanx!

Just ordered a new VINDRIKTNING… It arrives around the 27:th… :frowning:
Will post my findings here, hope it reports all the values with ZHA …

Have a look at this topic on reddit.

https://www.reddit.com/r/homeassistant/comments/11mqslk/ikea_vindstyrka_in_ha_connected_through_zha/

1 Like

Consider starting a new thread.

1 Like

I have one. Works fine with ZHA but does not report TVOC.

Hello!
I try to create a yaml file to read out the PM1006 and BME280, but I’m not able to get both sensors in the yaml file. I was able to create a yaml for the PM1006 and a yaml for the BME280, but there are always an error when I combine both sensors in the yaml. Mostly the error is direct in row 1 for “esphome:”

Anyone any hint for me?

esphome:
  name: air_sensor
  platform: ESP8266
  board: d1_mini

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

ota:
  password: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "xxxxxxxxx"
    password: "xxxxxxxxxxx"

captive_portal:

sensor:
  - platform: pm1006
    pm_2_5:
      name: "Particulate Matter 2.5µm Concentration"
    update_interval: 60s

- platform: bme280
  address: 0x77
  temperature:
      name: "BME280 Temperature"
      oversampling: 16x
  update_interval: 60s

i2c:
  scan: true
  id: bus_a

uart:
  rx_pin: GPIO0
  baud_rate: 9600

From the looks of your spacing, the below sensor block needs to align with your pm1006 sensor block.

- platform: bme280
  address: 0x77
  temperature:
      name: "BME280 Temperature"
      oversampling: 16x
  update_interval: 60s

Just to avoid confusion: The original IKEA board now only powers the sensor. No exchange of data whatsoever.

POC

Final Board


Final product

Not the prettiest board I could imagine, but it gets the job done. The only downside is that the LEDs don‘t mean anything anymore, but putting more wires in there to connect them to the ESP to actually mean something was too much of a hassle for me. Planning on communicating critical values anyway via Alexa.

Sorry, I don’t remember precisely. But I considered two conditions: Putting the sensor‘s inflow close to the grill of the housing. And placing the sensor in the allowed orientation in the specs.

1 Like

Thanks for the images.

but putting more wires in there to connect them to the ESP to actually mean something was too much of a hassle for me.

oh. My fan is making loud noises a few months back. It’s even worst when I hold it to the side. I have since shut it off. Searching around for another alternative that is less prong to fan noise.

Check this fan modification.
" OPTIONAL MODIFICATION (Updated October 26, 2021) :"

Hi @Juande,
I’m experiencing the same issue.
Did you find a cause and/or solution?

Thanks!

Not really. I guess the original microcontroller is adding some offsets

Direct reading gave me always different values

Ah, I’m not using the original microcontroller at all. That’s a bad sign! :sweat_smile: