diff --git a/homeassistant/components/bloomsky/binary_sensor.py b/homeassistant/components/bloomsky/binary_sensor.py index 4234b4fb145..858c39c4db9 100644 --- a/homeassistant/components/bloomsky/binary_sensor.py +++ b/homeassistant/components/bloomsky/binary_sensor.py @@ -44,32 +44,14 @@ class BloomSkySensor(BinarySensorEntity): self._bloomsky = bs self._device_id = device["DeviceID"] self._sensor_name = sensor_name - self._name = f"{device['DeviceName']} {sensor_name}" - self._state = None - self._unique_id = f"{self._device_id}-{self._sensor_name}" - - @property - def unique_id(self): - """Return a unique ID.""" - return self._unique_id - - @property - def name(self): - """Return the name of the BloomSky device and this sensor.""" - return self._name - - @property - def device_class(self): - """Return the class of this sensor, from DEVICE_CLASSES.""" - return SENSOR_TYPES.get(self._sensor_name) - - @property - def is_on(self): - """Return true if binary sensor is on.""" - return self._state + self._attr_name = f"{device['DeviceName']} {sensor_name}" + self._attr_unique_id = f"{self._device_id}-{sensor_name}" + self._attr_device_class = SENSOR_TYPES.get(sensor_name) def update(self): """Request an update from the BloomSky API.""" self._bloomsky.refresh_devices() - self._state = self._bloomsky.devices[self._device_id]["Data"][self._sensor_name] + self._attr_is_on = self._bloomsky.devices[self._device_id]["Data"][ + self._sensor_name + ] diff --git a/homeassistant/components/bloomsky/camera.py b/homeassistant/components/bloomsky/camera.py index e14e2f5c68b..570842b9c66 100644 --- a/homeassistant/components/bloomsky/camera.py +++ b/homeassistant/components/bloomsky/camera.py @@ -25,7 +25,7 @@ class BloomSkyCamera(Camera): def __init__(self, bs, device): """Initialize access to the BloomSky camera images.""" super().__init__() - self._name = device["DeviceName"] + self._attr_name = device["DeviceName"] self._id = device["DeviceID"] self._bloomsky = bs self._url = "" @@ -35,6 +35,7 @@ class BloomSkyCamera(Camera): # to download the same image over and over. self._last_image = "" self._logger = logging.getLogger(__name__) + self._attr_unique_id = self._id def camera_image(self): """Update the camera's image if it has changed.""" @@ -51,13 +52,3 @@ class BloomSkyCamera(Camera): return None return self._last_image - - @property - def unique_id(self): - """Return a unique ID.""" - return self._id - - @property - def name(self): - """Return the name of this BloomSky device.""" - return self._name diff --git a/homeassistant/components/bloomsky/sensor.py b/homeassistant/components/bloomsky/sensor.py index cf494c40916..29ca198c1fc 100644 --- a/homeassistant/components/bloomsky/sensor.py +++ b/homeassistant/components/bloomsky/sensor.py @@ -83,31 +83,11 @@ class BloomSkySensor(SensorEntity): self._bloomsky = bs self._device_id = device["DeviceID"] self._sensor_name = sensor_name - self._name = f"{device['DeviceName']} {sensor_name}" - self._state = None - self._unique_id = f"{self._device_id}-{self._sensor_name}" - - @property - def unique_id(self): - """Return a unique ID.""" - return self._unique_id - - @property - def name(self): - """Return the name of the BloomSky device and this sensor.""" - return self._name - - @property - def state(self): - """Return the current state, eg. value, of this sensor.""" - return self._state - - @property - def unit_of_measurement(self): - """Return the sensor units.""" + self._attr_name = f"{device['DeviceName']} {sensor_name}" + self._attr_unique_id = f"{self._device_id}-{sensor_name}" + self._attr_unit_of_measurement = SENSOR_UNITS_IMPERIAL.get(sensor_name, None) if self._bloomsky.is_metric: - return SENSOR_UNITS_METRIC.get(self._sensor_name, None) - return SENSOR_UNITS_IMPERIAL.get(self._sensor_name, None) + self._attr_unit_of_measurement = SENSOR_UNITS_METRIC.get(sensor_name, None) @property def device_class(self): @@ -117,10 +97,7 @@ class BloomSkySensor(SensorEntity): def update(self): """Request an update from the BloomSky API.""" self._bloomsky.refresh_devices() - state = self._bloomsky.devices[self._device_id]["Data"][self._sensor_name] - - if self._sensor_name in FORMAT_NUMBERS: - self._state = f"{state:.2f}" - else: - self._state = state + self._attr_state = ( + f"{state:.2f}" if self._sensor_name in FORMAT_NUMBERS else state + )