Import DOMAIN constants in HomeKit (#178261)

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
epenet
2026-08-05 13:09:08 -05:00
committed by GitHub
co-authored by Claude Opus 5
parent f9fa99ca45
commit fa74a40793
2 changed files with 25 additions and 26 deletions
@@ -13,6 +13,8 @@ from pyhap.const import (
)
from homeassistant.components import button, input_button
from homeassistant.components.button import DOMAIN as BUTTON_DOMAIN
from homeassistant.components.input_button import DOMAIN as INPUT_BUTTON_DOMAIN
from homeassistant.components.input_number import (
ATTR_VALUE as INPUT_NUMBER_ATTR_VALUE,
CONF_MAX as INPUT_NUMBER_CONF_MAX,
@@ -193,9 +195,9 @@ class Switch(HomeAccessory):
if self._domain == "script":
service = self._object_id
params = {}
elif self._domain == button.DOMAIN:
elif self._domain == BUTTON_DOMAIN:
service = button.SERVICE_PRESS
elif self._domain == input_button.DOMAIN:
elif self._domain == INPUT_BUTTON_DOMAIN:
service = input_button.SERVICE_PRESS
else:
service = SERVICE_TURN_ON if value else SERVICE_TURN_OFF
+21 -24
View File
@@ -13,15 +13,11 @@ from pyhap.accessory import Accessory
import pyqrcode
import voluptuous as vol
from homeassistant.components import (
binary_sensor,
input_number,
media_player,
persistent_notification,
sensor,
)
from homeassistant.components import persistent_notification
from homeassistant.components.binary_sensor import DOMAIN as BINARY_SENSOR_DOMAIN
from homeassistant.components.camera import DOMAIN as CAMERA_DOMAIN
from homeassistant.components.event import DOMAIN as EVENT_DOMAIN
from homeassistant.components.input_number import DOMAIN as INPUT_NUMBER_DOMAIN
from homeassistant.components.lock import DOMAIN as LOCK_DOMAIN
from homeassistant.components.media_player import (
DOMAIN as MEDIA_PLAYER_DOMAIN,
@@ -29,6 +25,7 @@ from homeassistant.components.media_player import (
MediaPlayerEntityFeature,
)
from homeassistant.components.remote import DOMAIN as REMOTE_DOMAIN, RemoteEntityFeature
from homeassistant.components.sensor import DOMAIN as SENSOR_DOMAIN
from homeassistant.const import (
ATTR_CODE,
ATTR_DEVICE_CLASS,
@@ -143,9 +140,9 @@ VALID_AUDIO_CODECS = [AUDIO_CODEC_OPUS, VIDEO_CODEC_COPY]
BASIC_INFO_SCHEMA = vol.Schema(
{
vol.Optional(CONF_NAME): cv.string,
vol.Optional(CONF_LINKED_BATTERY_SENSOR): cv.entity_domain(sensor.DOMAIN),
vol.Optional(CONF_LINKED_BATTERY_SENSOR): cv.entity_domain(SENSOR_DOMAIN),
vol.Optional(CONF_LINKED_BATTERY_CHARGING_SENSOR): cv.entity_domain(
binary_sensor.DOMAIN
BINARY_SENSOR_DOMAIN
),
vol.Optional(
CONF_LOW_BATTERY_THRESHOLD, default=DEFAULT_LOW_BATTERY_THRESHOLD
@@ -186,16 +183,16 @@ CAMERA_SCHEMA = BASIC_INFO_SCHEMA.extend(
CONF_VIDEO_PACKET_SIZE, default=DEFAULT_VIDEO_PACKET_SIZE
): cv.positive_int,
vol.Optional(CONF_LINKED_MOTION_SENSOR): cv.entity_domain(
[binary_sensor.DOMAIN, EVENT_DOMAIN]
[BINARY_SENSOR_DOMAIN, EVENT_DOMAIN]
),
vol.Optional(CONF_LINKED_DOORBELL_SENSOR): cv.entity_domain(
[binary_sensor.DOMAIN, EVENT_DOMAIN]
[BINARY_SENSOR_DOMAIN, EVENT_DOMAIN]
),
}
)
HUMIDIFIER_SCHEMA = BASIC_INFO_SCHEMA.extend(
{vol.Optional(CONF_LINKED_HUMIDITY_SENSOR): cv.entity_domain(sensor.DOMAIN)}
{vol.Optional(CONF_LINKED_HUMIDITY_SENSOR): cv.entity_domain(SENSOR_DOMAIN)}
)
FAN_SCHEMA = BASIC_INFO_SCHEMA.extend(
@@ -209,20 +206,20 @@ FAN_SCHEMA = BASIC_INFO_SCHEMA.extend(
)
),
),
vol.Optional(CONF_LINKED_HUMIDITY_SENSOR): cv.entity_domain(sensor.DOMAIN),
vol.Optional(CONF_LINKED_PM25_SENSOR): cv.entity_domain(sensor.DOMAIN),
vol.Optional(CONF_LINKED_TEMPERATURE_SENSOR): cv.entity_domain(sensor.DOMAIN),
vol.Optional(CONF_LINKED_HUMIDITY_SENSOR): cv.entity_domain(SENSOR_DOMAIN),
vol.Optional(CONF_LINKED_PM25_SENSOR): cv.entity_domain(SENSOR_DOMAIN),
vol.Optional(CONF_LINKED_TEMPERATURE_SENSOR): cv.entity_domain(SENSOR_DOMAIN),
vol.Optional(CONF_LINKED_FILTER_CHANGE_INDICATION): cv.entity_domain(
binary_sensor.DOMAIN
BINARY_SENSOR_DOMAIN
),
vol.Optional(CONF_LINKED_FILTER_LIFE_LEVEL): cv.entity_domain(sensor.DOMAIN),
vol.Optional(CONF_LINKED_FILTER_LIFE_LEVEL): cv.entity_domain(SENSOR_DOMAIN),
}
)
COVER_SCHEMA = BASIC_INFO_SCHEMA.extend(
{
vol.Optional(CONF_LINKED_OBSTRUCTION_SENSOR): cv.entity_domain(
binary_sensor.DOMAIN
BINARY_SENSOR_DOMAIN
)
}
)
@@ -249,7 +246,7 @@ CODE_SCHEMA = BASIC_INFO_SCHEMA.extend(
LOCK_SCHEMA = CODE_SCHEMA.extend(
{
vol.Optional(CONF_LINKED_DOORBELL_SENSOR): cv.entity_domain(
[binary_sensor.DOMAIN, EVENT_DOMAIN]
[BINARY_SENSOR_DOMAIN, EVENT_DOMAIN]
),
}
)
@@ -285,8 +282,8 @@ SWITCH_TYPE_SCHEMA = BASIC_INFO_SCHEMA.extend(
)
),
),
vol.Optional(CONF_LINKED_VALVE_DURATION): cv.entity_domain(input_number.DOMAIN),
vol.Optional(CONF_LINKED_VALVE_END_TIME): cv.entity_domain(sensor.DOMAIN),
vol.Optional(CONF_LINKED_VALVE_DURATION): cv.entity_domain(INPUT_NUMBER_DOMAIN),
vol.Optional(CONF_LINKED_VALVE_END_TIME): cv.entity_domain(SENSOR_DOMAIN),
}
)
@@ -299,8 +296,8 @@ SENSOR_SCHEMA = BASIC_INFO_SCHEMA.extend(
VALVE_SCHEMA = BASIC_INFO_SCHEMA.extend(
{
vol.Optional(CONF_LINKED_VALVE_DURATION): cv.entity_domain(input_number.DOMAIN),
vol.Optional(CONF_LINKED_VALVE_END_TIME): cv.entity_domain(sensor.DOMAIN),
vol.Optional(CONF_LINKED_VALVE_DURATION): cv.entity_domain(INPUT_NUMBER_DOMAIN),
vol.Optional(CONF_LINKED_VALVE_END_TIME): cv.entity_domain(SENSOR_DOMAIN),
}
)
@@ -354,7 +351,7 @@ def validate_entity_config(values: dict) -> dict[str, dict]:
if domain == "alarm_control_panel":
config = CODE_SCHEMA(config)
elif domain == media_player.const.DOMAIN:
elif domain == MEDIA_PLAYER_DOMAIN:
config = FEATURE_SCHEMA(config)
feature_list = {}
for feature in config[CONF_FEATURE_LIST]: