1 """Helper functions for Samsung TV."""
3 from __future__
import annotations
10 from .
import SamsungTVConfigEntry
11 from .bridge
import SamsungTVBridge
12 from .const
import DOMAIN
17 hass: HomeAssistant, device_id: str
19 """Get Device Entry from Device Registry by device ID.
21 Raises ValueError if device ID is invalid.
23 device_reg = dr.async_get(hass)
24 if (device := device_reg.async_get(device_id))
is None:
25 raise ValueError(f
"Device {device_id} is not a valid {DOMAIN} device.")
32 """Get device ID from an entity ID.
34 Raises ValueError if entity or device ID is invalid.
36 ent_reg = er.async_get(hass)
37 entity_entry = ent_reg.async_get(entity_id)
41 or entity_entry.device_id
is None
42 or entity_entry.platform != DOMAIN
44 raise ValueError(f
"Entity {entity_id} is not a valid {DOMAIN} entity.")
46 return entity_entry.device_id
51 hass: HomeAssistant, device: DeviceEntry
53 """Get SamsungTVBridge from Device Registry by device entry.
55 Raises ValueError if client is not found.
57 entry: SamsungTVConfigEntry |
None
58 for config_entry_id
in device.config_entries:
59 entry = hass.config_entries.async_get_entry(config_entry_id)
60 if entry
and entry.domain == DOMAIN
and entry.state
is ConfigEntryState.LOADED:
61 return entry.runtime_data.bridge
64 f
"Device {device.id} is not from an existing {DOMAIN} config entry"
SamsungTVBridge async_get_client_by_device_entry(HomeAssistant hass, DeviceEntry device)
DeviceEntry async_get_device_entry_by_device_id(HomeAssistant hass, str device_id)
str async_get_device_id_from_entity_id(HomeAssistant hass, str entity_id)