Rename classes in Teslemetry (#144179)

This commit is contained in:
Brett Adams 2025-05-04 22:18:39 +10:00 committed by GitHub
parent 8046684179
commit 87fab1fa14
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
13 changed files with 80 additions and 61 deletions

View File

@ -24,7 +24,7 @@ from .const import TeslemetryState
from .entity import (
TeslemetryEnergyInfoEntity,
TeslemetryEnergyLiveEntity,
TeslemetryVehicleEntity,
TeslemetryVehiclePollingEntity,
TeslemetryVehicleStreamEntity,
)
from .models import TeslemetryEnergyData, TeslemetryVehicleData
@ -569,7 +569,7 @@ async def async_setup_entry(
class TeslemetryVehiclePollingBinarySensorEntity(
TeslemetryVehicleEntity, BinarySensorEntity
TeslemetryVehiclePollingEntity, BinarySensorEntity
):
"""Base class for Teslemetry vehicle binary sensors."""

View File

@ -13,7 +13,7 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import TeslemetryConfigEntry
from .entity import TeslemetryVehicleEntity
from .entity import TeslemetryVehiclePollingEntity
from .helpers import handle_command, handle_vehicle_command
from .models import TeslemetryVehicleData
@ -73,7 +73,7 @@ async def async_setup_entry(
)
class TeslemetryButtonEntity(TeslemetryVehicleEntity, ButtonEntity):
class TeslemetryButtonEntity(TeslemetryVehiclePollingEntity, ButtonEntity):
"""Base class for Teslemetry buttons."""
entity_description: TeslemetryButtonEntityDescription

View File

@ -30,7 +30,7 @@ from . import TeslemetryConfigEntry
from .const import DOMAIN, TeslemetryClimateSide
from .entity import (
TeslemetryRootEntity,
TeslemetryVehicleEntity,
TeslemetryVehiclePollingEntity,
TeslemetryVehicleStreamEntity,
)
from .helpers import handle_vehicle_command
@ -64,7 +64,7 @@ async def async_setup_entry(
async_add_entities(
chain(
(
TeslemetryPollingClimateEntity(
TeslemetryVehiclePollingClimateEntity(
vehicle, TeslemetryClimateSide.DRIVER, entry.runtime_data.scopes
)
if vehicle.api.pre2021 or vehicle.firmware < "2024.44.25"
@ -74,7 +74,7 @@ async def async_setup_entry(
for vehicle in entry.runtime_data.vehicles
),
(
TeslemetryPollingCabinOverheatProtectionEntity(
TeslemetryVehiclePollingCabinOverheatProtectionEntity(
vehicle, entry.runtime_data.scopes
)
if vehicle.api.pre2021 or vehicle.firmware < "2024.44.25"
@ -178,7 +178,9 @@ class TeslemetryClimateEntity(TeslemetryRootEntity, ClimateEntity):
self.async_write_ha_state()
class TeslemetryPollingClimateEntity(TeslemetryClimateEntity, TeslemetryVehicleEntity):
class TeslemetryVehiclePollingClimateEntity(
TeslemetryClimateEntity, TeslemetryVehiclePollingEntity
):
"""Polling vehicle climate entity."""
_attr_supported_features = (
@ -430,8 +432,8 @@ class TeslemetryCabinOverheatProtectionEntity(TeslemetryRootEntity, ClimateEntit
self.async_write_ha_state()
class TeslemetryPollingCabinOverheatProtectionEntity(
TeslemetryVehicleEntity, TeslemetryCabinOverheatProtectionEntity
class TeslemetryVehiclePollingCabinOverheatProtectionEntity(
TeslemetryVehiclePollingEntity, TeslemetryCabinOverheatProtectionEntity
):
"""Vehicle Cabin Overheat Protection."""

View File

@ -21,7 +21,7 @@ from homeassistant.helpers.restore_state import RestoreEntity
from . import TeslemetryConfigEntry
from .entity import (
TeslemetryRootEntity,
TeslemetryVehicleEntity,
TeslemetryVehiclePollingEntity,
TeslemetryVehicleStreamEntity,
)
from .helpers import handle_vehicle_command
@ -43,13 +43,15 @@ async def async_setup_entry(
async_add_entities(
chain(
(
TeslemetryPollingWindowEntity(vehicle, entry.runtime_data.scopes)
TeslemetryVehiclePollingWindowEntity(vehicle, entry.runtime_data.scopes)
if vehicle.api.pre2021 or vehicle.firmware < "2024.26"
else TeslemetryStreamingWindowEntity(vehicle, entry.runtime_data.scopes)
for vehicle in entry.runtime_data.vehicles
),
(
TeslemetryPollingChargePortEntity(vehicle, entry.runtime_data.scopes)
TeslemetryVehiclePollingChargePortEntity(
vehicle, entry.runtime_data.scopes
)
if vehicle.api.pre2021 or vehicle.firmware < "2024.44.25"
else TeslemetryStreamingChargePortEntity(
vehicle, entry.runtime_data.scopes
@ -57,7 +59,9 @@ async def async_setup_entry(
for vehicle in entry.runtime_data.vehicles
),
(
TeslemetryPollingFrontTrunkEntity(vehicle, entry.runtime_data.scopes)
TeslemetryVehiclePollingFrontTrunkEntity(
vehicle, entry.runtime_data.scopes
)
if vehicle.api.pre2021 or vehicle.firmware < "2024.26"
else TeslemetryStreamingFrontTrunkEntity(
vehicle, entry.runtime_data.scopes
@ -65,7 +69,9 @@ async def async_setup_entry(
for vehicle in entry.runtime_data.vehicles
),
(
TeslemetryPollingRearTrunkEntity(vehicle, entry.runtime_data.scopes)
TeslemetryVehiclePollingRearTrunkEntity(
vehicle, entry.runtime_data.scopes
)
if vehicle.api.pre2021 or vehicle.firmware < "2024.26"
else TeslemetryStreamingRearTrunkEntity(
vehicle, entry.runtime_data.scopes
@ -121,8 +127,8 @@ class TeslemetryWindowEntity(TeslemetryRootEntity, CoverEntity):
self.async_write_ha_state()
class TeslemetryPollingWindowEntity(
TeslemetryVehicleEntity, TeslemetryWindowEntity, CoverEntity
class TeslemetryVehiclePollingWindowEntity(
TeslemetryVehiclePollingEntity, TeslemetryWindowEntity, CoverEntity
):
"""Polling cover entity for windows."""
@ -238,8 +244,8 @@ class TeslemetryChargePortEntity(
self.async_write_ha_state()
class TeslemetryPollingChargePortEntity(
TeslemetryVehicleEntity, TeslemetryChargePortEntity
class TeslemetryVehiclePollingChargePortEntity(
TeslemetryVehiclePollingEntity, TeslemetryChargePortEntity
):
"""Polling cover entity for the charge port."""
@ -312,8 +318,8 @@ class TeslemetryFrontTrunkEntity(TeslemetryRootEntity, CoverEntity):
# In the future this could be extended to add aftermarket close support through a option flow
class TeslemetryPollingFrontTrunkEntity(
TeslemetryVehicleEntity, TeslemetryFrontTrunkEntity
class TeslemetryVehiclePollingFrontTrunkEntity(
TeslemetryVehiclePollingEntity, TeslemetryFrontTrunkEntity
):
"""Polling cover entity for the front trunk."""
@ -381,8 +387,8 @@ class TeslemetryRearTrunkEntity(TeslemetryRootEntity, CoverEntity):
self.async_write_ha_state()
class TeslemetryPollingRearTrunkEntity(
TeslemetryVehicleEntity, TeslemetryRearTrunkEntity
class TeslemetryVehiclePollingRearTrunkEntity(
TeslemetryVehiclePollingEntity, TeslemetryRearTrunkEntity
):
"""Base class for the rear trunk cover entities."""
@ -424,7 +430,7 @@ class TeslemetryStreamingRearTrunkEntity(
self._attr_is_closed = None if value is None else not value
class TeslemetrySunroofEntity(TeslemetryVehicleEntity, CoverEntity):
class TeslemetrySunroofEntity(TeslemetryVehiclePollingEntity, CoverEntity):
"""Cover entity for the sunroof."""
_attr_device_class = CoverDeviceClass.WINDOW

View File

@ -19,7 +19,7 @@ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from homeassistant.helpers.restore_state import RestoreEntity
from . import TeslemetryConfigEntry
from .entity import TeslemetryVehicleEntity, TeslemetryVehicleStreamEntity
from .entity import TeslemetryVehiclePollingEntity, TeslemetryVehicleStreamEntity
from .models import TeslemetryVehicleData
PARALLEL_UPDATES = 0
@ -74,7 +74,8 @@ async def async_setup_entry(
"""Set up the Teslemetry device tracker platform from a config entry."""
entities: list[
TeslemetryPollingDeviceTrackerEntity | TeslemetryStreamingDeviceTrackerEntity
TeslemetryVehiclePollingDeviceTrackerEntity
| TeslemetryStreamingDeviceTrackerEntity
] = []
# Only add vehicle location entities if the user has granted vehicle location scope.
if Scope.VEHICLE_LOCATION not in entry.runtime_data.scopes:
@ -85,7 +86,9 @@ async def async_setup_entry(
if vehicle.api.pre2021 or vehicle.firmware < description.streaming_firmware:
if description.polling_prefix:
entities.append(
TeslemetryPollingDeviceTrackerEntity(vehicle, description)
TeslemetryVehiclePollingDeviceTrackerEntity(
vehicle, description
)
)
else:
entities.append(
@ -95,7 +98,9 @@ async def async_setup_entry(
async_add_entities(entities)
class TeslemetryPollingDeviceTrackerEntity(TeslemetryVehicleEntity, TrackerEntity):
class TeslemetryVehiclePollingDeviceTrackerEntity(
TeslemetryVehiclePollingEntity, TrackerEntity
):
"""Base class for Teslemetry Tracker Entities."""
entity_description: TeslemetryDeviceTrackerEntityDescription

View File

@ -38,7 +38,7 @@ class TeslemetryRootEntity(Entity):
)
class TeslemetryEntity(
class TeslemetryPollingEntity(
TeslemetryRootEntity,
CoordinatorEntity[
TeslemetryVehicleDataCoordinator
@ -98,7 +98,7 @@ class TeslemetryEntity(
"""Update the attributes of the entity."""
class TeslemetryVehicleEntity(TeslemetryEntity):
class TeslemetryVehiclePollingEntity(TeslemetryPollingEntity):
"""Parent class for Teslemetry Vehicle entities."""
_last_update: int = 0
@ -130,7 +130,7 @@ class TeslemetryVehicleEntity(TeslemetryEntity):
return self.coordinator.data.get(self.key)
class TeslemetryEnergyLiveEntity(TeslemetryEntity):
class TeslemetryEnergyLiveEntity(TeslemetryPollingEntity):
"""Parent class for Teslemetry Energy Site Live entities."""
api: EnergySite
@ -151,7 +151,7 @@ class TeslemetryEnergyLiveEntity(TeslemetryEntity):
super().__init__(data.live_coordinator, key)
class TeslemetryEnergyInfoEntity(TeslemetryEntity):
class TeslemetryEnergyInfoEntity(TeslemetryPollingEntity):
"""Parent class for Teslemetry Energy Site Info Entities."""
api: EnergySite
@ -170,7 +170,7 @@ class TeslemetryEnergyInfoEntity(TeslemetryEntity):
super().__init__(data.info_coordinator, key)
class TeslemetryEnergyHistoryEntity(TeslemetryEntity):
class TeslemetryEnergyHistoryEntity(TeslemetryPollingEntity):
"""Parent class for Teslemetry Energy History Entities."""
def __init__(
@ -189,7 +189,7 @@ class TeslemetryEnergyHistoryEntity(TeslemetryEntity):
super().__init__(data.history_coordinator, key)
class TeslemetryWallConnectorEntity(TeslemetryEntity):
class TeslemetryWallConnectorEntity(TeslemetryPollingEntity):
"""Parent class for Teslemetry Wall Connector Entities."""
_attr_has_entity_name = True

View File

@ -17,7 +17,7 @@ from . import TeslemetryConfigEntry
from .const import DOMAIN
from .entity import (
TeslemetryRootEntity,
TeslemetryVehicleEntity,
TeslemetryVehiclePollingEntity,
TeslemetryVehicleStreamEntity,
)
from .helpers import handle_vehicle_command
@ -38,7 +38,7 @@ async def async_setup_entry(
async_add_entities(
chain(
(
TeslemetryPollingVehicleLockEntity(
TeslemetryVehiclePollingVehicleLockEntity(
vehicle, Scope.VEHICLE_CMDS in entry.runtime_data.scopes
)
if vehicle.api.pre2021 or vehicle.firmware < "2024.26"
@ -48,7 +48,7 @@ async def async_setup_entry(
for vehicle in entry.runtime_data.vehicles
),
(
TeslemetryPollingCableLockEntity(
TeslemetryVehiclePollingCableLockEntity(
vehicle, Scope.VEHICLE_CMDS in entry.runtime_data.scopes
)
if vehicle.api.pre2021 or vehicle.firmware < "2024.26"
@ -81,8 +81,8 @@ class TeslemetryVehicleLockEntity(TeslemetryRootEntity, LockEntity):
self.async_write_ha_state()
class TeslemetryPollingVehicleLockEntity(
TeslemetryVehicleEntity, TeslemetryVehicleLockEntity
class TeslemetryVehiclePollingVehicleLockEntity(
TeslemetryVehiclePollingEntity, TeslemetryVehicleLockEntity
):
"""Polling vehicle lock entity for Teslemetry."""
@ -152,8 +152,8 @@ class TeslemetryCableLockEntity(TeslemetryRootEntity, LockEntity):
self.async_write_ha_state()
class TeslemetryPollingCableLockEntity(
TeslemetryVehicleEntity, TeslemetryCableLockEntity
class TeslemetryVehiclePollingCableLockEntity(
TeslemetryVehiclePollingEntity, TeslemetryCableLockEntity
):
"""Polling cable lock entity for Teslemetry."""

View File

@ -18,7 +18,7 @@ from homeassistant.helpers.restore_state import RestoreEntity
from . import TeslemetryConfigEntry
from .entity import (
TeslemetryRootEntity,
TeslemetryVehicleEntity,
TeslemetryVehiclePollingEntity,
TeslemetryVehicleStreamEntity,
)
from .helpers import handle_vehicle_command
@ -52,7 +52,7 @@ async def async_setup_entry(
"""Set up the Teslemetry Media platform from a config entry."""
async_add_entities(
TeslemetryPollingMediaEntity(vehicle, entry.runtime_data.scopes)
TeslemetryVehiclePollingMediaEntity(vehicle, entry.runtime_data.scopes)
if vehicle.api.pre2021 or vehicle.firmware < "2025.2.6"
else TeslemetryStreamingMediaEntity(vehicle, entry.runtime_data.scopes)
for vehicle in entry.runtime_data.vehicles
@ -107,7 +107,9 @@ class TeslemetryMediaEntity(TeslemetryRootEntity, MediaPlayerEntity):
await handle_vehicle_command(self.api.media_prev_track())
class TeslemetryPollingMediaEntity(TeslemetryVehicleEntity, TeslemetryMediaEntity):
class TeslemetryVehiclePollingMediaEntity(
TeslemetryVehiclePollingEntity, TeslemetryMediaEntity
):
"""Polling vehicle media player class."""
def __init__(

View File

@ -33,7 +33,7 @@ from . import TeslemetryConfigEntry
from .entity import (
TeslemetryEnergyInfoEntity,
TeslemetryRootEntity,
TeslemetryVehicleEntity,
TeslemetryVehiclePollingEntity,
TeslemetryVehicleStreamEntity,
)
from .helpers import handle_command, handle_vehicle_command
@ -140,7 +140,7 @@ async def async_setup_entry(
async_add_entities(
chain(
(
TeslemetryPollingNumberEntity(
TeslemetryVehiclePollingNumberEntity(
vehicle,
description,
entry.runtime_data.scopes,
@ -183,8 +183,8 @@ class TeslemetryVehicleNumberEntity(TeslemetryRootEntity, NumberEntity):
self.async_write_ha_state()
class TeslemetryPollingNumberEntity(
TeslemetryVehicleEntity, TeslemetryVehicleNumberEntity
class TeslemetryVehiclePollingNumberEntity(
TeslemetryVehiclePollingEntity, TeslemetryVehicleNumberEntity
):
"""Vehicle polling number entity."""

View File

@ -20,7 +20,7 @@ from . import TeslemetryConfigEntry
from .entity import (
TeslemetryEnergyInfoEntity,
TeslemetryRootEntity,
TeslemetryVehicleEntity,
TeslemetryVehiclePollingEntity,
TeslemetryVehicleStreamEntity,
)
from .helpers import handle_command, handle_vehicle_command
@ -177,7 +177,7 @@ async def async_setup_entry(
async_add_entities(
chain(
(
TeslemetryPollingSelectEntity(
TeslemetryVehiclePollingSelectEntity(
vehicle, description, entry.runtime_data.scopes
)
if vehicle.api.pre2021
@ -223,7 +223,9 @@ class TeslemetrySelectEntity(TeslemetryRootEntity, SelectEntity):
self.async_write_ha_state()
class TeslemetryPollingSelectEntity(TeslemetryVehicleEntity, TeslemetrySelectEntity):
class TeslemetryVehiclePollingSelectEntity(
TeslemetryVehiclePollingEntity, TeslemetrySelectEntity
):
"""Base polling vehicle select entity class."""
def __init__(

View File

@ -41,7 +41,7 @@ from .entity import (
TeslemetryEnergyHistoryEntity,
TeslemetryEnergyInfoEntity,
TeslemetryEnergyLiveEntity,
TeslemetryVehicleEntity,
TeslemetryVehiclePollingEntity,
TeslemetryVehicleStreamEntity,
TeslemetryWallConnectorEntity,
)
@ -1633,7 +1633,7 @@ class TeslemetryStreamSensorEntity(TeslemetryVehicleStreamEntity, RestoreSensor)
self.async_write_ha_state()
class TeslemetryVehicleSensorEntity(TeslemetryVehicleEntity, SensorEntity):
class TeslemetryVehicleSensorEntity(TeslemetryVehiclePollingEntity, SensorEntity):
"""Base class for Teslemetry vehicle metric sensors."""
entity_description: TeslemetryVehicleSensorEntityDescription
@ -1696,7 +1696,7 @@ class TeslemetryStreamTimeSensorEntity(TeslemetryVehicleStreamEntity, SensorEnti
self.async_write_ha_state()
class TeslemetryVehicleTimeSensorEntity(TeslemetryVehicleEntity, SensorEntity):
class TeslemetryVehicleTimeSensorEntity(TeslemetryVehiclePollingEntity, SensorEntity):
"""Base class for Teslemetry vehicle time sensors."""
entity_description: TeslemetryTimeEntityDescription

View File

@ -25,7 +25,7 @@ from . import TeslemetryConfigEntry
from .entity import (
TeslemetryEnergyInfoEntity,
TeslemetryRootEntity,
TeslemetryVehicleEntity,
TeslemetryVehiclePollingEntity,
TeslemetryVehicleStreamEntity,
)
from .helpers import handle_command, handle_vehicle_command
@ -134,7 +134,7 @@ async def async_setup_entry(
async_add_entities(
chain(
(
TeslemetryPollingVehicleSwitchEntity(
TeslemetryVehiclePollingVehicleSwitchEntity(
vehicle, description, entry.runtime_data.scopes
)
if vehicle.api.pre2021
@ -184,8 +184,8 @@ class TeslemetryVehicleSwitchEntity(TeslemetryRootEntity, SwitchEntity):
self.async_write_ha_state()
class TeslemetryPollingVehicleSwitchEntity(
TeslemetryVehicleEntity, TeslemetryVehicleSwitchEntity
class TeslemetryVehiclePollingVehicleSwitchEntity(
TeslemetryVehiclePollingEntity, TeslemetryVehicleSwitchEntity
):
"""Base class for Teslemetry polling vehicle switch entities."""

View File

@ -15,7 +15,7 @@ from homeassistant.helpers.restore_state import RestoreEntity
from . import TeslemetryConfigEntry
from .entity import (
TeslemetryRootEntity,
TeslemetryVehicleEntity,
TeslemetryVehiclePollingEntity,
TeslemetryVehicleStreamEntity,
)
from .helpers import handle_vehicle_command
@ -38,7 +38,7 @@ async def async_setup_entry(
"""Set up the Teslemetry update platform from a config entry."""
async_add_entities(
TeslemetryPollingUpdateEntity(vehicle, entry.runtime_data.scopes)
TeslemetryVehiclePollingUpdateEntity(vehicle, entry.runtime_data.scopes)
if vehicle.api.pre2021 or vehicle.firmware < "2024.44.25"
else TeslemetryStreamingUpdateEntity(vehicle, entry.runtime_data.scopes)
for vehicle in entry.runtime_data.vehicles
@ -62,7 +62,9 @@ class TeslemetryUpdateEntity(TeslemetryRootEntity, UpdateEntity):
self.async_write_ha_state()
class TeslemetryPollingUpdateEntity(TeslemetryVehicleEntity, TeslemetryUpdateEntity):
class TeslemetryVehiclePollingUpdateEntity(
TeslemetryVehiclePollingEntity, TeslemetryUpdateEntity
):
"""Teslemetry Updates entity."""
def __init__(