40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
"""Base class for all Subaru Entities."""
|
|
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
|
|
|
from .const import DOMAIN, ICONS, MANUFACTURER, VEHICLE_NAME, VEHICLE_VIN
|
|
|
|
|
|
class SubaruEntity(CoordinatorEntity):
|
|
"""Representation of a Subaru Entity."""
|
|
|
|
def __init__(self, vehicle_info, coordinator):
|
|
"""Initialize the Subaru Entity."""
|
|
super().__init__(coordinator)
|
|
self.car_name = vehicle_info[VEHICLE_NAME]
|
|
self.vin = vehicle_info[VEHICLE_VIN]
|
|
self.entity_type = "entity"
|
|
|
|
@property
|
|
def name(self):
|
|
"""Return name."""
|
|
return f"{self.car_name} {self.entity_type}"
|
|
|
|
@property
|
|
def unique_id(self) -> str:
|
|
"""Return a unique ID."""
|
|
return f"{self.vin}_{self.entity_type}"
|
|
|
|
@property
|
|
def icon(self):
|
|
"""Return the icon of the sensor."""
|
|
return ICONS.get(self.entity_type)
|
|
|
|
@property
|
|
def device_info(self):
|
|
"""Return the device_info of the device."""
|
|
return {
|
|
"identifiers": {(DOMAIN, self.vin)},
|
|
"name": self.car_name,
|
|
"manufacturer": MANUFACTURER,
|
|
}
|