Feature Request: External Humidity Sensor Support
Summary
I would like to be able to assign an external humidity sensor to a Versatile Thermostat entity so that current_humidity is reported from that sensor rather than (or in addition to) the underlying climate entity.
Motivation
In over_climate mode, current_humidity is currently read directly from the underlying climate entity (e.g. a heat pump or AC unit). However, many users have a dedicated humidity sensor placed in a more representative location (e.g. center of the room), which provides a more accurate reading.
This is already the pattern used for sensor_entity_id (room temperature) and external_temp_sensor_entity_id (outdoor temperature) — a dedicated sensor takes precedence over the underlying entity's reported value.
Additionally, many climate devices (e.g. simple IR-controlled AC units, radiator valves, or third-party integrations) do not expose a humidity value at all. In these cases, current_humidity is always None and there is currently no way to populate it from an external source.
Proposed Behavior
- Add a new optional config field:
humidity_sensor_entity_id
- If configured,
current_humidity should return the value from this sensor
- If not configured, fall back to the existing behavior (read from underlying climate entity)
- The value should be exposed as the standard HA
current_humidity attribute so it is visible in:
- The Lovelace thermostat card
- Apple Home / HomeKit (
CurrentRelativeHumidity characteristic)
- Any other integration that reads the standard ClimateEntity attribute
Implementation Notes
I have already implemented this locally and it works as expected. The required changes are:
const.py
CONF_HUMIDITY_SENSOR = "humidity_sensor_entity_id"
base_thermostat.py
- Track state changes of the humidity sensor entity
- Read initial value on startup
- Store value in
_cur_humidity, _attr_current_humidity, and _humidity
thermostat_climate.py
- Override
current_humidity to prefer the external sensor when configured, falling back to underlying_entity(0).current_humidity otherwise
Use Case
- VTherm type:
over_climate
- Underlying entity: Heat pump / AC unit
- Desired sensor: Dedicated room humidity sensor
- Goal: Accurate humidity reading in HA thermostat card and Apple Home
Feature Request: External Humidity Sensor Support
Summary
I would like to be able to assign an external humidity sensor to a Versatile Thermostat entity so that
current_humidityis reported from that sensor rather than (or in addition to) the underlying climate entity.Motivation
In
over_climatemode,current_humidityis currently read directly from the underlying climate entity (e.g. a heat pump or AC unit). However, many users have a dedicated humidity sensor placed in a more representative location (e.g. center of the room), which provides a more accurate reading.This is already the pattern used for
sensor_entity_id(room temperature) andexternal_temp_sensor_entity_id(outdoor temperature) — a dedicated sensor takes precedence over the underlying entity's reported value.Additionally, many climate devices (e.g. simple IR-controlled AC units, radiator valves, or third-party integrations) do not expose a humidity value at all. In these cases,
current_humidityis alwaysNoneand there is currently no way to populate it from an external source.Proposed Behavior
humidity_sensor_entity_idcurrent_humidityshould return the value from this sensorcurrent_humidityattribute so it is visible in:CurrentRelativeHumiditycharacteristic)Implementation Notes
I have already implemented this locally and it works as expected. The required changes are:
const.pybase_thermostat.py_cur_humidity,_attr_current_humidity, and_humiditythermostat_climate.pycurrent_humidityto prefer the external sensor when configured, falling back tounderlying_entity(0).current_humidityotherwiseUse Case
over_climate