Create stream on demand in Teslemetry (#144777)

Create stream on demand
This commit is contained in:
Brett Adams 2025-05-13 16:05:33 +10:00 committed by GitHub
parent eec617b391
commit d4c2356c70
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -95,13 +95,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: TeslemetryConfigEntry) -
energysites: list[TeslemetryEnergyData] = [] energysites: list[TeslemetryEnergyData] = []
# Create the stream # Create the stream
stream = TeslemetryStream( stream: TeslemetryStream | None = None
session,
access_token,
server=f"{region.lower()}.teslemetry.com",
parse_timestamp=True,
manual=True,
)
for product in products: for product in products:
if ( if (
@ -123,6 +117,16 @@ async def async_setup_entry(hass: HomeAssistant, entry: TeslemetryConfigEntry) -
serial_number=vin, serial_number=vin,
) )
# Create stream if required
if not stream:
stream = TeslemetryStream(
session,
access_token,
server=f"{region.lower()}.teslemetry.com",
parse_timestamp=True,
manual=True,
)
remove_listener = stream.async_add_listener( remove_listener = stream.async_add_listener(
create_handle_vehicle_stream(vin, coordinator), create_handle_vehicle_stream(vin, coordinator),
{"vin": vin}, {"vin": vin},
@ -240,7 +244,8 @@ async def async_setup_entry(hass: HomeAssistant, entry: TeslemetryConfigEntry) -
entry.runtime_data = TeslemetryData(vehicles, energysites, scopes) entry.runtime_data = TeslemetryData(vehicles, energysites, scopes)
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS) await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
entry.async_create_background_task(hass, stream.listen(), "Teslemetry Stream") if stream:
entry.async_create_background_task(hass, stream.listen(), "Teslemetry Stream")
return True return True