Fix credit sensor when there are no vehicles in Teslemetry (#149925)

This commit is contained in:
Brett Adams
2025-08-04 19:26:14 +10:00
committed by GitHub
parent 377ca04be8
commit bd3fe1d4ad
2 changed files with 9 additions and 8 deletions

View File

@@ -28,7 +28,7 @@ class TeslemetryData:
vehicles: list[TeslemetryVehicleData] vehicles: list[TeslemetryVehicleData]
energysites: list[TeslemetryEnergyData] energysites: list[TeslemetryEnergyData]
scopes: list[Scope] scopes: list[Scope]
stream: TeslemetryStream stream: TeslemetryStream | None
@dataclass @dataclass

View File

@@ -45,7 +45,7 @@ from .entity import (
TeslemetryVehicleStreamEntity, TeslemetryVehicleStreamEntity,
TeslemetryWallConnectorEntity, TeslemetryWallConnectorEntity,
) )
from .models import TeslemetryData, TeslemetryEnergyData, TeslemetryVehicleData from .models import TeslemetryEnergyData, TeslemetryVehicleData
PARALLEL_UPDATES = 0 PARALLEL_UPDATES = 0
@@ -1617,11 +1617,12 @@ async def async_setup_entry(
if energysite.history_coordinator is not None if energysite.history_coordinator is not None
) )
entities.append( if entry.runtime_data.stream is not None:
TeslemetryCreditBalanceSensor( entities.append(
entry.unique_id or entry.entry_id, entry.runtime_data TeslemetryCreditBalanceSensor(
entry.unique_id or entry.entry_id, entry.runtime_data.stream
)
) )
)
async_add_entities(entities) async_add_entities(entities)
@@ -1840,12 +1841,12 @@ class TeslemetryCreditBalanceSensor(RestoreSensor):
_attr_state_class = SensorStateClass.MEASUREMENT _attr_state_class = SensorStateClass.MEASUREMENT
_attr_suggested_display_precision = 0 _attr_suggested_display_precision = 0
def __init__(self, uid: str, data: TeslemetryData) -> None: def __init__(self, uid: str, stream: TeslemetryStream) -> None:
"""Initialize common aspects of a Teslemetry entity.""" """Initialize common aspects of a Teslemetry entity."""
self._attr_translation_key = "credit_balance" self._attr_translation_key = "credit_balance"
self._attr_unique_id = f"{uid}_credit_balance" self._attr_unique_id = f"{uid}_credit_balance"
self.stream = data.stream self.stream = stream
async def async_added_to_hass(self) -> None: async def async_added_to_hass(self) -> None:
"""Handle entity which will be added.""" """Handle entity which will be added."""