40 lines
1.0 KiB
Python
40 lines
1.0 KiB
Python
|
"""Proxmox parent entity class."""
|
||
|
|
||
|
from homeassistant.helpers.update_coordinator import (
|
||
|
CoordinatorEntity,
|
||
|
DataUpdateCoordinator,
|
||
|
)
|
||
|
|
||
|
|
||
|
class ProxmoxEntity(CoordinatorEntity):
|
||
|
"""Represents any entity created for the Proxmox VE platform."""
|
||
|
|
||
|
def __init__(
|
||
|
self,
|
||
|
coordinator: DataUpdateCoordinator,
|
||
|
unique_id: str,
|
||
|
name: str,
|
||
|
icon: str,
|
||
|
host_name: str,
|
||
|
node_name: str,
|
||
|
vm_id: int | None = None,
|
||
|
) -> None:
|
||
|
"""Initialize the Proxmox entity."""
|
||
|
super().__init__(coordinator)
|
||
|
|
||
|
self.coordinator = coordinator
|
||
|
self._attr_unique_id = unique_id
|
||
|
self._attr_name = name
|
||
|
self._host_name = host_name
|
||
|
self._attr_icon = icon
|
||
|
self._available = True
|
||
|
self._node_name = node_name
|
||
|
self._vm_id = vm_id
|
||
|
|
||
|
self._state = None
|
||
|
|
||
|
@property
|
||
|
def available(self) -> bool:
|
||
|
"""Return True if entity is available."""
|
||
|
return self.coordinator.last_update_success and self._available
|