mirror of
https://github.com/home-assistant/core.git
synced 2025-07-21 12:17:07 +00:00
Cleanup base streaming entity in Teslemetry (#143375)
This commit is contained in:
parent
6c7317fbc3
commit
c654936a91
@ -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 (
|
||||
|
@ -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."""
|
||||
|
Loading…
x
Reference in New Issue
Block a user