Allow homekit_controller to customise Ecobee home/sleep/away thresholds (#65036)

This commit is contained in:
Jc2k 2022-01-27 16:41:53 +00:00 committed by GitHub
parent 3d461e9e1f
commit 603d0fb068
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 122 additions and 0 deletions

View File

@ -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",

View File

@ -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,
),
}

View File

@ -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",