mirror of
https://github.com/home-assistant/core.git
synced 2025-04-30 04:07:51 +00:00
Use more shorthand attributes in hyperion (#100213)
* Use more shorthand attributes in hyperion There are likely some more here, but I only did the safe ones * Update homeassistant/components/hyperion/switch.py Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com> * Apply suggestions from code review --------- Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
This commit is contained in:
parent
6a9c9ca735
commit
b68ceb3ce4
@ -119,7 +119,7 @@ class HyperionCamera(Camera):
|
|||||||
"""Initialize the switch."""
|
"""Initialize the switch."""
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
self._unique_id = get_hyperion_unique_id(
|
self._attr_unique_id = get_hyperion_unique_id(
|
||||||
server_id, instance_num, TYPE_HYPERION_CAMERA
|
server_id, instance_num, TYPE_HYPERION_CAMERA
|
||||||
)
|
)
|
||||||
self._device_id = get_hyperion_device_id(server_id, instance_num)
|
self._device_id = get_hyperion_device_id(server_id, instance_num)
|
||||||
@ -135,11 +135,13 @@ class HyperionCamera(Camera):
|
|||||||
self._client_callbacks = {
|
self._client_callbacks = {
|
||||||
f"{KEY_LEDCOLORS}-{KEY_IMAGE_STREAM}-{KEY_UPDATE}": self._update_imagestream
|
f"{KEY_LEDCOLORS}-{KEY_IMAGE_STREAM}-{KEY_UPDATE}": self._update_imagestream
|
||||||
}
|
}
|
||||||
|
self._attr_device_info = DeviceInfo(
|
||||||
@property
|
identifiers={(DOMAIN, self._device_id)},
|
||||||
def unique_id(self) -> str:
|
manufacturer=HYPERION_MANUFACTURER_NAME,
|
||||||
"""Return a unique id for this instance."""
|
model=HYPERION_MODEL_NAME,
|
||||||
return self._unique_id
|
name=instance_name,
|
||||||
|
configuration_url=hyperion_client.remote_url,
|
||||||
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def is_on(self) -> bool:
|
def is_on(self) -> bool:
|
||||||
@ -231,7 +233,7 @@ class HyperionCamera(Camera):
|
|||||||
self.async_on_remove(
|
self.async_on_remove(
|
||||||
async_dispatcher_connect(
|
async_dispatcher_connect(
|
||||||
self.hass,
|
self.hass,
|
||||||
SIGNAL_ENTITY_REMOVE.format(self._unique_id),
|
SIGNAL_ENTITY_REMOVE.format(self._attr_unique_id),
|
||||||
functools.partial(self.async_remove, force_remove=True),
|
functools.partial(self.async_remove, force_remove=True),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -242,17 +244,6 @@ class HyperionCamera(Camera):
|
|||||||
"""Cleanup prior to hass removal."""
|
"""Cleanup prior to hass removal."""
|
||||||
self._client.remove_callbacks(self._client_callbacks)
|
self._client.remove_callbacks(self._client_callbacks)
|
||||||
|
|
||||||
@property
|
|
||||||
def device_info(self) -> DeviceInfo:
|
|
||||||
"""Return device information."""
|
|
||||||
return DeviceInfo(
|
|
||||||
identifiers={(DOMAIN, self._device_id)},
|
|
||||||
manufacturer=HYPERION_MANUFACTURER_NAME,
|
|
||||||
model=HYPERION_MODEL_NAME,
|
|
||||||
name=self._instance_name,
|
|
||||||
configuration_url=self._client.remote_url,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
CAMERA_TYPES = {
|
CAMERA_TYPES = {
|
||||||
TYPE_HYPERION_CAMERA: HyperionCamera,
|
TYPE_HYPERION_CAMERA: HyperionCamera,
|
||||||
|
@ -132,7 +132,7 @@ class HyperionLight(LightEntity):
|
|||||||
hyperion_client: client.HyperionClient,
|
hyperion_client: client.HyperionClient,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Initialize the light."""
|
"""Initialize the light."""
|
||||||
self._unique_id = self._compute_unique_id(server_id, instance_num)
|
self._attr_unique_id = self._compute_unique_id(server_id, instance_num)
|
||||||
self._device_id = get_hyperion_device_id(server_id, instance_num)
|
self._device_id = get_hyperion_device_id(server_id, instance_num)
|
||||||
self._instance_name = instance_name
|
self._instance_name = instance_name
|
||||||
self._options = options
|
self._options = options
|
||||||
@ -153,16 +153,18 @@ class HyperionLight(LightEntity):
|
|||||||
f"{const.KEY_PRIORITIES}-{const.KEY_UPDATE}": self._update_priorities,
|
f"{const.KEY_PRIORITIES}-{const.KEY_UPDATE}": self._update_priorities,
|
||||||
f"{const.KEY_CLIENT}-{const.KEY_UPDATE}": self._update_client,
|
f"{const.KEY_CLIENT}-{const.KEY_UPDATE}": self._update_client,
|
||||||
}
|
}
|
||||||
|
self._attr_device_info = DeviceInfo(
|
||||||
|
identifiers={(DOMAIN, self._device_id)},
|
||||||
|
manufacturer=HYPERION_MANUFACTURER_NAME,
|
||||||
|
model=HYPERION_MODEL_NAME,
|
||||||
|
name=self._instance_name,
|
||||||
|
configuration_url=self._client.remote_url,
|
||||||
|
)
|
||||||
|
|
||||||
def _compute_unique_id(self, server_id: str, instance_num: int) -> str:
|
def _compute_unique_id(self, server_id: str, instance_num: int) -> str:
|
||||||
"""Compute a unique id for this instance."""
|
"""Compute a unique id for this instance."""
|
||||||
return get_hyperion_unique_id(server_id, instance_num, TYPE_HYPERION_LIGHT)
|
return get_hyperion_unique_id(server_id, instance_num, TYPE_HYPERION_LIGHT)
|
||||||
|
|
||||||
@property
|
|
||||||
def entity_registry_enabled_default(self) -> bool:
|
|
||||||
"""Whether or not the entity is enabled by default."""
|
|
||||||
return True
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def brightness(self) -> int:
|
def brightness(self) -> int:
|
||||||
"""Return the brightness of this light between 0..255."""
|
"""Return the brightness of this light between 0..255."""
|
||||||
@ -196,22 +198,6 @@ class HyperionLight(LightEntity):
|
|||||||
"""Return server availability."""
|
"""Return server availability."""
|
||||||
return bool(self._client.has_loaded_state)
|
return bool(self._client.has_loaded_state)
|
||||||
|
|
||||||
@property
|
|
||||||
def unique_id(self) -> str:
|
|
||||||
"""Return a unique id for this instance."""
|
|
||||||
return self._unique_id
|
|
||||||
|
|
||||||
@property
|
|
||||||
def device_info(self) -> DeviceInfo:
|
|
||||||
"""Return device information."""
|
|
||||||
return DeviceInfo(
|
|
||||||
identifiers={(DOMAIN, self._device_id)},
|
|
||||||
manufacturer=HYPERION_MANUFACTURER_NAME,
|
|
||||||
model=HYPERION_MODEL_NAME,
|
|
||||||
name=self._instance_name,
|
|
||||||
configuration_url=self._client.remote_url,
|
|
||||||
)
|
|
||||||
|
|
||||||
def _get_option(self, key: str) -> Any:
|
def _get_option(self, key: str) -> Any:
|
||||||
"""Get a value from the provided options."""
|
"""Get a value from the provided options."""
|
||||||
defaults = {
|
defaults = {
|
||||||
|
@ -133,6 +133,8 @@ class HyperionComponentSwitch(SwitchEntity):
|
|||||||
_attr_entity_category = EntityCategory.CONFIG
|
_attr_entity_category = EntityCategory.CONFIG
|
||||||
_attr_should_poll = False
|
_attr_should_poll = False
|
||||||
_attr_has_entity_name = True
|
_attr_has_entity_name = True
|
||||||
|
# These component controls are for advanced users and are disabled by default.
|
||||||
|
_attr_entity_registry_enabled_default = False
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
@ -143,7 +145,7 @@ class HyperionComponentSwitch(SwitchEntity):
|
|||||||
hyperion_client: client.HyperionClient,
|
hyperion_client: client.HyperionClient,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Initialize the switch."""
|
"""Initialize the switch."""
|
||||||
self._unique_id = _component_to_unique_id(
|
self._attr_unique_id = _component_to_unique_id(
|
||||||
server_id, component_name, instance_num
|
server_id, component_name, instance_num
|
||||||
)
|
)
|
||||||
self._device_id = get_hyperion_device_id(server_id, instance_num)
|
self._device_id = get_hyperion_device_id(server_id, instance_num)
|
||||||
@ -154,17 +156,13 @@ class HyperionComponentSwitch(SwitchEntity):
|
|||||||
self._client_callbacks = {
|
self._client_callbacks = {
|
||||||
f"{KEY_COMPONENTS}-{KEY_UPDATE}": self._update_components
|
f"{KEY_COMPONENTS}-{KEY_UPDATE}": self._update_components
|
||||||
}
|
}
|
||||||
|
self._attr_device_info = DeviceInfo(
|
||||||
@property
|
identifiers={(DOMAIN, self._device_id)},
|
||||||
def entity_registry_enabled_default(self) -> bool:
|
manufacturer=HYPERION_MANUFACTURER_NAME,
|
||||||
"""Whether or not the entity is enabled by default."""
|
model=HYPERION_MODEL_NAME,
|
||||||
# These component controls are for advanced users and are disabled by default.
|
name=self._instance_name,
|
||||||
return False
|
configuration_url=self._client.remote_url,
|
||||||
|
)
|
||||||
@property
|
|
||||||
def unique_id(self) -> str:
|
|
||||||
"""Return a unique id for this instance."""
|
|
||||||
return self._unique_id
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def is_on(self) -> bool:
|
def is_on(self) -> bool:
|
||||||
@ -179,17 +177,6 @@ class HyperionComponentSwitch(SwitchEntity):
|
|||||||
"""Return server availability."""
|
"""Return server availability."""
|
||||||
return bool(self._client.has_loaded_state)
|
return bool(self._client.has_loaded_state)
|
||||||
|
|
||||||
@property
|
|
||||||
def device_info(self) -> DeviceInfo:
|
|
||||||
"""Return device information."""
|
|
||||||
return DeviceInfo(
|
|
||||||
identifiers={(DOMAIN, self._device_id)},
|
|
||||||
manufacturer=HYPERION_MANUFACTURER_NAME,
|
|
||||||
model=HYPERION_MODEL_NAME,
|
|
||||||
name=self._instance_name,
|
|
||||||
configuration_url=self._client.remote_url,
|
|
||||||
)
|
|
||||||
|
|
||||||
async def _async_send_set_component(self, value: bool) -> None:
|
async def _async_send_set_component(self, value: bool) -> None:
|
||||||
"""Send a component control request."""
|
"""Send a component control request."""
|
||||||
await self._client.async_send_set_component(
|
await self._client.async_send_set_component(
|
||||||
@ -219,7 +206,7 @@ class HyperionComponentSwitch(SwitchEntity):
|
|||||||
self.async_on_remove(
|
self.async_on_remove(
|
||||||
async_dispatcher_connect(
|
async_dispatcher_connect(
|
||||||
self.hass,
|
self.hass,
|
||||||
SIGNAL_ENTITY_REMOVE.format(self._unique_id),
|
SIGNAL_ENTITY_REMOVE.format(self._attr_unique_id),
|
||||||
functools.partial(self.async_remove, force_remove=True),
|
functools.partial(self.async_remove, force_remove=True),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user