Cleanup base streaming entity in Teslemetry (#143375)

This commit is contained in:
Brett Adams 2025-04-22 21:40:09 +10:00 committed by GitHub
parent 6c7317fbc3
commit c654936a91
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 2 additions and 31 deletions

View File

@ -175,7 +175,7 @@ class TeslemetryStreamingWindowEntity(
self.async_on_remove(
self.stream.async_add_listener(
self._handle_stream_update,
{"vin": self.vin, "data": {self.streaming_key: None}},
{"vin": self.vin, "data": None},
)
)
for signal in (

View File

@ -5,7 +5,6 @@ from typing import Any
from tesla_fleet_api.const import Scope
from tesla_fleet_api.teslemetry import EnergySite, Vehicle
from teslemetry_stream import Signal
from homeassistant.exceptions import ServiceValidationError
from homeassistant.helpers.device_registry import DeviceInfo
@ -243,11 +242,8 @@ class TeslemetryWallConnectorEntity(TeslemetryEntity):
class TeslemetryVehicleStreamEntity(TeslemetryRootEntity):
"""Parent class for Teslemetry Vehicle Stream entities."""
def __init__(
self, data: TeslemetryVehicleData, key: str, streaming_key: Signal | None = None
) -> None:
def __init__(self, data: TeslemetryVehicleData, key: str) -> None:
"""Initialize common aspects of a Teslemetry entity."""
self.streaming_key = streaming_key
self.vehicle = data
self.api = data.api
@ -259,31 +255,6 @@ class TeslemetryVehicleStreamEntity(TeslemetryRootEntity):
self._attr_unique_id = f"{data.vin}-{key}"
self._attr_device_info = data.device
async def async_added_to_hass(self) -> None:
"""When entity is added to hass."""
await super().async_added_to_hass()
if self.streaming_key:
self.async_on_remove(
self.stream.async_add_listener(
self._handle_stream_update,
{"vin": self.vin, "data": {self.streaming_key: None}},
)
)
self.vehicle.config_entry.async_create_background_task(
self.hass,
self.add_field(self.streaming_key),
f"Adding field {self.streaming_key.value} to {self.vehicle.vin}",
)
def _handle_stream_update(self, data: dict[str, Any]) -> None:
"""Handle updated data from the stream."""
self._async_value_from_stream(data["data"][self.streaming_key])
self.async_write_ha_state()
def _async_value_from_stream(self, value: Any) -> None:
"""Update the entity with the latest value from the stream."""
raise NotImplementedError
@property
def available(self) -> bool:
"""Return True if entity is available."""