Don't crash on first EAN without installations (#24137)

* Don't crash on first EAN without installations

* Remove duplicated values

* Switch from Exception to persistent notification

* Make pylint happy
This commit is contained in:
Sylvia van Os 2019-05-27 22:36:15 +02:00 committed by Anders Melchiorsen
parent 5800b57791
commit 9a5d783537
3 changed files with 17 additions and 8 deletions

View file

@ -2,7 +2,7 @@
"domain": "essent",
"name": "Essent",
"documentation": "https://www.home-assistant.io/components/essent",
"requirements": ["PyEssent==0.10"],
"requirements": ["PyEssent==0.12"],
"dependencies": [],
"codeowners": ["@TheLastProject"]
}

View file

@ -36,6 +36,14 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
tariff,
data['values']['LVR'][tariff]['unit']))
if not meters:
hass.components.persistent_notification.create(
'Couldn\'t find any meter readings. '
'Please ensure Verbruiks Manager is enabled in Mijn Essent '
'and at least one reading has been logged to Meterstanden.',
title='Essent', notification_id='essent_notification')
return
add_devices(meters, True)
@ -46,14 +54,13 @@ class EssentBase():
"""Initialize the Essent API."""
self._username = username
self._password = password
self._meters = []
self._meter_data = {}
self.update()
def retrieve_meters(self):
"""Retrieve the list of meters."""
return self._meters
return self._meter_data.keys()
def retrieve_meter_data(self, meter):
"""Retrieve the data for this meter."""
@ -63,10 +70,12 @@ class EssentBase():
def update(self):
"""Retrieve the latest meter data from Essent."""
essent = PyEssent(self._username, self._password)
self._meters = essent.get_EANs()
for meter in self._meters:
self._meter_data[meter] = essent.read_meter(
meter, only_last_meter_reading=True)
eans = essent.get_EANs()
for possible_meter in eans:
meter_data = essent.read_meter(
possible_meter, only_last_meter_reading=True)
if meter_data:
self._meter_data[possible_meter] = meter_data
class EssentMeter(Entity):

View file

@ -43,7 +43,7 @@ Mastodon.py==1.4.2
OPi.GPIO==0.3.6
# homeassistant.components.essent
PyEssent==0.10
PyEssent==0.12
# homeassistant.components.github
PyGithub==1.43.5