avd706
(Avd706)
December 16, 2025, 6:20am
1
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
Karosm
(Karosm)
December 16, 2025, 8:42am
2
So the example config from next docs gives that error?
avd706
(Avd706)
December 16, 2025, 5:18pm
3
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"
1PlusN
(Chris)
December 17, 2025, 3:06am
5
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
1PlusN
(Chris)
December 17, 2025, 9:42pm
6
Base code fixed, don’t know which release it will be in
dev ← jackwilsdon:fix-never-update-interval
opened 12:27PM - 17 Dec 25 UTC
# What does this implement/fix?
Fixes detection of `never` update interval fa… iling, causing `pm1006` to incorrectly require a TX pin.
## Types of changes
- [x] Bugfix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Developer breaking change (an API change that could break external components)
- [ ] Code quality improvements to existing code or addition of tests
- [ ] Other
**Related issue or feature (if applicable):**
- introduced by #12478
- fixes #12526
## Test Environment
- [ ] ESP32
- [ ] ESP32 IDF
- [x] ESP8266
- [ ] RP2040
- [ ] BK72xx
- [ ] RTL87xx
- [ ] nRF52840
## Example entry for `config.yaml`:
```yaml
sensor:
- platform: pm1006
pm_2_5:
name: "Particulate Matter 2.5µm concentration"
uart:
rx_pin: D2
baud_rate: 9600
```
## Checklist:
- [x] The code change is tested and works locally.
- [ ] Tests have been added to verify that the new code works (under `tests/` folder).
If user exposed functionality or configuration variables are added/changed:
- [ ] Documentation added/updated in [esphome-docs](https://github.com/esphome/esphome-docs).
2 Likes
avd706
(Avd706)
December 21, 2025, 4:42pm
8
Confirmed working in 25.12.1
1 Like