diff --git a/homeassistant/components/netatmo.py b/homeassistant/components/netatmo.py index 07f90d0879e558..f385940c01d187 100644 --- a/homeassistant/components/netatmo.py +++ b/homeassistant/components/netatmo.py @@ -16,7 +16,7 @@ REQUIREMENTS = [ 'https://github.com/jabesq/netatmo-api-python/archive/' - 'v0.5.0.zip#lnetatmo==0.5.0'] + 'v0.6.0.zip#lnetatmo==0.6.0'] _LOGGER = logging.getLogger(__name__) diff --git a/homeassistant/components/sensor/netatmo.py b/homeassistant/components/sensor/netatmo.py index be8f2e7d76d3b0..e59bb4a5553b0d 100644 --- a/homeassistant/components/sensor/netatmo.py +++ b/homeassistant/components/sensor/netatmo.py @@ -55,7 +55,7 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Optional(CONF_STATION): cv.string, - vol.Required(CONF_MODULES): MODULE_SCHEMA, + vol.Optional(CONF_MODULES): MODULE_SCHEMA, }) @@ -65,7 +65,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None): data = NetAtmoData(netatmo.NETATMO_AUTH, config.get(CONF_STATION, None)) dev = [] - try: + if CONF_MODULES in config: # Iterate each module for module_name, monitored_conditions in config[CONF_MODULES].items(): # Test if module exist """ @@ -75,8 +75,10 @@ def setup_platform(hass, config, add_devices, discovery_info=None): # Only create sensor for monitored """ for variable in monitored_conditions: dev.append(NetAtmoSensor(data, module_name, variable)) - except KeyError: - pass + else: + for module_name in data.get_module_names(): + for variable in data.station_data.monitoredConditions(module_name): + dev.append(NetAtmoSensor(data, module_name, variable)) add_devices(dev) @@ -94,6 +96,11 @@ def __init__(self, netatmo_data, module_name, sensor_type): self.type = sensor_type self._state = None self._unit_of_measurement = SENSOR_TYPES[sensor_type][1] + module_id = self.netatmo_data.\ + station_data.moduleByName(module=module_name)['_id'] + self._unique_id = "Netatmo Sensor {0} - {1} ({2})".format(self._name, + module_id, + self.type) self.update() @property @@ -101,6 +108,11 @@ def name(self): """Return the name of the sensor.""" return self._name + @property + def unique_id(self): + """Return the unique ID for this sensor.""" + return self._unique_id + @property def icon(self): """Icon to use in the frontend, if any.""" @@ -222,6 +234,7 @@ def __init__(self, auth, station): """Initialize the data object.""" self.auth = auth self.data = None + self.station_data = None self.station = station def get_module_names(self): @@ -233,9 +246,10 @@ def get_module_names(self): def update(self): """Call the Netatmo API to update the data.""" import lnetatmo - dev_list = lnetatmo.DeviceList(self.auth) + self.station_data = lnetatmo.DeviceList(self.auth) if self.station is not None: - self.data = dev_list.lastData(station=self.station, exclude=3600) + self.data = self.station_data.lastData(station=self.station, + exclude=3600) else: - self.data = dev_list.lastData(exclude=3600) + self.data = self.station_data.lastData(exclude=3600) diff --git a/requirements_all.txt b/requirements_all.txt index 8a65b76f5cca44..03ecb280bd786d 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -174,7 +174,7 @@ https://github.com/danieljkemp/onkyo-eiscp/archive/python3.zip#onkyo-eiscp==0.9. https://github.com/gadgetreactor/pyHS100/archive/ef85f939fd5b07064a0f34dfa673fa7d6140bd95.zip#pyHS100==0.1.2 # homeassistant.components.netatmo -https://github.com/jabesq/netatmo-api-python/archive/v0.5.0.zip#lnetatmo==0.5.0 +https://github.com/jabesq/netatmo-api-python/archive/v0.6.0.zip#lnetatmo==0.6.0 # homeassistant.components.sensor.sabnzbd https://github.com/jamespcole/home-assistant-nzb-clients/archive/616cad59154092599278661af17e2a9f2cf5e2a9.zip#python-sabnzbd==0.1