mirror of
https://github.com/home-assistant/core.git
synced 2025-07-27 15:17:35 +00:00
Deprecate system_id
parameter in SimpliSafe service calls (#61076)
This commit is contained in:
parent
2f0695e408
commit
0ae6969aa4
@ -145,32 +145,59 @@ SERVICES = (
|
|||||||
SERVICE_NAME_SET_SYSTEM_PROPERTIES,
|
SERVICE_NAME_SET_SYSTEM_PROPERTIES,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
SERVICE_CLEAR_NOTIFICATIONS_SCHEMA = vol.All(
|
||||||
SERVICE_REMOVE_PIN_SCHEMA = vol.Schema(
|
cv.deprecated(ATTR_SYSTEM_ID),
|
||||||
|
vol.Schema(
|
||||||
{
|
{
|
||||||
vol.Required(ATTR_DEVICE_ID): cv.string,
|
vol.Optional(ATTR_DEVICE_ID): cv.string,
|
||||||
|
vol.Optional(ATTR_SYSTEM_ID): cv.string,
|
||||||
|
}
|
||||||
|
),
|
||||||
|
cv.has_at_least_one_key(ATTR_DEVICE_ID, ATTR_SYSTEM_ID),
|
||||||
|
)
|
||||||
|
|
||||||
|
SERVICE_REMOVE_PIN_SCHEMA = vol.All(
|
||||||
|
cv.deprecated(ATTR_SYSTEM_ID),
|
||||||
|
vol.Schema(
|
||||||
|
{
|
||||||
|
vol.Optional(ATTR_DEVICE_ID): cv.string,
|
||||||
|
vol.Optional(ATTR_SYSTEM_ID): cv.string,
|
||||||
vol.Required(ATTR_PIN_LABEL_OR_VALUE): cv.string,
|
vol.Required(ATTR_PIN_LABEL_OR_VALUE): cv.string,
|
||||||
}
|
}
|
||||||
|
),
|
||||||
|
cv.has_at_least_one_key(ATTR_DEVICE_ID, ATTR_SYSTEM_ID),
|
||||||
)
|
)
|
||||||
|
|
||||||
SERVICE_SET_PIN_SCHEMA = vol.Schema(
|
SERVICE_SET_PIN_SCHEMA = vol.All(
|
||||||
|
cv.deprecated(ATTR_SYSTEM_ID),
|
||||||
|
vol.Schema(
|
||||||
{
|
{
|
||||||
vol.Required(ATTR_DEVICE_ID): cv.string,
|
vol.Optional(ATTR_DEVICE_ID): cv.string,
|
||||||
|
vol.Optional(ATTR_SYSTEM_ID): cv.string,
|
||||||
vol.Required(ATTR_PIN_LABEL): cv.string,
|
vol.Required(ATTR_PIN_LABEL): cv.string,
|
||||||
vol.Required(ATTR_PIN_VALUE): cv.string,
|
vol.Required(ATTR_PIN_VALUE): cv.string,
|
||||||
}
|
},
|
||||||
|
),
|
||||||
|
cv.has_at_least_one_key(ATTR_DEVICE_ID, ATTR_SYSTEM_ID),
|
||||||
)
|
)
|
||||||
|
|
||||||
SERVICE_SET_SYSTEM_PROPERTIES_SCHEMA = vol.Schema(
|
SERVICE_SET_SYSTEM_PROPERTIES_SCHEMA = vol.All(
|
||||||
|
cv.deprecated(ATTR_SYSTEM_ID),
|
||||||
|
vol.Schema(
|
||||||
{
|
{
|
||||||
vol.Required(ATTR_DEVICE_ID): cv.string,
|
vol.Optional(ATTR_DEVICE_ID): cv.string,
|
||||||
|
vol.Optional(ATTR_SYSTEM_ID): cv.string,
|
||||||
vol.Optional(ATTR_ALARM_DURATION): vol.All(
|
vol.Optional(ATTR_ALARM_DURATION): vol.All(
|
||||||
cv.time_period,
|
cv.time_period,
|
||||||
lambda value: value.total_seconds(),
|
lambda value: value.total_seconds(),
|
||||||
vol.Range(min=MIN_ALARM_DURATION, max=MAX_ALARM_DURATION),
|
vol.Range(min=MIN_ALARM_DURATION, max=MAX_ALARM_DURATION),
|
||||||
),
|
),
|
||||||
vol.Optional(ATTR_ALARM_VOLUME): vol.All(vol.In(VOLUME_MAP), VOLUME_MAP.get),
|
vol.Optional(ATTR_ALARM_VOLUME): vol.All(
|
||||||
vol.Optional(ATTR_CHIME_VOLUME): vol.All(vol.In(VOLUME_MAP), VOLUME_MAP.get),
|
vol.In(VOLUME_MAP), VOLUME_MAP.get
|
||||||
|
),
|
||||||
|
vol.Optional(ATTR_CHIME_VOLUME): vol.All(
|
||||||
|
vol.In(VOLUME_MAP), VOLUME_MAP.get
|
||||||
|
),
|
||||||
vol.Optional(ATTR_ENTRY_DELAY_AWAY): vol.All(
|
vol.Optional(ATTR_ENTRY_DELAY_AWAY): vol.All(
|
||||||
cv.time_period,
|
cv.time_period,
|
||||||
lambda value: value.total_seconds(),
|
lambda value: value.total_seconds(),
|
||||||
@ -196,6 +223,8 @@ SERVICE_SET_SYSTEM_PROPERTIES_SCHEMA = vol.Schema(
|
|||||||
vol.In(VOLUME_MAP), VOLUME_MAP.get
|
vol.In(VOLUME_MAP), VOLUME_MAP.get
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
),
|
||||||
|
cv.has_at_least_one_key(ATTR_DEVICE_ID, ATTR_SYSTEM_ID),
|
||||||
)
|
)
|
||||||
|
|
||||||
WEBSOCKET_EVENTS_REQUIRING_SERIAL = [EVENT_LOCK_LOCKED, EVENT_LOCK_UNLOCKED]
|
WEBSOCKET_EVENTS_REQUIRING_SERIAL = [EVENT_LOCK_LOCKED, EVENT_LOCK_UNLOCKED]
|
||||||
@ -217,6 +246,15 @@ def _async_get_system_for_service_call(
|
|||||||
hass: HomeAssistant, call: ServiceCall
|
hass: HomeAssistant, call: ServiceCall
|
||||||
) -> SystemType:
|
) -> SystemType:
|
||||||
"""Get the SimpliSafe system related to a service call (by device ID)."""
|
"""Get the SimpliSafe system related to a service call (by device ID)."""
|
||||||
|
if ATTR_SYSTEM_ID in call.data:
|
||||||
|
for entry in hass.config_entries.async_entries(DOMAIN):
|
||||||
|
simplisafe = hass.data[DOMAIN][entry.entry_id]
|
||||||
|
if (
|
||||||
|
system := simplisafe.systems.get(int(call.data[ATTR_SYSTEM_ID]))
|
||||||
|
) is None:
|
||||||
|
continue
|
||||||
|
return cast(SystemType, system)
|
||||||
|
|
||||||
device_id = call.data[ATTR_DEVICE_ID]
|
device_id = call.data[ATTR_DEVICE_ID]
|
||||||
device_registry = dr.async_get(hass)
|
device_registry = dr.async_get(hass)
|
||||||
|
|
||||||
@ -366,7 +404,11 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
)
|
)
|
||||||
|
|
||||||
for service, method, schema in (
|
for service, method, schema in (
|
||||||
(SERVICE_NAME_CLEAR_NOTIFICATIONS, async_clear_notifications, None),
|
(
|
||||||
|
SERVICE_NAME_CLEAR_NOTIFICATIONS,
|
||||||
|
async_clear_notifications,
|
||||||
|
SERVICE_CLEAR_NOTIFICATIONS_SCHEMA,
|
||||||
|
),
|
||||||
(SERVICE_NAME_REMOVE_PIN, async_remove_pin, SERVICE_REMOVE_PIN_SCHEMA),
|
(SERVICE_NAME_REMOVE_PIN, async_remove_pin, SERVICE_REMOVE_PIN_SCHEMA),
|
||||||
(SERVICE_NAME_SET_PIN, async_set_pin, SERVICE_SET_PIN_SCHEMA),
|
(SERVICE_NAME_SET_PIN, async_set_pin, SERVICE_SET_PIN_SCHEMA),
|
||||||
(
|
(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user