PM1006 tx pin on IKEA air sensor

Getting an error in 2025.12.0b4: " Component pm1006 requires uart referenced by uart_id to declare a tx_pin."

However official documentation found here: PM1006 Particulate Matter Sensor - ESPHome - Smart Home Made Simple states “In common usage, with the IKEA VINDRIKTNING still controlling the pm1006 sensor, there is no update interval, and this implementation will passively pick up whatever the VINDRIKTNING MCU has requested from the sensor.” Which implies that a tx is not required, and prior to the latest beta, was not required.

Is the requirement for a TX pin correctly being enforced going forward, or can we roll it back. Can I just pick a pin at randomans see if it works?

Appreciat any help.

Thanks.

1 Like

So the example config from next docs gives that error?

Yes exactly.

I’ll cut and paste when I get home.

I am getting the same thing. Here is the full error:

INFO ESPHome 2025.12.0
INFO Reading configuration /config/esphome/living-room-air-quality.yaml...
Failed config

uart: [source /config/esphome/living-room-air-quality.yaml:32]
  
  Component pm1006 requires uart referenced by uart_id to declare a tx_pin.
  - rx_pin: 
      number: 4
      mode: 
        input: True
        output: False
        open_drain: False
        pullup: False
        pulldown: False
        analog: False
      inverted: False
    baud_rate: 9600
    rx_buffer_size: 256

And here is my very basic config:

esphome:
  name: living-room-air-quality
  friendly_name: living_room_air_quality
  
esp8266:
  board: nodemcuv2

logger:
api:
  encryption:
    key: "redacted"

ota:
 - platform: esphome
   password: "redacted"

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

  ap:
    ssid: "Living-Room-Air-Quality"
    password: "redacted"

captive_portal:

uart:
  rx_pin: D2
  baud_rate: 9600

sensor:
  - platform: pm1006
    pm_2_5:
      name: "IKEA Vindriktning PM2.5 sensor"

Just ran into the same issue.

The solution: define a TX pin (identified as optional in the documentation, but apparently now required).

Should solve the issue immediately.

I just chose a random GPIO pin, there is likely a better way.

2 Likes

Base code fixed, don’t know which release it will be in

2 Likes

Thank you very much!!

Confirmed working in 25.12.1

1 Like