diff --git a/homeassistant/components/homekit_controller/const.py b/homeassistant/components/homekit_controller/const.py index d0dfa9bad4f..db9c534f708 100644 --- a/homeassistant/components/homekit_controller/const.py +++ b/homeassistant/components/homekit_controller/const.py @@ -56,6 +56,12 @@ CHARACTERISTIC_PLATFORMS = { CharacteristicsTypes.Vendor.AQARA_E1_GATEWAY_VOLUME: "number", CharacteristicsTypes.Vendor.AQARA_PAIRING_MODE: "switch", CharacteristicsTypes.Vendor.AQARA_E1_PAIRING_MODE: "switch", + CharacteristicsTypes.Vendor.ECOBEE_HOME_TARGET_COOL: "number", + CharacteristicsTypes.Vendor.ECOBEE_HOME_TARGET_HEAT: "number", + CharacteristicsTypes.Vendor.ECOBEE_SLEEP_TARGET_COOL: "number", + CharacteristicsTypes.Vendor.ECOBEE_SLEEP_TARGET_HEAT: "number", + CharacteristicsTypes.Vendor.ECOBEE_AWAY_TARGET_COOL: "number", + CharacteristicsTypes.Vendor.ECOBEE_AWAY_TARGET_HEAT: "number", CharacteristicsTypes.Vendor.EVE_ENERGY_WATT: "sensor", CharacteristicsTypes.Vendor.EVE_DEGREE_AIR_PRESSURE: "sensor", CharacteristicsTypes.Vendor.EVE_DEGREE_ELEVATION: "number", diff --git a/homeassistant/components/homekit_controller/number.py b/homeassistant/components/homekit_controller/number.py index c2b3dc6d7b3..9c76adf52a9 100644 --- a/homeassistant/components/homekit_controller/number.py +++ b/homeassistant/components/homekit_controller/number.py @@ -41,6 +41,42 @@ NUMBER_ENTITIES: dict[str, NumberEntityDescription] = { icon="mdi:volume-high", entity_category=EntityCategory.CONFIG, ), + CharacteristicsTypes.Vendor.ECOBEE_HOME_TARGET_COOL: NumberEntityDescription( + key=CharacteristicsTypes.Vendor.ECOBEE_HOME_TARGET_COOL, + name="Home Cool Target", + icon="mdi:thermometer-minus", + entity_category=EntityCategory.CONFIG, + ), + CharacteristicsTypes.Vendor.ECOBEE_HOME_TARGET_HEAT: NumberEntityDescription( + key=CharacteristicsTypes.Vendor.ECOBEE_HOME_TARGET_HEAT, + name="Home Heat Target", + icon="mdi:thermometer-plus", + entity_category=EntityCategory.CONFIG, + ), + CharacteristicsTypes.Vendor.ECOBEE_SLEEP_TARGET_COOL: NumberEntityDescription( + key=CharacteristicsTypes.Vendor.ECOBEE_SLEEP_TARGET_COOL, + name="Sleep Cool Target", + icon="mdi:thermometer-minus", + entity_category=EntityCategory.CONFIG, + ), + CharacteristicsTypes.Vendor.ECOBEE_SLEEP_TARGET_HEAT: NumberEntityDescription( + key=CharacteristicsTypes.Vendor.ECOBEE_SLEEP_TARGET_HEAT, + name="Sleep Heat Target", + icon="mdi:thermometer-plus", + entity_category=EntityCategory.CONFIG, + ), + CharacteristicsTypes.Vendor.ECOBEE_AWAY_TARGET_COOL: NumberEntityDescription( + key=CharacteristicsTypes.Vendor.ECOBEE_AWAY_TARGET_COOL, + name="Away Cool Target", + icon="mdi:thermometer-minus", + entity_category=EntityCategory.CONFIG, + ), + CharacteristicsTypes.Vendor.ECOBEE_AWAY_TARGET_HEAT: NumberEntityDescription( + key=CharacteristicsTypes.Vendor.ECOBEE_AWAY_TARGET_HEAT, + name="Away Heat Target", + icon="mdi:thermometer-plus", + entity_category=EntityCategory.CONFIG, + ), } diff --git a/tests/components/homekit_controller/specific_devices/test_ecobee3.py b/tests/components/homekit_controller/specific_devices/test_ecobee3.py index 2d540f31850..b2b85c70d6e 100644 --- a/tests/components/homekit_controller/specific_devices/test_ecobee3.py +++ b/tests/components/homekit_controller/specific_devices/test_ecobee3.py @@ -14,10 +14,12 @@ from homeassistant.components.climate.const import ( SUPPORT_TARGET_TEMPERATURE, SUPPORT_TARGET_TEMPERATURE_RANGE, ) +from homeassistant.components.number import NumberMode from homeassistant.components.sensor import SensorStateClass from homeassistant.config_entries import ConfigEntryState from homeassistant.const import TEMP_CELSIUS from homeassistant.helpers import entity_registry as er +from homeassistant.helpers.entity import EntityCategory from tests.components.homekit_controller.common import ( HUB_TEST_ACCESSORY_ID, @@ -121,6 +123,84 @@ async def test_ecobee3_setup(hass): }, state="heat", ), + EntityTestInfo( + entity_id="number.homew_home_cool_target", + friendly_name="HomeW Home Cool Target", + unique_id="homekit-123456789012-aid:1-sid:16-cid:35", + entity_category=EntityCategory.CONFIG, + capabilities={ + "max": 33.3, + "min": 18.3, + "mode": NumberMode.AUTO, + "step": 0.1, + }, + state="24.4", + ), + EntityTestInfo( + entity_id="number.homew_home_heat_target", + friendly_name="HomeW Home Heat Target", + unique_id="homekit-123456789012-aid:1-sid:16-cid:34", + entity_category=EntityCategory.CONFIG, + capabilities={ + "max": 26.1, + "min": 7.2, + "mode": NumberMode.AUTO, + "step": 0.1, + }, + state="22.2", + ), + EntityTestInfo( + entity_id="number.homew_sleep_cool_target", + friendly_name="HomeW Sleep Cool Target", + unique_id="homekit-123456789012-aid:1-sid:16-cid:37", + entity_category=EntityCategory.CONFIG, + capabilities={ + "max": 33.3, + "min": 18.3, + "mode": NumberMode.AUTO, + "step": 0.1, + }, + state="27.8", + ), + EntityTestInfo( + entity_id="number.homew_sleep_heat_target", + friendly_name="HomeW Sleep Heat Target", + unique_id="homekit-123456789012-aid:1-sid:16-cid:36", + entity_category=EntityCategory.CONFIG, + capabilities={ + "max": 26.1, + "min": 7.2, + "mode": NumberMode.AUTO, + "step": 0.1, + }, + state="17.8", + ), + EntityTestInfo( + entity_id="number.homew_away_cool_target", + friendly_name="HomeW Away Cool Target", + unique_id="homekit-123456789012-aid:1-sid:16-cid:39", + entity_category=EntityCategory.CONFIG, + capabilities={ + "max": 33.3, + "min": 18.3, + "mode": NumberMode.AUTO, + "step": 0.1, + }, + state="26.7", + ), + EntityTestInfo( + entity_id="number.homew_away_heat_target", + friendly_name="HomeW Away Heat Target", + unique_id="homekit-123456789012-aid:1-sid:16-cid:38", + entity_category=EntityCategory.CONFIG, + capabilities={ + "max": 26.1, + "min": 7.2, + "mode": NumberMode.AUTO, + "step": 0.1, + }, + state="18.9", + ), EntityTestInfo( entity_id="sensor.homew_current_temperature", friendly_name="HomeW Current Temperature",