Skip to content

Commit

Permalink
minor fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
Bram van Dartel committed Sep 30, 2020
1 parent 046f008 commit 091e369
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 26 deletions.
1 change: 1 addition & 0 deletions custom_components/afvalwijzer/const/const.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@
ATTR_IS_COLLECTION_DATE_DAY_AFTER_TOMORROW = "is_collection_date_day_after_tomorrow"
ATTR_DAYS_UNTIL_COLLECTION_DATE = "days_until_collection_date"
ATTR_YEAR_MONTH_DAY_DATE = "year_month_day_date"
ATTR_NAMED_DATE = "named_date"

_LOGGER = logging.getLogger(__name__)

Expand Down
31 changes: 17 additions & 14 deletions custom_components/afvalwijzer/sensor_custom.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
ATTR_DAYS_UNTIL_COLLECTION_DATE,
ATTR_LAST_UPDATE,
ATTR_YEAR_MONTH_DAY_DATE,
ATTR_NAMED_DATE,
MIN_TIME_BETWEEN_UPDATES,
PARALLEL_UPDATES,
SENSOR_ICON,
Expand All @@ -26,6 +27,7 @@ def __init__(self, hass, fetch_afvalwijzer_data, waste_type, default_label):
self._state = None
self._icon = SENSOR_ICON
self._year_month_day_date = None
self._named_date = None

@property
def name(self):
Expand All @@ -45,6 +47,7 @@ def device_state_attributes(self):
return {
ATTR_LAST_UPDATE: self._last_update,
ATTR_YEAR_MONTH_DAY_DATE: self._year_month_day_date,
ATTR_NAMED_DATE: self._named_date,
}
else:
return {ATTR_LAST_UPDATE: self._last_update}
Expand All @@ -54,29 +57,29 @@ async def async_update(self):
await self.hass.async_add_executor_job(self.fetch_afvalwijzer_data.update)
waste_data_custom = self.fetch_afvalwijzer_data.waste_data_custom
_LOGGER.debug(
"Generating state via AfvalwijzerCustomSensor for = %s", waste_data_custom
"Generating state via AfvalwijzerCustomSensor for = %s with value %s",
self.waste_type,
waste_data_custom[self.waste_type],
)

self._last_update = datetime.today().strftime("%d-%m-%Y %H:%M")
self._state = waste_data_custom[self.waste_type]

if self.waste_type == "first_next_date":
if waste_data_custom["first_next_date"] != self.default_label:

