Skip to content

Commit 749fa18

Browse files
authored
Update afvalbeheer.py
1 parent 43c46a7 commit 749fa18

File tree

1 file changed

+36
-41
lines changed

1 file changed

+36
-41
lines changed

afvalbeheer.py

Lines changed: 36 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
"""
22
Sensor component for waste pickup dates from dutch waste collectors (using the http://www.opzet.nl app)
33
Original Author: Pippijn Stortelder
4-
Current Version: 2.1.2 20190201 - Pippijn Stortelder
4+
Current Version: 2.1.3 20190204 - Pippijn Stortelder
55
20190116 - Merged different waste collectors into 1 component
66
20190119 - Added an option to change date format and fixed spelling mistakes
77
20190122 - Refactor code and bug fix
88
20190123 - Added 12 more waste collectors
99
20190130 - FIXED PMD for some waste collectors
1010
20190131 - Added Today and Tomorrow sensors
1111
20190201 - Added option for date only
12+
20190204 - Small bug fix
1213
1314
Description:
1415
Provides sensors for the following Dutch waste collectors;
@@ -79,14 +80,14 @@
7980
from homeassistant.util import Throttle
8081
from homeassistant.helpers.entity import Entity
8182

82-
__version__ = '2.1.2'
83+
__version__ = '2.1.3'
8384

8485
_LOGGER = logging.getLogger(__name__)
8586

8687
MIN_TIME_BETWEEN_UPDATES = timedelta(hours=1)
8788
CONF_WASTE_COLLECTOR = 'wastecollector'
8889
CONF_POSTCODE = 'postcode'
89-
CONF_STREETNUMBER = 'streetnumber'
90+
CONF_STREET_NUMBER = 'streetnumber'
9091
CONF_DATE_FORMAT = 'dateformat'
9192
CONF_TODAY_TOMORROW = 'upcomingsensor'
9293
CONF_DATE_ONLY = 'dateonly'
@@ -140,7 +141,7 @@
140141
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
141142
vol.Required(CONF_RESOURCES, default=[]): cv.ensure_list,
142143
vol.Required(CONF_POSTCODE, default='1111AA'): cv.string,
143-
vol.Required(CONF_STREETNUMBER, default='1'): cv.string,
144+
vol.Required(CONF_STREET_NUMBER, default='1'): cv.string,
144145
vol.Optional(CONF_WASTE_COLLECTOR, default='Cure'): cv.string,
145146
vol.Optional(CONF_DATE_FORMAT, default='%d-%m-%Y'): cv.string,
146147
vol.Optional(CONF_TODAY_TOMORROW, default=False): cv.boolean,
@@ -152,7 +153,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
152153
_LOGGER.debug('Setup Rest API retriever')
153154

154155
postcode = config.get(CONF_POSTCODE)
155-
street_number = config.get(CONF_STREETNUMBER)
156+
street_number = config.get(CONF_STREET_NUMBER)
156157
waste_collector = config.get(CONF_WASTE_COLLECTOR).lower()
157158
date_format = config.get(CONF_DATE_FORMAT)
158159
sensor_today = config.get(CONF_TODAY_TOMORROW)
@@ -208,7 +209,7 @@ def update(self):
208209

209210
for key in request_json:
210211
if not key['ophaaldatum'] is None:
211-
sensor_dict[str(key['id'])] = [datetime.strptime(key['ophaaldatum'], '%Y-%m-%d'), key['title'], key['title'], key['icon_data']]
212+
sensor_dict[str(key['id'])] = [datetime.strptime(key['ophaaldatum'], '%Y-%m-%d'), key['title'], key['icon_data']]
212213

213214
check_title = key['menu_title']
214215
title = ''
@@ -243,11 +244,11 @@ class WasteSensor(Entity):
243244

244245
def __init__(self, data, sensor_type, waste_collector, date_format, date_only):
245246
self.data = data
246-
self.type = sensor_type
247+
self.sensor_type = sensor_type
247248
self.waste_collector = waste_collector
248249
self.date_format = date_format
249250
self.date_only = date_only
250-
self._name = waste_collector + ' ' + self.type
251+
self._name = waste_collector + ' ' + self.sensor_type
251252
self._unit = ''
252253
self._hidden = False
253254
self._entity_picture = None
@@ -288,8 +289,8 @@ def update(self):
288289
retrieved_data = 0
289290
try:
290291
if waste_data is not None:
291-
if self.type in COLLECTOR_WASTE_ID[self.waste_collector]:
292-
for waste_id in COLLECTOR_WASTE_ID[self.waste_collector][self.type]:
292+
if self.sensor_type in COLLECTOR_WASTE_ID[self.waste_collector]:
293+
for waste_id in COLLECTOR_WASTE_ID[self.waste_collector][self.sensor_type]:
293294
if waste_id in waste_data:
294295
today = datetime.today()
295296
pickup_info = waste_data.get(waste_id)
@@ -298,7 +299,7 @@ def update(self):
298299

299300
self._official_name = pickup_info[1]
300301
self._fraction_id = waste_id
301-
self._entity_picture = pickup_info[3]
302+
self._entity_picture = pickup_info[2]
302303
self._last_update = today.strftime('%d-%m-%Y %H:%M')
303304
self._hidden = False
304305

@@ -319,33 +320,26 @@ def update(self):
319320
retrieved_data = 1
320321

321322
if retrieved_data == 0:
322-
self._state = None
323-
self._official_name = None
324-
self._fraction_id = None
325-
self._hidden = True
323+
self.set_state_none()
326324
else:
327-
self._state = None
328-
self._official_name = None
329-
self._fraction_id = None
330-
self._hidden = True
325+
self.set_state_none()
331326
else:
332-
self._state = None
333-
self._official_name = None
334-
self._fraction_id = None
335-
self._hidden = True
327+
self.set_state_none()
336328

337329
except ValueError:
338-
self._state = None
339-
self._official_name = None
340-
self._fraction_id = None
341-
self._hidden = True
342-
330+
self.set_state_none()
331+
332+
def set_state_none(self):
333+
self._state = None
334+
self._official_name = None
335+
self._fraction_id = None
336+
self._hidden = True
343337

344338
class WasteTodaySensor(Entity):
345339

346340
def __init__(self, data, sensor_types, waste_collector, day_sensor):
347341
self.data = data
348-
self.types = sensor_types
342+
self.sensor_types = sensor_types
349343
self.waste_collector = waste_collector
350344
self.day = day_sensor
351345
self._name = waste_collector + ' ' + self.day
@@ -378,20 +372,20 @@ def update(self):
378372
try:
379373
if waste_data is not None:
380374
new_state = []
381-
for type in self.types:
382-
if type in COLLECTOR_WASTE_ID[self.waste_collector]:
383-
for waste_id in COLLECTOR_WASTE_ID[self.waste_collector][type]:
375+
for sensor_type in self.sensor_types:
376+
if sensor_type in COLLECTOR_WASTE_ID[self.waste_collector]:
377+
for waste_id in COLLECTOR_WASTE_ID[self.waste_collector][sensor_type]:
384378
if waste_id in waste_data:
385379
today = datetime.today()
386380
pickup_info = waste_data.get(waste_id)
387381
pick_update = pickup_info[0]
388382
date_diff = (pick_update - today).days + 1
389383

390384
if date_diff == 1 and self.day == "morgen":
391-
new_state.append(type)
385+
new_state.append(sensor_type)
392386
retrieved_data = 1
393387
elif date_diff < 1 and self.day == "vandaag":
394-
new_state.append(type)
388+
new_state.append(sensor_type)
395389
retrieved_data = 1
396390

397391
if retrieved_data == 0:
@@ -401,12 +395,13 @@ def update(self):
401395
self._state = ', '.join(new_state)
402396
self._hidden = False
403397
else:
404-
self._state = None
405-
self._hidden = True
398+
self.set_state_none()
406399
else:
407-
self._state = None
408-
self._hidden = True
409-
400+
self.set_state_none()
401+
410402
except ValueError:
411-
self._state = None
412-
self._hidden = True
403+
self.set_state_none()
404+
405+
def set_state_none(self):
406+
self._state = None
407+
self._hidden = True

0 commit comments

Comments
 (0)