Fix AttributeError when homes lack active subscriptions (#28)

* Initial plan

* Fix AttributeError for homes without active subscription

Co-authored-by: jpawlowski <75446+jpawlowski@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jpawlowski <75446+jpawlowski@users.noreply.github.com>
This commit is contained in:
Copilot 2025-11-15 13:08:15 +01:00 committed by GitHub
parent cf221725a2
commit 78498a9aec
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -435,7 +435,7 @@ class TibberPricesApiClient:
for home in homes:
home_id = home.get("id")
if home_id:
if "currentSubscription" in home:
if "currentSubscription" in home and home["currentSubscription"] is not None:
# Extract currency from consumption data if available
currency = None
if home.get("consumption"):
@ -448,6 +448,10 @@ class TibberPricesApiClient:
currency,
)
else:
_LOGGER.debug(
"Home %s has no active subscription - price data will be unavailable",
home_id,
)
homes_data[home_id] = {}
data["homes"] = homes_data
@ -473,9 +477,13 @@ class TibberPricesApiClient:
for home in homes:
home_id = home.get("id")
if home_id:
if "currentSubscription" in home:
if "currentSubscription" in home and home["currentSubscription"] is not None:
homes_data[home_id] = _flatten_price_rating(home["currentSubscription"])
else:
_LOGGER.debug(
"Home %s has no active subscription - daily rating data will be unavailable",
home_id,
)
homes_data[home_id] = {}
data["homes"] = homes_data
@ -501,9 +509,13 @@ class TibberPricesApiClient:
for home in homes:
home_id = home.get("id")
if home_id:
if "currentSubscription" in home:
if "currentSubscription" in home and home["currentSubscription"] is not None:
homes_data[home_id] = _flatten_price_rating(home["currentSubscription"])
else:
_LOGGER.debug(
"Home %s has no active subscription - hourly rating data will be unavailable",
home_id,
)
homes_data[home_id] = {}
data["homes"] = homes_data
@ -529,9 +541,13 @@ class TibberPricesApiClient:
for home in homes:
home_id = home.get("id")
if home_id:
if "currentSubscription" in home:
if "currentSubscription" in home and home["currentSubscription"] is not None:
homes_data[home_id] = _flatten_price_rating(home["currentSubscription"])
else:
_LOGGER.debug(
"Home %s has no active subscription - monthly rating data will be unavailable",
home_id,
)
homes_data[home_id] = {}
data["homes"] = homes_data