Particle concentration readings

Hello
I placed new Airgradinet sensor next to Vindstryka. It looks like Particle concentration readings are quite noise with Airgradient. Please see comparizon:

Thanks

This is Airgradient

The Airgradient numbers seem smaller overall, but since the overall scale of the graphs has changed significantly, it may look like it has more noise/jumping around, but each line is 0.5 ug, compared to the top graph where each line is 1.0 ug.

Are you able to overlay these two on to a single graph and maybe only show one measurement, like the 2.5 value to give a better comparison?

Here we go

Is the frequency of measurement of both sensors the same and is any of the sensors doing a moving average?

This is Vindstryka:

# I2C config as SEN54 is connected on that bus
i2c:
  scl: GPIO21
  sda: GPIO22
  scan: true
  id: bus_a

# Example configuration entry
sensor:
  - platform: sen5x
    id: sen54
    pm_1_0:
      name: " PM <1µm Weight concentration"
      id: pm_1_0
      accuracy_decimals: 1
    pm_2_5:
      name: " PM <2.5µm Weight concentration"
      id: pm_2_5
      accuracy_decimals: 1
    pm_4_0:
      name: " PM <4µm Weight concentration"
      id: pm_4_0
      accuracy_decimals: 1
    pm_10_0:
      name: " PM <10µm Weight concentration"
      id: pm_10_0
      accuracy_decimals: 1
    temperature:
      name: "Temperature"
      id: Sen54_T
      accuracy_decimals: 1
    humidity:
      name: "Humidity"
      id: Sen54_H
      accuracy_decimals: 0
    voc:
      name: "VOC"
      id: tVOC
      algorithm_tuning:
        index_offset: 100
        learning_time_offset_hours: 12
        learning_time_gain_hours: 12
        gating_max_duration_minutes: 180
        std_initial: 50
        gain_factor: 230
    temperature_compensation:
      offset: -5.0
      normalized_offset_slope: 0
      time_constant: 0
    acceleration_mode: low
    store_baseline: true
    address: 0x69
    update_interval: 10s

THis is Airgradient:

uart:
  - rx_pin: D5
    tx_pin: D6
    baud_rate: 9600
    id: uart_1

  - rx_pin: D4
    tx_pin: D3
    baud_rate: 9600
    id: uart_2

sensor:
  - platform: sht4x
    temperature:
      id: temp
      name: ${upper_devicename} Temperature
    humidity:
      id: humidity
      name: ${upper_devicename} Relative Humidity
    address: 0x44
    update_interval: 10s

  - platform: pmsx003
    type: PMSX003
    uart_id: uart_1
    pm_1_0:
      id: pm_1_0
      name: "${upper_devicename} Particulate Matter <1.0µm Concentration"
    pm_2_5:
      id: pm_2_5
      name: "${upper_devicename} Particulate Matter <2.5µm Concentration"
    pm_10_0:
      id: pm_10_0
      name: "${upper_devicename} Particulate Matter <10.0µm Concentration"
    pm_0_3um:
      id: pm_0_3um
      name: "${upper_devicename} Particulate Matter >0.3µm Count"
    pm_0_5um:
      id: pm_0_5um
      name: "${upper_devicename} Particulate Matter >0.5µm Count"
    pm_1_0um:
      id: pm_1_0um
      name: "${upper_devicename} Particulate Matter >1.0µm Count"
    pm_2_5um:
      id: pm_2_5um
      name: "${upper_devicename} Particulate Matter >2.5µm Count"
  
    update_interval: 120s # Sensor will go into sleep mode for extended operation lifetime

  - platform: senseair
    uart_id: uart_2
    co2:
      id: co2
      name: "${upper_devicename} SenseAir CO2 Value"
    update_interval: 60s


More recent readings with higher numbers (airgradient has is about 10um/m3

I would recommend you put the AirGradient PM sensor from 120s interval to 10a like the Ikea one.

In general the Plantower tend to overstate PM 2.5 and the Sensirion often understate it.

We are in the process to develop algorithms for compensation. You can read more about it on our research page.

1 Like

Hi
You can’t put 10s for Plantower, min is 30s. I checked yesterday all possible variations, and it is still much more noisier.
Another observation - I’ve listen very carefully fan operation. In Sensirion it is constantly on, in Airgradient is is off/on all the time. If it possible to change the setting to make fan work constantly?

Not sure this is a root cause, but still I want to try it

Thanks

Switching on and off the fan will make the readings less stable as the sensor needs a constant air flow. It works be good to avoid that.

This hasn’t been my experience with ESPHome at all. By default the update_interval is 0s which means it gets it as soon as it comes from the sensor, and for me, that is every second.
PMSX003 Particulate Matter Sensor — ESPHome

Mine stays on, unless I extend it out to 120s as mentioned in the link to try to extend life, but I have been wondering if it impact the accuracy, so I was going to try two side by side with one updating every second and one every 2 minutes

How?
I did not do it intentionally and I do not see anything in code that make it happen

This is super strange. Just put “0s” interval, and it excepted it.
But 5, 10 or any other number below 30s is red

Here is the chart that reflects the change from 60s interval to 0s interval for Airgardient (change was done at 9:00pm)
Still, noise is pretty significant (vs Vindstyrka)