# Add date in Dutch and US format
# Add date in different formats
collection_date_nl = waste_data_custom[self.waste_type]
_LOGGER.debug(
"AfvalwijzerCustomSensorcollection_date_nl = %s", collection_date_nl
)
collection_date_convert_to_us = datetime.strptime(

collection_date_us = datetime.strptime(
waste_data_custom[self.waste_type], "%d-%m-%Y"
).strftime("%Y-%m-%d")
collection_date_us = datetime.strptime(
collection_date_convert_to_us, "%Y-%m-%d"
).date()
_LOGGER.debug(
"AfvalwijzerCustomSensorcollection_date_us = %s", collection_date_us
)

collection_date_named = datetime.strptime(
waste_data_custom[self.waste_type], "%d-%m-%Y"
).strftime("%a %d %b")

# Add attribute date in format "%Y-%m-%d"
self._year_month_day_date = str(collection_date_us)
self._year_month_day_date = collection_date_us

# Add attribute date in format "%a %d %b"
self._named_date = collection_date_named
36 changes: 24 additions & 12 deletions custom_components/afvalwijzer/sensor_provider.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
ATTR_IS_COLLECTION_DATE_TOMORROW,
ATTR_LAST_UPDATE,
ATTR_YEAR_MONTH_DAY_DATE,
ATTR_NAMED_DATE,
MIN_TIME_BETWEEN_UPDATES,
PARALLEL_UPDATES,
SENSOR_ICON,
Expand All @@ -39,6 +40,7 @@ def __init__(
self._is_collection_date_tomorrow = False
self._is_collection_date_day_after_tomorrow = False
self._year_month_day_date = None
self._named_date = None

@property
def name(self):
Expand All @@ -55,45 +57,53 @@ def state(self):
@property
def device_state_attributes(self):
return {
ATTR_YEAR_MONTH_DAY_DATE: self._year_month_day_date,
ATTR_LAST_UPDATE: self._last_update,
ATTR_HIDDEN: self._hidden,
ATTR_DAYS_UNTIL_COLLECTION_DATE: self._days_until_collection_date,
ATTR_IS_COLLECTION_DATE_TODAY: self._is_collection_date_today,
ATTR_IS_COLLECTION_DATE_TOMORROW: self._is_collection_date_tomorrow,
ATTR_IS_COLLECTION_DATE_DAY_AFTER_TOMORROW: self._is_collection_date_day_after_tomorrow,
ATTR_YEAR_MONTH_DAY_DATE: self._year_month_day_date,
ATTR_NAMED_DATE: self._named_date,
}

@Throttle(MIN_TIME_BETWEEN_UPDATES)
async def async_update(self):
await self.hass.async_add_executor_job(self.fetch_afvalwijzer_data.update)
waste_data_provider = self.fetch_afvalwijzer_data.waste_data_provider
_LOGGER.debug(
"Generating state via AfvalwijzerProviderSensor for = %s",
waste_data_provider,
"Generating state via AfvalwijzerProviderSensor for = %s with value %s",
self.waste_type,
waste_data_provider[self.waste_type],
)

try:
if waste_data_provider:
if self.waste_type in waste_data_provider:
if waste_data_provider[self.waste_type] != self.default_label:
# Add attribute, set the last updated status of the sensor
self._last_update = datetime.today().strftime("%d-%m-%Y %H:%M")

if waste_data_provider[self.waste_type] != self.default_label:
# Add date in Dutch and US format
collection_date_nl = waste_data_provider[self.waste_type]
_LOGGER.debug("collection_date_nl = %s", collection_date_nl)
collection_date_convert_to_us = datetime.strptime(

collection_date_convert = datetime.strptime(
waste_data_provider[self.waste_type], "%d-%m-%Y"
).strftime("%Y-%m-%d")

collection_date_us = datetime.strptime(
collection_date_convert_to_us, "%Y-%m-%d"
collection_date_convert, "%Y-%m-%d"
).date()
_LOGGER.debug("collection_date_us = %s", collection_date_us)

collection_date_named = datetime.strptime(
waste_data_provider[self.waste_type], "%d-%m-%Y"
).strftime("%a %d %b")

# Add attribute date in format "%Y-%m-%d"
self._year_month_day_date = str(collection_date_us)

# Add attribute, set the last updated status of the sensor
self._last_update = datetime.today().strftime("%d-%m-%Y %H:%M")
# Add attribute date in format "%a %d %b"
self._named_date = collection_date_named

# Add attribute, is the collection date today, tomorrow and/or day_after_tomorrow?
self._is_collection_date_today = (
Expand All @@ -109,19 +119,21 @@ async def async_update(self):
# Add attribute, days until collection date
delta = collection_date_us - date.today()
self._days_until_collection_date = delta.days

self._state = collection_date_nl
else:
raise (ValueError)
self._state = self.default_label
else:
raise (ValueError)
else:
raise (ValueError)
except ValueError:
_LOGGER.debug("ValueError AfvalwijzerProviderSensor")
_LOGGER.debug("ValueError AfvalwijzerProviderSensor - unable to set value!")
self._state = self.default_label
self._hidden = False
self._days_until_collection_date = None
self._year_month_day_date = None
self._named_date = None
self._is_collection_date_today = False
self._is_collection_date_tomorrow = False
self._is_collection_date_day_after_tomorrow = False
Expand Down

0 comments on commit 091e369

Please sign in to comment.