From dbd8b1bc199f714d4769fbc1493c82d415ecb7ef Mon Sep 17 00:00:00 2001 From: Brett Adams Date: Fri, 24 Oct 2025 21:03:24 +1000 Subject: [PATCH] Fix history coordinator in Tesla Fleet and Teslemetry (#153068) Co-authored-by: Robert Resch --- homeassistant/components/tesla_fleet/coordinator.py | 7 +++++-- homeassistant/components/teslemetry/coordinator.py | 9 ++++++--- .../components/tesla_fleet/snapshots/test_sensor.ambr | 10 +++++----- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/homeassistant/components/tesla_fleet/coordinator.py b/homeassistant/components/tesla_fleet/coordinator.py index e3a31a2c0dc..2d6fbf582ca 100644 --- a/homeassistant/components/tesla_fleet/coordinator.py +++ b/homeassistant/components/tesla_fleet/coordinator.py @@ -251,11 +251,14 @@ class TeslaFleetEnergySiteHistoryCoordinator(DataUpdateCoordinator[dict[str, Any raise UpdateFailed("Received invalid data") # Add all time periods together - output = dict.fromkeys(ENERGY_HISTORY_FIELDS, 0) + output = dict.fromkeys(ENERGY_HISTORY_FIELDS, None) for period in data.get("time_series", []): for key in ENERGY_HISTORY_FIELDS: if key in period: - output[key] += period[key] + if output[key] is None: + output[key] = period[key] + else: + output[key] += period[key] return output diff --git a/homeassistant/components/teslemetry/coordinator.py b/homeassistant/components/teslemetry/coordinator.py index eed00ebc64f..a73424bdd28 100644 --- a/homeassistant/components/teslemetry/coordinator.py +++ b/homeassistant/components/teslemetry/coordinator.py @@ -199,10 +199,13 @@ class TeslemetryEnergyHistoryCoordinator(DataUpdateCoordinator[dict[str, Any]]): raise UpdateFailed("Received invalid data") # Add all time periods together - output = dict.fromkeys(ENERGY_HISTORY_FIELDS, 0) - for period in data["time_series"]: + output = dict.fromkeys(ENERGY_HISTORY_FIELDS, None) + for period in data.get("time_series", []): for key in ENERGY_HISTORY_FIELDS: if key in period: - output[key] += period[key] + if output[key] is None: + output[key] = period[key] + else: + output[key] += period[key] return output diff --git a/tests/components/tesla_fleet/snapshots/test_sensor.ambr b/tests/components/tesla_fleet/snapshots/test_sensor.ambr index eab1441399f..8db495adfab 100644 --- a/tests/components/tesla_fleet/snapshots/test_sensor.ambr +++ b/tests/components/tesla_fleet/snapshots/test_sensor.ambr @@ -71,7 +71,7 @@ 'last_changed': , 'last_reported': , 'last_updated': , - 'state': '0.0', + 'state': 'unknown', }) # --- # name: test_sensors[sensor.energy_site_battery_discharged-entry] @@ -146,7 +146,7 @@ 'last_changed': , 'last_reported': , 'last_updated': , - 'state': '0.0', + 'state': 'unknown', }) # --- # name: test_sensors[sensor.energy_site_battery_exported-entry] @@ -1121,7 +1121,7 @@ 'last_changed': , 'last_reported': , 'last_updated': , - 'state': '0.0', + 'state': 'unknown', }) # --- # name: test_sensors[sensor.energy_site_grid_exported_from_battery-entry] @@ -1881,7 +1881,7 @@ 'last_changed': , 'last_reported': , 'last_updated': , - 'state': '0.0', + 'state': 'unknown', }) # --- # name: test_sensors[sensor.energy_site_load_power-entry] @@ -2178,7 +2178,7 @@ 'last_changed': , 'last_reported': , 'last_updated': , - 'state': '0.0', + 'state': 'unknown', }) # --- # name: test_sensors[sensor.energy_site_solar_power-entry]