Files
HomeAssistantVS/custom_components/spook/ectoplasms/cloud/entity.py
T
2026-07-20 22:52:35 -04:00

42 lines
1.3 KiB
Python

"""Spook - Your homie."""
from __future__ import annotations
from typing import TYPE_CHECKING
from homeassistant.components.cloud.const import DOMAIN as CLOUD_DOMAIN
from homeassistant.helpers.device_registry import DeviceInfo
from ...const import DOMAIN
from ...entity import SpookEntity, SpookEntityDescription
if TYPE_CHECKING:
from hass_nabucasa import Cloud
from homeassistant.components.cloud.client import CloudClient
class HomeAssistantCloudSpookEntity(SpookEntity):
"""Defines an base Spook entity for Home Assistant Cloud related entities."""
def __init__(
self, cloud: Cloud[CloudClient], description: SpookEntityDescription
) -> None:
"""Initialize the entity."""
super().__init__(description=description)
self._cloud = cloud
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, CLOUD_DOMAIN)},
manufacturer="Nabu Casa Inc.",
name="Home Assistant Cloud",
configuration_url="https://account.nabucasa.com/",
)
self._attr_unique_id = f"{CLOUD_DOMAIN}_{description.key}"
@property
def available(self) -> bool:
"""Return if cloud services are available."""
return (
super().available and self._cloud.is_logged_in and self._cloud.is_connected
)