Handle empty energy sites in Tesla integrations (#122355)

This commit is contained in:
Brett Adams 2024-07-22 21:14:15 +10:00 committed by GitHub
parent ea94cdb668
commit 31d3b3b675
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 67 additions and 4 deletions

View File

@ -26,7 +26,7 @@ from homeassistant.helpers.config_entry_oauth2_flow import (
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.device_registry import DeviceInfo
from .const import DOMAIN, MODELS
from .const import DOMAIN, LOGGER, MODELS
from .coordinator import (
TeslaFleetEnergySiteInfoCoordinator,
TeslaFleetEnergySiteLiveCoordinator,
@ -113,6 +113,17 @@ async def async_setup_entry(hass: HomeAssistant, entry: TeslaFleetConfigEntry) -
)
elif "energy_site_id" in product and tesla.energy:
site_id = product["energy_site_id"]
if not (
product["components"]["battery"]
or product["components"]["solar"]
or "wall_connectors" in product["components"]
):
LOGGER.debug(
"Skipping Energy Site %s as it has no components",
site_id,
)
continue
api = EnergySpecific(tesla.energy, site_id)
live_coordinator = TeslaFleetEnergySiteLiveCoordinator(hass, api)

View File

@ -108,6 +108,17 @@ async def async_setup_entry(hass: HomeAssistant, entry: TeslemetryConfigEntry) -
)
elif "energy_site_id" in product and Scope.ENERGY_DEVICE_DATA in scopes:
site_id = product["energy_site_id"]
if not (
product["components"]["battery"]
or product["components"]["solar"]
or "wall_connectors" in product["components"]
):
LOGGER.debug(
"Skipping Energy Site %s as it has no components",
site_id,
)
continue
api = EnergySpecific(teslemetry.energy, site_id)
live_coordinator = TeslemetryEnergySiteLiveCoordinator(hass, api)
info_coordinator = TeslemetryEnergySiteInfoCoordinator(hass, api, product)

View File

@ -111,6 +111,17 @@ async def async_setup_entry(hass: HomeAssistant, entry: TessieConfigEntry) -> bo
for product in products:
if "energy_site_id" in product:
site_id = product["energy_site_id"]
if not (
product["components"]["battery"]
or product["components"]["solar"]
or "wall_connectors" in product["components"]
):
_LOGGER.debug(
"Skipping Energy Site %s as it has no components",
site_id,
)
continue
api = EnergySpecific(tessie.energy, site_id)
energysites.append(
TessieEnergyData(

View File

@ -115,7 +115,17 @@
"features": {
"rate_plan_manager_no_pricing_constraint": true
}
},
{
"energy_site_id": 98765,
"components": {
"battery": false,
"solar": false,
"grid": false,
"load_meter": false,
"market_type": "residential"
}
}
],
"count": 2
"count": 3
}

View File

@ -115,7 +115,17 @@
"features": {
"rate_plan_manager_no_pricing_constraint": true
}
},
{
"energy_site_id": 98765,
"components": {
"battery": false,
"solar": false,
"grid": false,
"load_meter": false,
"market_type": "residential"
}
}
],
"count": 2
"count": 3
}

View File

@ -115,7 +115,17 @@
"features": {
"rate_plan_manager_no_pricing_constraint": true
}
},
{
"energy_site_id": 98765,
"components": {
"battery": false,
"solar": false,
"grid": false,
"load_meter": false,
"market_type": "residential"
}
}
],
"count": 2
"count": 3
}