initial commit
This commit is contained in:
66
custom_components/afvalwijzer/common/day_sensor_data.py
Normal file
66
custom_components/afvalwijzer/common/day_sensor_data.py
Normal file
@@ -0,0 +1,66 @@
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from ..const.const import _LOGGER
|
||||
|
||||
|
||||
class DaySensorData(object):
|
||||
|
||||
##########################################################################
|
||||
# INIT
|
||||
##########################################################################
|
||||
def __init__(
|
||||
self,
|
||||
waste_data_formatted,
|
||||
default_label,
|
||||
):
|
||||
TODAY = datetime.now().strftime("%d-%m-%Y")
|
||||
|
||||
self.waste_data_formatted = sorted(
|
||||
waste_data_formatted, key=lambda d: d["date"]
|
||||
)
|
||||
self.today_date = datetime.strptime(TODAY, "%d-%m-%Y")
|
||||
self.tomorrow_date = datetime.strptime(TODAY, "%d-%m-%Y") + timedelta(days=1)
|
||||
self.day_after_tomorrow_date = datetime.strptime(TODAY, "%d-%m-%Y") + timedelta(
|
||||
days=2
|
||||
)
|
||||
self.default_label = default_label
|
||||
|
||||
self.waste_data_today = self.__gen_day_sensor(self.today_date)
|
||||
self.waste_data_tomorrow = self.__gen_day_sensor(self.tomorrow_date)
|
||||
self.waste_data_dot = self.__gen_day_sensor(self.day_after_tomorrow_date)
|
||||
|
||||
self.data = self._gen_day_sensor_data()
|
||||
|
||||
##########################################################################
|
||||
# GENERATE TODAY, TOMORROW, DOT SENSOR(S)
|
||||
##########################################################################
|
||||
|
||||
# Generate sensor data per date
|
||||
def __gen_day_sensor(self, date):
|
||||
day = []
|
||||
try:
|
||||
for waste in self.waste_data_formatted:
|
||||
item_date = waste["date"]
|
||||
if item_date == date:
|
||||
item_name = waste["type"]
|
||||
day.append(item_name)
|
||||
if not day:
|
||||
day.append(self.default_label)
|
||||
except Exception as err:
|
||||
_LOGGER.error(f"Other error occurred __gen_day_sensor: {err}")
|
||||
return day
|
||||
|
||||
# Generate sensor data for today, tomorrow, day after tomorrow
|
||||
def _gen_day_sensor_data(self):
|
||||
day_sensor = {}
|
||||
try:
|
||||
day_sensor["today"] = ", ".join(self.waste_data_today)
|
||||
day_sensor["tomorrow"] = ", ".join(self.waste_data_tomorrow)
|
||||
day_sensor["day_after_tomorrow"] = ", ".join(self.waste_data_dot)
|
||||
except Exception as err:
|
||||
_LOGGER.error(f"Other error occurred _gen_day_sensor_data: {err}")
|
||||
return day_sensor
|
||||
|
||||
@property
|
||||
def day_sensor_data(self):
|
||||
return self.data
|
||||
Reference in New Issue
Block a user