Unusual Reporting from Ikea VINDRIKTNING

I have an Ikea VINDRIKTNING connected to a d1 mini running esphome.

Everything works fine, only over time the air quality reading goes up, and up, and up. Then after I remove the power from the VINDRIKTNING and reconnect, the air quality reading drops. Then over time, the reading goes up and up again. Here’s a read out of the data…

You will notice today at approximately 8am I powered off the VINDRIKTNING and then reconnected the power, after which the readings were significantly lower. I have tried this a number of times, and each time I disconnect power and reconnect the air quality readings are much lower.

Not sure why this is happening? I am almost at the point where I am trying to work out a way to reset power each night.

Any suggestions greatly appreciated.

Maybe the sensor does a self calibration when powered on? :thinking:

Something like:

time:
  - platform: sntp
    # ...
    on_time:
      # Every day at 02:30
      - seconds: 0
        minutes: 30
        hours: 2
        then:
          - button.press: esp_restart

button:
  - platform: restart
    id: esp_restart

Thanks @orange-assistant unfortunately I am thinking restarting the d1 mini wont make a difference to the data coming from the Ikea VINDRIKTNING which is also powering the d1 mini.

Restarting power to the VINDRIKTNING requires the USB plug to be removed and reinserted, or I add some kind of relay to the VINDRIKTNING… which I really dont want to do.

I will try restarting the d1 mini and see if that helps. But I suspect the data coming from the VINDRIKTNING is likely to remain high. But worth a try :+1:

So, turns out rebooting the d1 mini makes no difference… but taking the power out of the VINDRIKTNING resets it back to lower readings. Beats me, but I am not going to the trouble of adding a power relay to the VINDRIKTNING. Purchased an SPS30 air quality sensor, so will make my own sensor setup and see what happens.

i use 2 VINDRIKTNING with esp32-pico’s
and i saw the same rise in measurements and the same response to power cycling

in the end i did something similar like @orange-assistant but not in esphome but in HA:
i made an automation which restarts the esp32 every night, which solved the problem

the weird thing, like @gregoinc also noticed, is that a restart of the esp32 should do nothing to the microcontroller of the VINDRIKTNING
so the error must be in the code of esphome ?

Seems the plot thickens… despite restarting the d1 mini each night, the data from the sensor continued to rise. This morning I powered off the VINDRIKTNING and upon restart the data had dropped… see below.

I have ordered a separate SPS30 sensor, as I figure I either spend time building another air quality sensor, or somehow integrating a remote power cycle function in the VINDRIKTNING.

So for now… I will focus on the new sensor setup, unless someone can tell me an easy way to remotely power cycle the VINDRIKTNING?

Greetings @gon could you please share the automation you use to restart the esp? I figure I should at least try that approach to see if it works or not?

Have you considered the possibility that VINDRIKTNING is self-calibrating, and will eventually find a plausible and rational ‘normal’ level to report?
(That is, it might do so, if not rebooted while it attempts to close-in on a stable baseline.)
Sensing equipment - especially if programmed by others and is a black-box to us - might need more samples to establish a baseline from which to reliably report. That might look odd in the short-term, but may make a lot more sense if given time to run, learn, and stabilise.

You raise an interesting argument, which is one of the reasons I purchased an SPS30 sensor. I hope the SPS30 will provide data that I can compare against the data coming out of the VINDRIKTNING. I will most likely run the two sensors in parallel in the same location to see what patterns emerge in the data. The SPS30 has a self cleaning operation, so will be interesting to see if that makes a difference.

although my reboot mechnisms “seems” to work, it behaves differently in my two rooms:
bedroom just went down from 50 to 10 after a power cycle, while the one in my living room does not need the power cycle and seems content with the automated reboot

but the theorie about self-calibration-if-needed seems to be a good guess, as in my living room the values vary wildly, going up to sometimes 300, while the values in the bedroom usually don’t

@gregoinc
this is my automation i use for reboots

alias: onTime Vind-1 Reboot
description: |-
604800 = 1w
172800‬ = 2d
86400 = 1d
trigger:

  • platform: time
    at: ‘01:02:03’
    condition:
  • type: is_value
    condition: device
    device_id: 8ac7bf643ee44a2b1182253d32ddabec
    entity_id: sensor.vind1_uptime_sensor
    domain: sensor
    above: 86000
    action:
  • type: turn_on
    device_id: 8ac7bf643ee44a2b1182253d32ddabec
    entity_id: switch.vind1_restart
    domain: switch
    mode: single

switch.vind1_restart is just the standard restart switch from

I’m seeing the same behaviour - the reading creeps up by about 1 µg/m³ per day - over the course of months it’s comically inaccurate.

Resetting power seems to do the trick, but my esp8266 is powered by the sensor and not vice/versa so I have to physically unplug it :frowning:

Should be noted that I’m not using esphome and instead just arduino with a prometheus metrics endpoint - so it appears to be a fault in the sensor itself