Skip to content

[Feature Request] - External Humidity Sensor Support #1964

@BTopbas

Description

@BTopbas

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions