From dbec7a5fc88b157ee01288bd09b1787b3dd8f02e Mon Sep 17 00:00:00 2001 From: BottlecapDave Date: Mon, 27 Dec 2021 20:26:16 +0000 Subject: [PATCH] fix(sensor): Added more logging around failing to retrieve consumption rate. --- custom_components/octopus_energy/sensor.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/custom_components/octopus_energy/sensor.py b/custom_components/octopus_energy/sensor.py index af5586cb..c09d177d 100644 --- a/custom_components/octopus_energy/sensor.py +++ b/custom_components/octopus_energy/sensor.py @@ -418,9 +418,10 @@ async def async_update(self): consumption_from = consumption["interval_start"] consumption_to = consumption["interval_end"] - rate = next(rate for rate in rates if rate["valid_from"] == consumption_from and rate["valid_to"] == consumption_to) - if rate == None: - raise Exception(f"Failed to find rate for consumption between {consumption_from} and {consumption_to}") + try: + rate = next(r for r in rates if r["valid_from"] == consumption_from and r["valid_to"] == consumption_to) + except StopIteration: + raise Exception(f"Failed to find rate for consumption between {consumption_from} and {consumption_to} for tariff {self._tariff_code}") cost = (rate["value_inc_vat"] * value) total_cost_in_pence = total_cost_in_pence + cost @@ -611,9 +612,10 @@ async def async_update(self): consumption_from = consumption["interval_start"] consumption_to = consumption["interval_end"] - rate = next(rate for rate in rates if rate["valid_from"] == consumption_from and rate["valid_to"] == consumption_to) - if rate == None: - raise Exception(f"Failed to find rate for consumption between {consumption_from} and {consumption_to}") + try: + rate = next(r for r in rates if r["valid_from"] == consumption_from and r["valid_to"] == consumption_to) + except StopIteration: + raise Exception(f"Failed to find rate for consumption between {consumption_from} and {consumption_to} for tariff {self._tariff_code}") cost = (rate["value_inc_vat"] * value) total_cost_in_pence = total_cost_in_pence + cost