From d04361509d5f709577108a7abfbad5ba8331f100 Mon Sep 17 00:00:00 2001 From: IATkachenko Date: Sat, 10 Feb 2024 15:46:29 +0300 Subject: [PATCH] fix: repair broken updates in HA `2024.2.1` Since https://github.com/home-assistant/core/commit/8d3f693907fa24a54544e3fd7e017c9ec5c2a652 `update_interval` is a property with setter. We MUST NOT overload it, because `_update_interval_seconds` was introduced and only new setter define it, but `_schedule_refresh` check its value, instead of checking `update_interval` Fix #99 --- custom_components/yandex_weather/updater.py | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/custom_components/yandex_weather/updater.py b/custom_components/yandex_weather/updater.py index 665ec3d..156d4d4 100644 --- a/custom_components/yandex_weather/updater.py +++ b/custom_components/yandex_weather/updater.py @@ -4,7 +4,6 @@ from dataclasses import dataclass from datetime import datetime, timedelta, timezone -from functools import cached_property import json import logging import math @@ -171,10 +170,11 @@ def __init__( self.__api_key = api_key self._lat = latitude self._lon = longitude - self._updates_per_day = updates_per_day self._device_id = device_id self._name = name self._language = language + # Site tariff have 50 free requests per day, but it may be changed + self.update_interval = timedelta(seconds=math.ceil((24 * 60 * 60) / updates_per_day)) if hass is not None: super().__init__( @@ -186,14 +186,6 @@ def __init__( ) self.data = {} - @cached_property - def update_interval(self) -> timedelta: - """How often we may send requests. - - Site tariff have 50 free requests per day, but it may be changed - """ - return timedelta(seconds=math.ceil((24 * 60 * 60) / self._updates_per_day)) - def process_data(self, dst: dict, src: dict, attributes: list[AttributeMapper]): """Convert Yandex API weather state to HA friendly.