mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 05:07:41 +00:00
Add base entity to Garages Amsterdam (#98172)
This commit is contained in:
parent
3499ba3a9e
commit
e6ba6c295c
@ -421,6 +421,7 @@ omit =
|
|||||||
homeassistant/components/garadget/cover.py
|
homeassistant/components/garadget/cover.py
|
||||||
homeassistant/components/garages_amsterdam/__init__.py
|
homeassistant/components/garages_amsterdam/__init__.py
|
||||||
homeassistant/components/garages_amsterdam/binary_sensor.py
|
homeassistant/components/garages_amsterdam/binary_sensor.py
|
||||||
|
homeassistant/components/garages_amsterdam/entity.py
|
||||||
homeassistant/components/garages_amsterdam/sensor.py
|
homeassistant/components/garages_amsterdam/sensor.py
|
||||||
homeassistant/components/gc100/*
|
homeassistant/components/gc100/*
|
||||||
homeassistant/components/geniushub/*
|
homeassistant/components/geniushub/*
|
||||||
|
@ -8,13 +8,10 @@ from homeassistant.components.binary_sensor import (
|
|||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
from homeassistant.helpers.update_coordinator import (
|
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
|
||||||
CoordinatorEntity,
|
|
||||||
DataUpdateCoordinator,
|
|
||||||
)
|
|
||||||
|
|
||||||
from . import get_coordinator
|
from . import get_coordinator
|
||||||
from .const import ATTRIBUTION
|
from .entity import GaragesAmsterdamEntity
|
||||||
|
|
||||||
BINARY_SENSORS = {
|
BINARY_SENSORS = {
|
||||||
"state",
|
"state",
|
||||||
@ -30,27 +27,23 @@ async def async_setup_entry(
|
|||||||
coordinator = await get_coordinator(hass)
|
coordinator = await get_coordinator(hass)
|
||||||
|
|
||||||
async_add_entities(
|
async_add_entities(
|
||||||
GaragesamsterdamBinarySensor(
|
GaragesAmsterdamBinarySensor(
|
||||||
coordinator, config_entry.data["garage_name"], info_type
|
coordinator, config_entry.data["garage_name"], info_type
|
||||||
)
|
)
|
||||||
for info_type in BINARY_SENSORS
|
for info_type in BINARY_SENSORS
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class GaragesamsterdamBinarySensor(CoordinatorEntity, BinarySensorEntity):
|
class GaragesAmsterdamBinarySensor(GaragesAmsterdamEntity, BinarySensorEntity):
|
||||||
"""Binary Sensor representing garages amsterdam data."""
|
"""Binary Sensor representing garages amsterdam data."""
|
||||||
|
|
||||||
_attr_attribution = ATTRIBUTION
|
|
||||||
_attr_device_class = BinarySensorDeviceClass.PROBLEM
|
_attr_device_class = BinarySensorDeviceClass.PROBLEM
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self, coordinator: DataUpdateCoordinator, garage_name: str, info_type: str
|
self, coordinator: DataUpdateCoordinator, garage_name: str, info_type: str
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Initialize garages amsterdam binary sensor."""
|
"""Initialize garages amsterdam binary sensor."""
|
||||||
super().__init__(coordinator)
|
super().__init__(coordinator, garage_name, info_type)
|
||||||
self._attr_unique_id = f"{garage_name}-{info_type}"
|
|
||||||
self._garage_name = garage_name
|
|
||||||
self._info_type = info_type
|
|
||||||
self._attr_name = garage_name
|
self._attr_name = garage_name
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
24
homeassistant/components/garages_amsterdam/entity.py
Normal file
24
homeassistant/components/garages_amsterdam/entity.py
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
"""Generic entity for Garages Amsterdam."""
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from homeassistant.helpers.update_coordinator import (
|
||||||
|
CoordinatorEntity,
|
||||||
|
DataUpdateCoordinator,
|
||||||
|
)
|
||||||
|
|
||||||
|
from .const import ATTRIBUTION
|
||||||
|
|
||||||
|
|
||||||
|
class GaragesAmsterdamEntity(CoordinatorEntity):
|
||||||
|
"""Base Entity for garages amsterdam data."""
|
||||||
|
|
||||||
|
_attr_attribution = ATTRIBUTION
|
||||||
|
|
||||||
|
def __init__(
|
||||||
|
self, coordinator: DataUpdateCoordinator, garage_name: str, info_type: str
|
||||||
|
) -> None:
|
||||||
|
"""Initialize garages amsterdam entity."""
|
||||||
|
super().__init__(coordinator)
|
||||||
|
self._attr_unique_id = f"{garage_name}-{info_type}"
|
||||||
|
self._garage_name = garage_name
|
||||||
|
self._info_type = info_type
|
@ -5,13 +5,10 @@ from homeassistant.components.sensor import SensorEntity
|
|||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
from homeassistant.helpers.update_coordinator import (
|
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
|
||||||
CoordinatorEntity,
|
|
||||||
DataUpdateCoordinator,
|
|
||||||
)
|
|
||||||
|
|
||||||
from . import get_coordinator
|
from . import get_coordinator
|
||||||
from .const import ATTRIBUTION
|
from .entity import GaragesAmsterdamEntity
|
||||||
|
|
||||||
SENSORS = {
|
SENSORS = {
|
||||||
"free_space_short": "mdi:car",
|
"free_space_short": "mdi:car",
|
||||||
@ -29,12 +26,12 @@ async def async_setup_entry(
|
|||||||
"""Defer sensor setup to the shared sensor module."""
|
"""Defer sensor setup to the shared sensor module."""
|
||||||
coordinator = await get_coordinator(hass)
|
coordinator = await get_coordinator(hass)
|
||||||
|
|
||||||
entities: list[GaragesamsterdamSensor] = []
|
entities: list[GaragesAmsterdamSensor] = []
|
||||||
|
|
||||||
for info_type in SENSORS:
|
for info_type in SENSORS:
|
||||||
if getattr(coordinator.data[config_entry.data["garage_name"]], info_type) != "":
|
if getattr(coordinator.data[config_entry.data["garage_name"]], info_type) != "":
|
||||||
entities.append(
|
entities.append(
|
||||||
GaragesamsterdamSensor(
|
GaragesAmsterdamSensor(
|
||||||
coordinator, config_entry.data["garage_name"], info_type
|
coordinator, config_entry.data["garage_name"], info_type
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -42,20 +39,16 @@ async def async_setup_entry(
|
|||||||
async_add_entities(entities)
|
async_add_entities(entities)
|
||||||
|
|
||||||
|
|
||||||
class GaragesamsterdamSensor(CoordinatorEntity, SensorEntity):
|
class GaragesAmsterdamSensor(GaragesAmsterdamEntity, SensorEntity):
|
||||||
"""Sensor representing garages amsterdam data."""
|
"""Sensor representing garages amsterdam data."""
|
||||||
|
|
||||||
_attr_attribution = ATTRIBUTION
|
|
||||||
_attr_native_unit_of_measurement = "cars"
|
_attr_native_unit_of_measurement = "cars"
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self, coordinator: DataUpdateCoordinator, garage_name: str, info_type: str
|
self, coordinator: DataUpdateCoordinator, garage_name: str, info_type: str
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Initialize garages amsterdam sensor."""
|
"""Initialize garages amsterdam sensor."""
|
||||||
super().__init__(coordinator)
|
super().__init__(coordinator, garage_name, info_type)
|
||||||
self._attr_unique_id = f"{garage_name}-{info_type}"
|
|
||||||
self._garage_name = garage_name
|
|
||||||
self._info_type = info_type
|
|
||||||
self._attr_name = f"{garage_name} - {info_type}".replace("_", " ")
|
self._attr_name = f"{garage_name} - {info_type}".replace("_", " ")
|
||||||
self._attr_icon = SENSORS[info_type]
|
self._attr_icon = SENSORS[info_type]
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user