esphome / esphome/feature-requests

General purpose PID-Controller (or something similar)

Open
#1,871 93 comments 25 reactions 0 assignees View on GitHub
component: pid
Dominant language
No language data
Stars
450
Forks
29
PR merge metrics
No merged PRs in 30d

Description

**Please describe your use case for this integration and alternatives you've tried:**

I'm using ESPHome to control the fan speed of an [Ikea Förnuftig air cleaner](https://www.ikea.com/ch/de/p/foernuftig-luftreiniger-weiss-50461937/) and read the sensor data of an [Ikea Vindriktning PM2.5 sensor](https://www.ikea.com/ch/de/p/vindriktning-luftqualitaetssensor-70498242/).

To control the air cleaner with the sensor data I'm using a PID-Controller (a custom component) inside of Home Assistant.

This solution isn't stable.

**Describe the problem you have/What new integration you would like**
I would really like to access just the sensor data via Home Assistant as Hub with the air cleaner and have a general purpose PID-Controller which runs on the ESP8266.

The [Climate PID Controller](https://esphome.io/components/climate/pid.html) could maybe be repurposed for this, but I'm really not sure if reading PM2.5 particle counts and reinterpret them as °C is the right thing to move forward here.

---

I'm also planning to integrate my exhaust hood as well as the exhaust fan in the bathroom into the home automation. For both I would need a controller which can interpret the VOC
and humidity readings (and compare the humidity readings against a baseline reading from the hallway) and select the right fan speed based on that.

I would like to use a PID-Controller for this as well. Say substract the baseline humidity from the local sensor reading in the bathroom and the kitchen and multiply it with the VOC sensor reading. And set a target of "5" or something like this in the PID controller.

**Additional context**

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the linked Climate PID Controller component and compare its assumptions with the PM2.5, VOC, and humidity use cases described here. Clarify the required inputs, baseline handling, targets, and fan-speed outputs before implementation. Done should cover a stable general-purpose controller usable for the air cleaner and ventilation examples.

Written by the indexing model from the issue text.

Assessment

Domain
embedded-iot
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.