diff --git a/homeassistant/components/netgear_lte.py b/homeassistant/components/netgear_lte.py index 23a01d37c2b81e69734f7ea1049f131e4665526e..d6bd83dd41fe598939836930a0c8a8878a55f025 100644 --- a/homeassistant/components/netgear_lte.py +++ b/homeassistant/components/netgear_lte.py @@ -17,7 +17,7 @@ from homeassistant.helpers import config_validation as cv from homeassistant.helpers.aiohttp_client import async_create_clientsession from homeassistant.util import Throttle -REQUIREMENTS = ['eternalegypt==0.0.2'] +REQUIREMENTS = ['eternalegypt==0.0.3'] MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=10) @@ -37,6 +37,7 @@ class ModemData: """Class for modem state.""" modem = attr.ib() + serial_number = attr.ib(init=False) unread_count = attr.ib(init=False) usage = attr.ib(init=False) @@ -44,6 +45,7 @@ class ModemData: async def async_update(self): """Call the API to update the data.""" information = await self.modem.information() + self.serial_number = information.serial_number self.unread_count = sum(1 for x in information.sms if x.unread) self.usage = information.usage diff --git a/homeassistant/components/sensor/netgear_lte.py b/homeassistant/components/sensor/netgear_lte.py index b4a3e2a1155981e62658121a7dc3c3b4dc0ef4f0..dac1f81ad2361b48b75c151fdcbc0835f80ccfc8 100644 --- a/homeassistant/components/sensor/netgear_lte.py +++ b/homeassistant/components/sensor/netgear_lte.py @@ -32,11 +32,11 @@ async def async_setup_platform( modem_data = hass.data[DATA_KEY].get_modem_data(config) sensors = [] - for sensortype in config[CONF_SENSORS]: - if sensortype == SENSOR_SMS: - sensors.append(SMSSensor(modem_data)) - elif sensortype == SENSOR_USAGE: - sensors.append(UsageSensor(modem_data)) + for sensor_type in config[CONF_SENSORS]: + if sensor_type == SENSOR_SMS: + sensors.append(SMSSensor(modem_data, sensor_type)) + elif sensor_type == SENSOR_USAGE: + sensors.append(UsageSensor(modem_data, sensor_type)) async_add_devices(sensors, True) @@ -46,11 +46,17 @@ class LTESensor(Entity): """Data usage sensor entity.""" modem_data = attr.ib() + sensor_type = attr.ib() async def async_update(self): """Update state.""" await self.modem_data.async_update() + @property + def unique_id(self): + """Return a unique ID like 'usage_5TG365AB0078V'.""" + return "{}_{}".format(self.sensor_type, self.modem_data.serial_number) + class SMSSensor(LTESensor): """Unread SMS sensor entity.""" diff --git a/requirements_all.txt b/requirements_all.txt index 75a563c244f7f7271f2a696786a64fea156f1eeb..af60587e0969c2a30d4de3eb96cd517978a3861f 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -309,7 +309,7 @@ ephem==3.7.6.0 epson-projector==0.1.3 # homeassistant.components.netgear_lte -eternalegypt==0.0.2 +eternalegypt==0.0.3 # homeassistant.components.keyboard_remote # evdev==0.6.1