diff --git a/homeassistant/components/buienradar/camera.py b/homeassistant/components/buienradar/camera.py index 78c8f82d1ff..1bc0ee464db 100644 --- a/homeassistant/components/buienradar/camera.py +++ b/homeassistant/components/buienradar/camera.py @@ -95,6 +95,8 @@ class BuienradarCam(Camera): # deadline for image refresh - self.delta after last successful load self._deadline: Optional[datetime] = None + self._unique_id = f"{self._dimension}_{self._country}" + @property def name(self) -> str: """Return the component name.""" @@ -186,3 +188,8 @@ class BuienradarCam(Camera): async with self._condition: self._loading = False self._condition.notify_all() + + @property + def unique_id(self): + """Return the unique id.""" + return self._unique_id diff --git a/homeassistant/components/buienradar/sensor.py b/homeassistant/components/buienradar/sensor.py index 92811b98a80..47bacfe2247 100644 --- a/homeassistant/components/buienradar/sensor.py +++ b/homeassistant/components/buienradar/sensor.py @@ -204,7 +204,6 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( async def async_setup_platform(hass, config, async_add_entities, discovery_info=None): """Create the buienradar sensor.""" - latitude = config.get(CONF_LATITUDE, hass.config.latitude) longitude = config.get(CONF_LONGITUDE, hass.config.longitude) timeframe = config[CONF_TIMEFRAME] @@ -236,7 +235,6 @@ class BrSensor(Entity): def __init__(self, sensor_type, client_name, coordinates): """Initialize the sensor.""" - self.client_name = client_name self._name = SENSOR_TYPES[sensor_type][0] self.type = sensor_type @@ -428,7 +426,6 @@ class BrSensor(Entity): @property def device_state_attributes(self): """Return the state attributes.""" - if self.type.startswith(PRECIPITATION_FORECAST): result = {ATTR_ATTRIBUTION: self._attribution} if self._timeframe is not None: diff --git a/homeassistant/components/buienradar/util.py b/homeassistant/components/buienradar/util.py index e64925bf19e..b4f2314eee5 100644 --- a/homeassistant/components/buienradar/util.py +++ b/homeassistant/components/buienradar/util.py @@ -107,7 +107,6 @@ class BrData: async def async_update(self, *_): """Update the data from buienradar.""" - content = await self.get_data(JSON_FEED_URL) if content.get(SUCCESS) is not True: @@ -170,25 +169,21 @@ class BrData: @property def attribution(self): """Return the attribution.""" - return self.data.get(ATTRIBUTION) @property def stationname(self): """Return the name of the selected weatherstation.""" - return self.data.get(STATIONNAME) @property def condition(self): """Return the condition.""" - return self.data.get(CONDITION) @property def temperature(self): """Return the temperature, or None.""" - try: return float(self.data.get(TEMPERATURE)) except (ValueError, TypeError): @@ -197,7 +192,6 @@ class BrData: @property def pressure(self): """Return the pressure, or None.""" - try: return float(self.data.get(PRESSURE)) except (ValueError, TypeError): @@ -206,7 +200,6 @@ class BrData: @property def humidity(self): """Return the humidity, or None.""" - try: return int(self.data.get(HUMIDITY)) except (ValueError, TypeError): @@ -215,7 +208,6 @@ class BrData: @property def visibility(self): """Return the visibility, or None.""" - try: return int(self.data.get(VISIBILITY)) except (ValueError, TypeError): @@ -224,7 +216,6 @@ class BrData: @property def wind_speed(self): """Return the windspeed, or None.""" - try: return float(self.data.get(WINDSPEED)) except (ValueError, TypeError): @@ -233,7 +224,6 @@ class BrData: @property def wind_bearing(self): """Return the wind bearing, or None.""" - try: return int(self.data.get(WINDAZIMUTH)) except (ValueError, TypeError): @@ -242,5 +232,4 @@ class BrData: @property def forecast(self): """Return the forecast data.""" - return self.data.get(FORECAST) diff --git a/homeassistant/components/buienradar/weather.py b/homeassistant/components/buienradar/weather.py index 37dee08313e..d0a0c0e18b4 100644 --- a/homeassistant/components/buienradar/weather.py +++ b/homeassistant/components/buienradar/weather.py @@ -90,7 +90,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info= for condi in condlst: hass.data[DATA_CONDITION][condi] = cond - async_add_entities([BrWeather(data, config)]) + async_add_entities([BrWeather(data, config, coordinates)]) # schedule the first update in 1 minute from now: await data.schedule_update(1) @@ -99,12 +99,16 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info= class BrWeather(WeatherEntity): """Representation of a weather condition.""" - def __init__(self, data, config): + def __init__(self, data, config, coordinates): """Initialise the platform with a data instance and station name.""" self._stationname = config.get(CONF_NAME) self._forecast = config[CONF_FORECAST] self._data = data + self._unique_id = "{:2.6f}{:2.6f}".format( + coordinates[CONF_LATITUDE], coordinates[CONF_LONGITUDE] + ) + @property def attribution(self): """Return the attribution.""" @@ -120,7 +124,6 @@ class BrWeather(WeatherEntity): @property def condition(self): """Return the current condition.""" - if self._data and self._data.condition: ccode = self._data.condition.get(CONDCODE) if ccode: @@ -170,7 +173,6 @@ class BrWeather(WeatherEntity): @property def forecast(self): """Return the forecast array.""" - if not self._forecast: return None @@ -197,3 +199,8 @@ class BrWeather(WeatherEntity): fcdata_out.append(data_out) return fcdata_out + + @property + def unique_id(self): + """Return the unique id.""" + return self._unique_id