From 1269031d11771550c0086b9616d5997fd26aef08 Mon Sep 17 00:00:00 2001 From: Jan Bouwhuis Date: Wed, 27 Mar 2024 16:46:42 +0100 Subject: [PATCH] Change min and max humidity for MQTT climate and humidifier (#114292) Allow floats for humidity on mqtt platforms --- homeassistant/components/mqtt/climate.py | 14 +++++++------- homeassistant/components/mqtt/humidifier.py | 6 +++--- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/homeassistant/components/mqtt/climate.py b/homeassistant/components/mqtt/climate.py index cb1274c7665..972bf02ecea 100644 --- a/homeassistant/components/mqtt/climate.py +++ b/homeassistant/components/mqtt/climate.py @@ -272,12 +272,12 @@ _PLATFORM_SCHEMA_BASE = MQTT_BASE_SCHEMA.extend( vol.Optional(CONF_FAN_MODE_STATE_TOPIC): valid_subscribe_topic, vol.Optional(CONF_HUMIDITY_COMMAND_TEMPLATE): cv.template, vol.Optional(CONF_HUMIDITY_COMMAND_TOPIC): valid_publish_topic, - vol.Optional(CONF_HUMIDITY_MIN, default=DEFAULT_MIN_HUMIDITY): vol.Coerce( - float - ), - vol.Optional(CONF_HUMIDITY_MAX, default=DEFAULT_MAX_HUMIDITY): vol.Coerce( - float - ), + vol.Optional( + CONF_HUMIDITY_MIN, default=DEFAULT_MIN_HUMIDITY + ): cv.positive_float, + vol.Optional( + CONF_HUMIDITY_MAX, default=DEFAULT_MAX_HUMIDITY + ): cv.positive_float, vol.Optional(CONF_HUMIDITY_STATE_TEMPLATE): cv.template, vol.Optional(CONF_HUMIDITY_STATE_TOPIC): valid_subscribe_topic, vol.Optional(CONF_MODE_COMMAND_TEMPLATE): cv.template, @@ -865,7 +865,7 @@ class MqttClimate(MqttTemperatureControlEntity, ClimateEntity): await self.async_set_hvac_mode(operation_mode) await super().async_set_temperature(**kwargs) - async def async_set_humidity(self, humidity: int) -> None: + async def async_set_humidity(self, humidity: float) -> None: """Set new target humidity.""" await self._set_climate_attribute( diff --git a/homeassistant/components/mqtt/humidifier.py b/homeassistant/components/mqtt/humidifier.py index f3b9cf4c4ff..7c9ba26389c 100644 --- a/homeassistant/components/mqtt/humidifier.py +++ b/homeassistant/components/mqtt/humidifier.py @@ -149,10 +149,10 @@ _PLATFORM_SCHEMA_BASE = MQTT_RW_SCHEMA.extend( vol.Optional(CONF_TARGET_HUMIDITY_COMMAND_TEMPLATE): cv.template, vol.Optional( CONF_TARGET_HUMIDITY_MAX, default=DEFAULT_MAX_HUMIDITY - ): cv.positive_int, + ): cv.positive_float, vol.Optional( CONF_TARGET_HUMIDITY_MIN, default=DEFAULT_MIN_HUMIDITY - ): cv.positive_int, + ): cv.positive_float, vol.Optional(CONF_TARGET_HUMIDITY_STATE_TEMPLATE): cv.template, vol.Optional(CONF_TARGET_HUMIDITY_STATE_TOPIC): valid_subscribe_topic, vol.Optional( @@ -485,7 +485,7 @@ class MqttHumidifier(MqttEntity, HumidifierEntity): self._attr_is_on = False self.async_write_ha_state() - async def async_set_humidity(self, humidity: int) -> None: + async def async_set_humidity(self, humidity: float) -> None: """Set the target humidity of the humidifier. This method is a coroutine.