hass-core/homeassistant/components/ezviz/entity.py
RenierM26 1804006da0
EZVIZ: Add mac to device info (#85378)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2023-01-07 20:39:15 +01:00

40 lines
1.3 KiB
Python

"""An abstract class common to all EZVIZ entities."""
from __future__ import annotations
from typing import Any
from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC
from homeassistant.helpers.entity import DeviceInfo, Entity
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from .const import DOMAIN, MANUFACTURER
from .coordinator import EzvizDataUpdateCoordinator
class EzvizEntity(CoordinatorEntity[EzvizDataUpdateCoordinator], Entity):
"""Generic entity encapsulating common features of EZVIZ device."""
def __init__(
self,
coordinator: EzvizDataUpdateCoordinator,
serial: str,
) -> None:
"""Initialize the entity."""
super().__init__(coordinator)
self._serial = serial
self._camera_name = self.data["name"]
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, serial)},
connections={
(CONNECTION_NETWORK_MAC, self.data["mac_address"]),
},
manufacturer=MANUFACTURER,
model=self.data["device_sub_category"],
name=self.data["name"],
sw_version=self.data["version"],
)
@property
def data(self) -> dict[str, Any]:
"""Return coordinator data for this entity."""
return self.coordinator.data[self._serial]