From cfa422ad77e7b2f523b439bb2835ba506b104812 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 15 Nov 2025 11:29:58 +0000 Subject: [PATCH] Fix AttributeError for homes without active subscription Co-authored-by: jpawlowski <75446+jpawlowski@users.noreply.github.com> --- custom_components/tibber_prices/api.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/custom_components/tibber_prices/api.py b/custom_components/tibber_prices/api.py index ba1f774..1a7b27d 100644 --- a/custom_components/tibber_prices/api.py +++ b/custom_components/tibber_prices/api.py @@ -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