mirror of
https://github.com/home-assistant/core.git
synced 2025-08-02 01:58:20 +00:00
Add missed components
This commit is contained in:
parent
a971313a9d
commit
695f47c5fc
@ -42,9 +42,12 @@ from homeassistant.helpers import (
|
|||||||
)
|
)
|
||||||
from homeassistant.helpers.entity_component import async_update_entity
|
from homeassistant.helpers.entity_component import async_update_entity
|
||||||
from homeassistant.helpers.issue_registry import IssueSeverity
|
from homeassistant.helpers.issue_registry import IssueSeverity
|
||||||
|
from homeassistant.helpers.selector import (
|
||||||
|
TargetSelectorData,
|
||||||
|
async_extract_referenced_entity_ids,
|
||||||
|
)
|
||||||
from homeassistant.helpers.service import (
|
from homeassistant.helpers.service import (
|
||||||
async_extract_config_entry_ids,
|
async_extract_config_entry_ids,
|
||||||
async_extract_referenced_entity_ids,
|
|
||||||
async_register_admin_service,
|
async_register_admin_service,
|
||||||
)
|
)
|
||||||
from homeassistant.helpers.signal import KEY_HA_STOP
|
from homeassistant.helpers.signal import KEY_HA_STOP
|
||||||
@ -111,7 +114,9 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: # noqa:
|
|||||||
|
|
||||||
async def async_handle_turn_service(service: ServiceCall) -> None:
|
async def async_handle_turn_service(service: ServiceCall) -> None:
|
||||||
"""Handle calls to homeassistant.turn_on/off."""
|
"""Handle calls to homeassistant.turn_on/off."""
|
||||||
referenced = async_extract_referenced_entity_ids(hass, service)
|
referenced = async_extract_referenced_entity_ids(
|
||||||
|
hass, TargetSelectorData(service.data)
|
||||||
|
)
|
||||||
all_referenced = referenced.referenced | referenced.indirectly_referenced
|
all_referenced = referenced.referenced | referenced.indirectly_referenced
|
||||||
|
|
||||||
# Generic turn on/off method requires entity id
|
# Generic turn on/off method requires entity id
|
||||||
|
@ -75,10 +75,11 @@ from homeassistant.helpers.entityfilter import (
|
|||||||
EntityFilter,
|
EntityFilter,
|
||||||
)
|
)
|
||||||
from homeassistant.helpers.reload import async_integration_yaml_config
|
from homeassistant.helpers.reload import async_integration_yaml_config
|
||||||
from homeassistant.helpers.service import (
|
from homeassistant.helpers.selector import (
|
||||||
|
TargetSelectorData,
|
||||||
async_extract_referenced_entity_ids,
|
async_extract_referenced_entity_ids,
|
||||||
async_register_admin_service,
|
|
||||||
)
|
)
|
||||||
|
from homeassistant.helpers.service import async_register_admin_service
|
||||||
from homeassistant.helpers.start import async_at_started
|
from homeassistant.helpers.start import async_at_started
|
||||||
from homeassistant.helpers.typing import ConfigType
|
from homeassistant.helpers.typing import ConfigType
|
||||||
from homeassistant.loader import IntegrationNotFound, async_get_integration
|
from homeassistant.loader import IntegrationNotFound, async_get_integration
|
||||||
@ -482,7 +483,9 @@ def _async_register_events_and_services(hass: HomeAssistant) -> None:
|
|||||||
|
|
||||||
async def async_handle_homekit_unpair(service: ServiceCall) -> None:
|
async def async_handle_homekit_unpair(service: ServiceCall) -> None:
|
||||||
"""Handle unpair HomeKit service call."""
|
"""Handle unpair HomeKit service call."""
|
||||||
referenced = async_extract_referenced_entity_ids(hass, service)
|
referenced = async_extract_referenced_entity_ids(
|
||||||
|
hass, TargetSelectorData(service.data)
|
||||||
|
)
|
||||||
dev_reg = dr.async_get(hass)
|
dev_reg = dr.async_get(hass)
|
||||||
for device_id in referenced.referenced_devices:
|
for device_id in referenced.referenced_devices:
|
||||||
if not (dev_reg_ent := dev_reg.async_get(device_id)):
|
if not (dev_reg_ent := dev_reg.async_get(device_id)):
|
||||||
|
@ -28,7 +28,10 @@ from homeassistant.components.light import (
|
|||||||
from homeassistant.const import ATTR_MODE
|
from homeassistant.const import ATTR_MODE
|
||||||
from homeassistant.core import HomeAssistant, ServiceCall, callback
|
from homeassistant.core import HomeAssistant, ServiceCall, callback
|
||||||
from homeassistant.helpers import config_validation as cv
|
from homeassistant.helpers import config_validation as cv
|
||||||
from homeassistant.helpers.service import async_extract_referenced_entity_ids
|
from homeassistant.helpers.selector import (
|
||||||
|
TargetSelectorData,
|
||||||
|
async_extract_referenced_entity_ids,
|
||||||
|
)
|
||||||
|
|
||||||
from .const import _ATTR_COLOR_TEMP, ATTR_THEME, DOMAIN
|
from .const import _ATTR_COLOR_TEMP, ATTR_THEME, DOMAIN
|
||||||
from .coordinator import LIFXConfigEntry, LIFXUpdateCoordinator
|
from .coordinator import LIFXConfigEntry, LIFXUpdateCoordinator
|
||||||
@ -268,7 +271,9 @@ class LIFXManager:
|
|||||||
|
|
||||||
async def service_handler(service: ServiceCall) -> None:
|
async def service_handler(service: ServiceCall) -> None:
|
||||||
"""Apply a service, i.e. start an effect."""
|
"""Apply a service, i.e. start an effect."""
|
||||||
referenced = async_extract_referenced_entity_ids(self.hass, service)
|
referenced = async_extract_referenced_entity_ids(
|
||||||
|
self.hass, TargetSelectorData(service.data)
|
||||||
|
)
|
||||||
all_referenced = referenced.referenced | referenced.indirectly_referenced
|
all_referenced = referenced.referenced | referenced.indirectly_referenced
|
||||||
if all_referenced:
|
if all_referenced:
|
||||||
await self.start_effect(all_referenced, service.service, **service.data)
|
await self.start_effect(all_referenced, service.service, **service.data)
|
||||||
@ -499,6 +504,5 @@ class LIFXManager:
|
|||||||
if self.entry_id_to_entity_id[entry.entry_id] in entity_ids:
|
if self.entry_id_to_entity_id[entry.entry_id] in entity_ids:
|
||||||
coordinators.append(entry.runtime_data)
|
coordinators.append(entry.runtime_data)
|
||||||
bulbs.append(entry.runtime_data.device)
|
bulbs.append(entry.runtime_data.device)
|
||||||
|
|
||||||
if start_effect_func := self._effect_dispatch.get(service):
|
if start_effect_func := self._effect_dispatch.get(service):
|
||||||
await start_effect_func(self, bulbs, coordinators, **kwargs)
|
await start_effect_func(self, bulbs, coordinators, **kwargs)
|
||||||
|
@ -26,7 +26,10 @@ from homeassistant.helpers import (
|
|||||||
device_registry as dr,
|
device_registry as dr,
|
||||||
entity_registry as er,
|
entity_registry as er,
|
||||||
)
|
)
|
||||||
from homeassistant.helpers.service import async_extract_referenced_entity_ids
|
from homeassistant.helpers.selector import (
|
||||||
|
TargetSelectorData,
|
||||||
|
async_extract_referenced_entity_ids,
|
||||||
|
)
|
||||||
from homeassistant.util.json import JsonValueType
|
from homeassistant.util.json import JsonValueType
|
||||||
from homeassistant.util.read_only_dict import ReadOnlyDict
|
from homeassistant.util.read_only_dict import ReadOnlyDict
|
||||||
|
|
||||||
@ -115,7 +118,7 @@ def _async_get_ufp_instance(hass: HomeAssistant, device_id: str) -> ProtectApiCl
|
|||||||
|
|
||||||
@callback
|
@callback
|
||||||
def _async_get_ufp_camera(call: ServiceCall) -> Camera:
|
def _async_get_ufp_camera(call: ServiceCall) -> Camera:
|
||||||
ref = async_extract_referenced_entity_ids(call.hass, call)
|
ref = async_extract_referenced_entity_ids(call.hass, TargetSelectorData(call.data))
|
||||||
entity_registry = er.async_get(call.hass)
|
entity_registry = er.async_get(call.hass)
|
||||||
|
|
||||||
entity_id = ref.indirectly_referenced.pop()
|
entity_id = ref.indirectly_referenced.pop()
|
||||||
@ -133,7 +136,7 @@ def _async_get_protect_from_call(call: ServiceCall) -> set[ProtectApiClient]:
|
|||||||
return {
|
return {
|
||||||
_async_get_ufp_instance(call.hass, device_id)
|
_async_get_ufp_instance(call.hass, device_id)
|
||||||
for device_id in async_extract_referenced_entity_ids(
|
for device_id in async_extract_referenced_entity_ids(
|
||||||
call.hass, call
|
call.hass, TargetSelectorData(call.data)
|
||||||
).referenced_devices
|
).referenced_devices
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -196,7 +199,7 @@ def _async_unique_id_to_mac(unique_id: str) -> str:
|
|||||||
|
|
||||||
async def set_chime_paired_doorbells(call: ServiceCall) -> None:
|
async def set_chime_paired_doorbells(call: ServiceCall) -> None:
|
||||||
"""Set paired doorbells on chime."""
|
"""Set paired doorbells on chime."""
|
||||||
ref = async_extract_referenced_entity_ids(call.hass, call)
|
ref = async_extract_referenced_entity_ids(call.hass, TargetSelectorData(call.data))
|
||||||
entity_registry = er.async_get(call.hass)
|
entity_registry = er.async_get(call.hass)
|
||||||
|
|
||||||
entity_id = ref.indirectly_referenced.pop()
|
entity_id = ref.indirectly_referenced.pop()
|
||||||
@ -211,7 +214,9 @@ async def set_chime_paired_doorbells(call: ServiceCall) -> None:
|
|||||||
assert chime is not None
|
assert chime is not None
|
||||||
|
|
||||||
call.data = ReadOnlyDict(call.data.get("doorbells") or {})
|
call.data = ReadOnlyDict(call.data.get("doorbells") or {})
|
||||||
doorbell_refs = async_extract_referenced_entity_ids(call.hass, call)
|
doorbell_refs = async_extract_referenced_entity_ids(
|
||||||
|
call.hass, TargetSelectorData(call.data)
|
||||||
|
)
|
||||||
doorbell_ids: set[str] = set()
|
doorbell_ids: set[str] = set()
|
||||||
for camera_id in doorbell_refs.referenced | doorbell_refs.indirectly_referenced:
|
for camera_id in doorbell_refs.referenced | doorbell_refs.indirectly_referenced:
|
||||||
doorbell_sensor = entity_registry.async_get(camera_id)
|
doorbell_sensor = entity_registry.async_get(camera_id)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user