1 """Base for Hass.io entities."""
3 from __future__
import annotations
24 from .coordinator
import HassioDataUpdateCoordinator
28 """Base entity for a Hass.io add-on."""
30 _attr_has_entity_name =
True
34 coordinator: HassioDataUpdateCoordinator,
35 entity_description: EntityDescription,
36 addon: dict[str, Any],
38 """Initialize base entity."""
42 self.
_attr_unique_id_attr_unique_id = f
"{addon[ATTR_SLUG]}_{entity_description.key}"
47 """Return True if entity is available."""
50 and DATA_KEY_ADDONS
in self.coordinator.data
52 in self.coordinator.data[DATA_KEY_ADDONS].
get(self.
_addon_slug_addon_slug, {})
56 """Subscribe to updates."""
61 self.
_addon_slug_addon_slug, self.entity_id, update_types
64 if CONTAINER_STATS
in update_types:
69 """Base Entity for Hass.io OS."""
71 _attr_has_entity_name =
True
75 coordinator: HassioDataUpdateCoordinator,
76 entity_description: EntityDescription,
78 """Initialize base entity."""
81 self.
_attr_unique_id_attr_unique_id = f
"home_assistant_os_{entity_description.key}"
86 """Return True if entity is available."""
89 and DATA_KEY_OS
in self.coordinator.data
90 and self.
entity_descriptionentity_description.key
in self.coordinator.data[DATA_KEY_OS]
95 """Base Entity for Hass.io host."""
97 _attr_has_entity_name =
True
101 coordinator: HassioDataUpdateCoordinator,
102 entity_description: EntityDescription,
104 """Initialize base entity."""
112 """Return True if entity is available."""
115 and DATA_KEY_HOST
in self.coordinator.data
116 and self.
entity_descriptionentity_description.key
in self.coordinator.data[DATA_KEY_HOST]
121 """Base Entity for Supervisor."""
123 _attr_has_entity_name =
True
127 coordinator: HassioDataUpdateCoordinator,
128 entity_description: EntityDescription,
130 """Initialize base entity."""
133 self.
_attr_unique_id_attr_unique_id = f
"home_assistant_supervisor_{entity_description.key}"
138 """Return True if entity is available."""
141 and DATA_KEY_SUPERVISOR
in self.coordinator.data
143 in self.coordinator.data[DATA_KEY_SUPERVISOR]
147 """Subscribe to updates."""
150 self.async_on_remove(
152 SUPERVISOR_CONTAINER, self.entity_id, update_types
155 if CONTAINER_STATS
in update_types:
160 """Base Entity for Core."""
162 _attr_has_entity_name =
True
166 coordinator: HassioDataUpdateCoordinator,
167 entity_description: EntityDescription,
169 """Initialize base entity."""
177 """Return True if entity is available."""
180 and DATA_KEY_CORE
in self.coordinator.data
181 and self.
entity_descriptionentity_description.key
in self.coordinator.data[DATA_KEY_CORE]
185 """Subscribe to updates."""
188 self.async_on_remove(
190 CORE_CONTAINER, self.entity_id, update_types
193 if CONTAINER_STATS
in update_types:
CALLBACK_TYPE async_enable_container_updates(self, str slug, str entity_id, set[str] types)
None async_added_to_hass(self)
None __init__(self, HassioDataUpdateCoordinator coordinator, EntityDescription entity_description, dict[str, Any] addon)
None async_added_to_hass(self)
None __init__(self, HassioDataUpdateCoordinator coordinator, EntityDescription entity_description)
None __init__(self, HassioDataUpdateCoordinator coordinator, EntityDescription entity_description)
None __init__(self, HassioDataUpdateCoordinator coordinator, EntityDescription entity_description)
None __init__(self, HassioDataUpdateCoordinator coordinator, EntityDescription entity_description)
None async_added_to_hass(self)
None async_request_refresh(self)
web.Response get(self, web.Request request, str config_key)