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:
parent
5800b57791
commit
9a5d783537
3 changed files with 17 additions and 8 deletions
|
@ -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"]
|
||||
}
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue