diff --git a/homeassistant/components/sensor/ios.py b/homeassistant/components/sensor/ios.py index c73e76ca752..181f0b20659 100644 --- a/homeassistant/components/sensor/ios.py +++ b/homeassistant/components/sensor/ios.py @@ -6,6 +6,7 @@ https://home-assistant.io/ecosystem/ios/ """ from homeassistant.components import ios from homeassistant.helpers.entity import Entity +from homeassistant.util.icon import icon_for_battery_level DEPENDENCIES = ['ios'] @@ -83,44 +84,22 @@ class IOSSensor(Entity): device_battery = self._device[ios.ATTR_BATTERY] battery_state = device_battery[ios.ATTR_BATTERY_STATE] battery_level = device_battery[ios.ATTR_BATTERY_LEVEL] - rounded_level = round(battery_level, -1) - returning_icon_level = DEFAULT_ICON_LEVEL - if battery_state == ios.ATTR_BATTERY_STATE_FULL: - returning_icon_level = DEFAULT_ICON_LEVEL - if battery_state == ios.ATTR_BATTERY_STATE_CHARGING: - returning_icon_state = DEFAULT_ICON_STATE - else: - returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) + if (battery_state == ios.ATTR_BATTERY_STATE_FULL or + battery_state == ios.ATTR_BATTERY_STATE_UNPLUGGED): + icon_level = icon_for_battery_level(battery_level=battery_level, + charging=False) + icon_state = "{}-off".format(DEFAULT_ICON_STATE) elif battery_state == ios.ATTR_BATTERY_STATE_CHARGING: - # Why is MDI missing 10, 50, 70? - if rounded_level in (20, 30, 40, 60, 80, 90, 100): - returning_icon_level = "{}-charging-{}".format( - DEFAULT_ICON_LEVEL, str(rounded_level)) - returning_icon_state = DEFAULT_ICON_STATE - else: - returning_icon_level = "{}-charging".format( - DEFAULT_ICON_LEVEL) - returning_icon_state = DEFAULT_ICON_STATE - elif battery_state == ios.ATTR_BATTERY_STATE_UNPLUGGED: - if rounded_level < 10: - returning_icon_level = "{}-outline".format( - DEFAULT_ICON_LEVEL) - returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) - elif battery_level > 95: - returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) - returning_icon_level = "{}-outline".format( - DEFAULT_ICON_LEVEL) - else: - returning_icon_level = "{}-{}".format(DEFAULT_ICON_LEVEL, - str(rounded_level)) - returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) + icon_level = "{}-charging".format(DEFAULT_ICON_LEVEL) + icon_state = DEFAULT_ICON_STATE elif battery_state == ios.ATTR_BATTERY_STATE_UNKNOWN: - returning_icon_level = "{}-unknown".format(DEFAULT_ICON_LEVEL) - returning_icon_state = "{}-unknown".format(DEFAULT_ICON_LEVEL) + icon_level = icon_for_battery_level(battery_level=None, + charging=False) + icon_state = "{}-unknown".format(DEFAULT_ICON_LEVEL) if self.type == "state": - return returning_icon_state - return returning_icon_level + return icon_state + return icon_level def update(self): """Get the latest state of the sensor."""