Traducido del English por IA ·
Pasé años analizando datos de cadena de frío con exactamente este patrón. Parte de tu acoplamiento está en la propia variable medida, porque la HR depende de la temperatura. Cada vez que el calentador sube la temperatura del aire 1 C, la HR a esa misma humedad absoluta baja unos 3 a 4 puntos; por eso tu bucle de humedad reacciona al calentador aunque no haya salido agua del aire.Dos cambios que normalmente lo resuelven:1. Controla una medida de humedad que no cambie con la temperatura: humedad absoluta (g/m3) o punto de rocío. Calcúlala en el ESP32 a partir de la temperatura y la HR (fórmula de Magnus) y haz funcionar el humidificador con ese valor. Con un setpoint de temperatura fijo, 60 %HR a 25 C equivalen a unos 13,8 g/m3, así que ese será tu setpoint.2. Separa las velocidades. Mantén el bucle de temperatura rápido y haz que el de humedad sea al menos 5 veces más lento (un tiempo mínimo de encendido y apagado para el humidificador, por ejemplo 60 s cada uno, y una banda muerta de unos 0,5 g/m3). Así, el bucle de temperatura absorberá el enfriamiento de la niebla antes de que el bucle de humedad tome cualquier decisión.Para la placa, el gráfico de Megan es el adecuado. En las filas Series del gráfico de líneas, configura rh y humid_on en Value axis Right, añade una línea de umbral en tus setpoints y envía abs_hum como quinta clave para poder vigilar el nuevo bucle. La configuración de los gráficos está en Chart cards.
I spent years staring at cold chain data with exactly this pattern. Part of your coupling sits in the measured variable itself, because RH depends on temperature. Every time the heater raises the air temperature by 1 C, RH at that moisture content drops by roughly 3 to 4 points, so your humidity loop reacts to the heater even when no water has left the air.
Two changes that usually settle it:
1. Control a humidity measure that doesn’t move with temperature: absolute humidity (g/m3) or dew point. Compute it on the ESP32 from temp and RH (Magnus formula) and run the humidifier on that. At a fixed temp setpoint, 60 %RH at 25 C is about 13.8 g/m3, so that becomes your setpoint.
2. Separate the speeds. Keep the temperature loop fast and make the humidity loop at least 5 times slower (a minimum on time and off time for the humidifier, say 60 s each, and a deadband of about 0.5 g/m3). Then the temperature loop absorbs the mist’s cooling before the humidity loop decides anything.
For the board, Megan’s chart is the right one. In the line chart’s Series rows set rh and humid_on to Value axis Right, add a threshold line at your setpoints, and send abs_hum as a fifth key so you can watch the new loop. Chart settings are on Chart cards.

