Skip to content

Commit

Permalink
Update __init__.py
Browse files Browse the repository at this point in the history
Fixed problem with missing update of sensor.
  • Loading branch information
eyesoft authored Sep 23, 2022
1 parent 708e6ee commit adc1420
Showing 1 changed file with 38 additions and 37 deletions.
75 changes: 38 additions & 37 deletions custom_components/min_renovasjon/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,29 +132,6 @@ async def _get_from_web_api(self):
fraksjoner = await self._get_fraksjoner_from_web_api()
return tommekalender, fraksjoner

async def _get_calendar_list(self, refresh=False):
data = self._hass.data[DOMAIN]["calendar_list"]

if refresh or data is None:
tommekalender, fraksjoner = await self._get_from_web_api()
kalender_list = self._parse_calendar_list(tommekalender, fraksjoner)
else:
kalender_list = data

if kalender_list is None:
return None

check_for_refresh = False
if not refresh:
check_for_refresh = self._check_for_refresh_of_data(kalender_list)

if check_for_refresh:
kalender_list = await self._get_calendar_list(refresh=True)

self._hass.data[DOMAIN]["calendar_list"] = kalender_list

return kalender_list

@staticmethod
def _parse_calendar_list(tommekalender, fraksjoner):
kalender_list = []
Expand Down Expand Up @@ -200,31 +177,55 @@ def _check_for_refresh_of_data(kalender_list):
for entry in kalender_list:
_, _, _, tommedato_forste, tommedato_neste = entry

if tommedato_forste is None or tommedato_neste is None:
_LOGGER.debug("Data needs refresh")
return True

if tommedato_forste.date() < date.today() or tommedato_neste.date() < date.today():
if tommedato_forste is None or tommedato_neste is None or tommedato_forste.date() < date.today() or tommedato_neste.date() < date.today():
_LOGGER.debug("Data needs refresh")
return True

return False

@property
def calender_list(self):
return self._hass.data[DOMAIN]["calendar_list"]

async def get_calender_for_fraction(self, fraksjon_id):
calendar_list = self._hass.data[DOMAIN]["calendar_list"]

if calendar_list is None:
calendar_list = await self._get_calendar_list()
calendar_list = await self.get_calendar_list()
self._hass.data[DOMAIN]["calendar_list"] = calendar_list

for entry in calendar_list:
entry_fraksjon_id, _, _, _, _= entry
if int(fraksjon_id) == int(entry_fraksjon_id):
return entry
if entry is not None:
entry_fraksjon_id, _, _, tommedato_forste, tommedato_neste = entry
if int(fraksjon_id) == int(entry_fraksjon_id):
if tommedato_forste is None or tommedato_neste is None or tommedato_forste.date() < date.today() or tommedato_neste.date() < date.today():
_LOGGER.debug("Data needs refresh")
self._hass.data[DOMAIN]["calendar_list"] = None
entry = await self.get_calender_for_fraction(fraksjon_id)
return entry
return None

async def get_calendar_list(self, refresh=False):
data = self._hass.data[DOMAIN]["calendar_list"]

if refresh or data is None:
tommekalender, fraksjoner = await self._get_from_web_api()
kalender_list = self._parse_calendar_list(tommekalender, fraksjoner)
else:
kalender_list = data

@property
def calender_list(self):
return self._hass.data[DOMAIN]["calendar_list"]
if kalender_list is None:
return None

check_for_refresh = False
if not refresh:
check_for_refresh = self._check_for_refresh_of_data(kalender_list)

if check_for_refresh:
kalender_list = await self.get_calendar_list(refresh=True)

self._hass.data[DOMAIN]["calendar_list"] = kalender_list

return kalender_list

def format_date(self, date):
if self._date_format == "None":
Expand Down

0 comments on commit adc1420

Please sign in to comment.