From df2296649f9562fe3a64c28eb3b2e42029dddd55 Mon Sep 17 00:00:00 2001 From: Nikolas Beutler Date: Tue, 18 Apr 2017 08:31:16 +0200 Subject: [PATCH 01/13] Update ios.py as discussed. the part: if battery_state == ios.ATTR_BATTERY_STATE_FULL: returning_icon_level = DEFAULT_ICON_LEVEL kinda screws up the charging icon. i might just miss a logical solution for that though. let me know what you think. it might not be beautiful but i think its an overall improve over the current "double battery" solution --- homeassistant/components/sensor/ios.py | 34 ++++++++++++++++---------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/homeassistant/components/sensor/ios.py b/homeassistant/components/sensor/ios.py index ba963e44b6ce6..2082b5c755881 100644 --- a/homeassistant/components/sensor/ios.py +++ b/homeassistant/components/sensor/ios.py @@ -14,7 +14,8 @@ "state": ["Battery State", None] } -DEFAULT_ICON = "mdi:battery" +DEFAULT_ICON_LEVEL = "mdi:battery" +DEFAULT_ICON_STATE = "mdi:power-plug" def setup_platform(hass, config, add_devices, discovery_info=None): @@ -61,7 +62,6 @@ def unique_id(self): @property def unit_of_measurement(self): """Return the unit of measurement this sensor expresses itself in.""" - return self._unit_of_measurement @property def device_state_attributes(self): @@ -83,30 +83,38 @@ def icon(self): battery_state = device_battery[ios.ATTR_BATTERY_STATE] battery_level = device_battery[ios.ATTR_BATTERY_LEVEL] rounded_level = round(battery_level, -1) - returning_icon = DEFAULT_ICON + returning_icon_level = DEFAULT_ICON_LEVEL if battery_state == ios.ATTR_BATTERY_STATE_FULL: - returning_icon = DEFAULT_ICON + returning_icon_level = DEFAULT_ICON_LEVEL 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 = "{}-charging-{}".format(DEFAULT_ICON, - str(rounded_level)) + returning_icon_level = "{}-charging-{}".format(DEFAULT_ICON_LEVEL,str(rounded_level)) + returning_icon_state = DEFAULT_ICON_STATE else: - returning_icon = "{}-charging".format(DEFAULT_ICON) + 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 = "{}-outline".format(DEFAULT_ICON) + returning_icon_level = "{}-outline".format(DEFAULT_ICON_LEVEL) + returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) elif battery_level == 100: - returning_icon = DEFAULT_ICON + returning_icon_level = DEFAULT_ICON_LEVEL + returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) else: - returning_icon = "{}-{}".format(DEFAULT_ICON, - str(rounded_level)) + returning_icon_level = "{}-{}".format(DEFAULT_ICON_LEVEL,str(rounded_level)) + returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) elif battery_state == ios.ATTR_BATTERY_STATE_UNKNOWN: - returning_icon = "{}-unknown".format(DEFAULT_ICON) + returning_icon_level = "{}-unknown".format(DEFAULT_ICON_LEVEL) + returning_icon_state = "{}-unknown".format(DEFAULT_ICON_LEVEL) - return returning_icon + if self.type == "state": + return returning_icon_state + else: + return returning_icon_level def update(self): """Get the latest state of the sensor.""" self._device = ios.devices().get(self._device_name) self._state = self._device[ios.ATTR_BATTERY][self.type] + From 71396a80db7788b0b40a7c92b753c4abf7ea0a35 Mon Sep 17 00:00:00 2001 From: Nikolas Beutler Date: Tue, 18 Apr 2017 09:27:44 +0200 Subject: [PATCH 02/13] Update ios.py chound fix and full_battery_charge fix --- homeassistant/components/sensor/ios.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/sensor/ios.py b/homeassistant/components/sensor/ios.py index 2082b5c755881..82e309d199ac8 100644 --- a/homeassistant/components/sensor/ios.py +++ b/homeassistant/components/sensor/ios.py @@ -86,10 +86,15 @@ def icon(self): 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) 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_level = "{}-charging-{}".format(DEFAULT_ICON_LEVEL, + str(rounded_level)) returning_icon_state = DEFAULT_ICON_STATE else: returning_icon_level = "{}-charging".format(DEFAULT_ICON_LEVEL) @@ -102,7 +107,8 @@ def icon(self): returning_icon_level = DEFAULT_ICON_LEVEL returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) else: - returning_icon_level = "{}-{}".format(DEFAULT_ICON_LEVEL,str(rounded_level)) + returning_icon_level = "{}-{}".format(DEFAULT_ICON_LEVEL, + str(rounded_level)) returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) elif battery_state == ios.ATTR_BATTERY_STATE_UNKNOWN: returning_icon_level = "{}-unknown".format(DEFAULT_ICON_LEVEL) From a3bdb99f21c0809c85b0881ad4a87d8a4881025d Mon Sep 17 00:00:00 2001 From: Nikolas Beutler Date: Tue, 18 Apr 2017 09:28:46 +0200 Subject: [PATCH 03/13] Update ios.py removed new line --- homeassistant/components/sensor/ios.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/homeassistant/components/sensor/ios.py b/homeassistant/components/sensor/ios.py index 82e309d199ac8..a2cb379e85092 100644 --- a/homeassistant/components/sensor/ios.py +++ b/homeassistant/components/sensor/ios.py @@ -122,5 +122,4 @@ def icon(self): def update(self): """Get the latest state of the sensor.""" self._device = ios.devices().get(self._device_name) - self._state = self._device[ios.ATTR_BATTERY][self.type] - + self._state = self._device[ios.ATTR_BATTERY][self.type] From b8c60678c82ef305a82ae7ae2d5268b6a0a2744c Mon Sep 17 00:00:00 2001 From: Nikolas Beutler Date: Tue, 18 Apr 2017 09:38:44 +0200 Subject: [PATCH 04/13] Update ios.py --- homeassistant/components/sensor/ios.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/components/sensor/ios.py b/homeassistant/components/sensor/ios.py index a2cb379e85092..0236be560fcf5 100644 --- a/homeassistant/components/sensor/ios.py +++ b/homeassistant/components/sensor/ios.py @@ -122,4 +122,4 @@ def icon(self): def update(self): """Get the latest state of the sensor.""" self._device = ios.devices().get(self._device_name) - self._state = self._device[ios.ATTR_BATTERY][self.type] + self._state = self._device[ios.ATTR_BATTERY][self.type] From 0a431072fbd725dae8a391f588faf214e3aa0077 Mon Sep 17 00:00:00 2001 From: Nikolas Beutler Date: Tue, 18 Apr 2017 09:42:42 +0200 Subject: [PATCH 05/13] Update ios.py --- homeassistant/components/sensor/ios.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/sensor/ios.py b/homeassistant/components/sensor/ios.py index 0236be560fcf5..278ce2cb089ba 100644 --- a/homeassistant/components/sensor/ios.py +++ b/homeassistant/components/sensor/ios.py @@ -93,15 +93,18 @@ def icon(self): 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_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_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_level = + "{}-outline".format(DEFAULT_ICON_LEVEL) returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) elif battery_level == 100: returning_icon_level = DEFAULT_ICON_LEVEL From d8e6c9c47c40371c793ddc589db9ac855ea76570 Mon Sep 17 00:00:00 2001 From: Nikolas Beutler Date: Tue, 18 Apr 2017 09:45:11 +0200 Subject: [PATCH 06/13] Update ios.py --- homeassistant/components/sensor/ios.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/homeassistant/components/sensor/ios.py b/homeassistant/components/sensor/ios.py index 278ce2cb089ba..0236be560fcf5 100644 --- a/homeassistant/components/sensor/ios.py +++ b/homeassistant/components/sensor/ios.py @@ -93,18 +93,15 @@ def icon(self): 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_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_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_level = "{}-outline".format(DEFAULT_ICON_LEVEL) returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) elif battery_level == 100: returning_icon_level = DEFAULT_ICON_LEVEL From 471cafdd58a0bf0ba02251d06b621875f50ecbe9 Mon Sep 17 00:00:00 2001 From: Nikolas Beutler Date: Tue, 18 Apr 2017 09:46:38 +0200 Subject: [PATCH 07/13] Update ios.py --- homeassistant/components/sensor/ios.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/sensor/ios.py b/homeassistant/components/sensor/ios.py index 0236be560fcf5..1bce36bbb720a 100644 --- a/homeassistant/components/sensor/ios.py +++ b/homeassistant/components/sensor/ios.py @@ -93,7 +93,7 @@ def icon(self): 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, + returning_icon_level = "{}-charging-{}".format(DEFAULT_ICON_LEVEL, str(rounded_level)) returning_icon_state = DEFAULT_ICON_STATE else: @@ -107,7 +107,7 @@ def icon(self): returning_icon_level = DEFAULT_ICON_LEVEL returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) else: - returning_icon_level = "{}-{}".format(DEFAULT_ICON_LEVEL, + returning_icon_level = "{}-{}".format(DEFAULT_ICON_LEVEL, str(rounded_level)) returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) elif battery_state == ios.ATTR_BATTERY_STATE_UNKNOWN: From 7de83805fd5dd0974134d9d4ea37374ba24654f0 Mon Sep 17 00:00:00 2001 From: Nikolas Beutler Date: Tue, 18 Apr 2017 23:03:16 +0200 Subject: [PATCH 08/13] Update ios.py --- homeassistant/components/sensor/ios.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/homeassistant/components/sensor/ios.py b/homeassistant/components/sensor/ios.py index 5ade754691ad3..2721362ee6b3e 100644 --- a/homeassistant/components/sensor/ios.py +++ b/homeassistant/components/sensor/ios.py @@ -105,9 +105,8 @@ def icon(self): returning_icon_level = "{}-outline".format(DEFAULT_ICON_LEVEL) returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) elif battery_level == 100: - returning_icon_level = DEFAULT_ICON_LEVEL returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) - returning_icon = "{}-outline".format(DEFAULT_ICON) + returning_icon_level = "{}-outline".format(DEFAULT_ICON_LEVEL) elif battery_level > 95: returning_icon_level = DEFAULT_ICON_LEVEL returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) From 9618aa7b7f434e6fba96ee84d376078bb99d5422 Mon Sep 17 00:00:00 2001 From: Nikolas Beutler Date: Tue, 18 Apr 2017 23:28:45 +0200 Subject: [PATCH 09/13] Update ios.py --- homeassistant/components/sensor/ios.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/homeassistant/components/sensor/ios.py b/homeassistant/components/sensor/ios.py index 2721362ee6b3e..c9802999791d1 100644 --- a/homeassistant/components/sensor/ios.py +++ b/homeassistant/components/sensor/ios.py @@ -94,19 +94,22 @@ def icon(self): 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_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_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_level = "{}-outline".format( + DEFAULT_ICON_LEVEL) returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) elif battery_level == 100: returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) - returning_icon_level = "{}-outline".format(DEFAULT_ICON_LEVEL) + returning_icon_level = "{}-outline".format( + DEFAULT_ICON_LEVEL) elif battery_level > 95: returning_icon_level = DEFAULT_ICON_LEVEL returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) From 3136bd004272900da85ac05eba78b4ed180f4706 Mon Sep 17 00:00:00 2001 From: Nikolas Beutler Date: Fri, 21 Apr 2017 00:29:16 +0200 Subject: [PATCH 10/13] merged request from robbie --- homeassistant/components/sensor/ios.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/homeassistant/components/sensor/ios.py b/homeassistant/components/sensor/ios.py index c9802999791d1..70e6dea45fa7a 100644 --- a/homeassistant/components/sensor/ios.py +++ b/homeassistant/components/sensor/ios.py @@ -106,13 +106,10 @@ def icon(self): returning_icon_level = "{}-outline".format( DEFAULT_ICON_LEVEL) returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) - elif battery_level == 100: + elif battery_level > 95 returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) returning_icon_level = "{}-outline".format( DEFAULT_ICON_LEVEL) - elif battery_level > 95: - returning_icon_level = DEFAULT_ICON_LEVEL - returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) else: returning_icon_level = "{}-{}".format(DEFAULT_ICON_LEVEL, str(rounded_level)) From de6fe9103634621ccb5e90cf0689714af137c7ba Mon Sep 17 00:00:00 2001 From: Nikolas Beutler Date: Fri, 21 Apr 2017 00:32:05 +0200 Subject: [PATCH 11/13] Update ios.py --- homeassistant/components/sensor/ios.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/components/sensor/ios.py b/homeassistant/components/sensor/ios.py index 70e6dea45fa7a..89c666a25fd96 100644 --- a/homeassistant/components/sensor/ios.py +++ b/homeassistant/components/sensor/ios.py @@ -111,7 +111,7 @@ def icon(self): returning_icon_level = "{}-outline".format( DEFAULT_ICON_LEVEL) else: - returning_icon_level = "{}-{}".format(DEFAULT_ICON_LEVEL, + returning_icon_level = "{}-{}".format(DEFAULT_ICON_LEVEL, str(rounded_level)) returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) elif battery_state == ios.ATTR_BATTERY_STATE_UNKNOWN: From c62650572d36a5f088a498bf956f5649f568f5ce Mon Sep 17 00:00:00 2001 From: Nikolas Beutler Date: Fri, 21 Apr 2017 00:33:10 +0200 Subject: [PATCH 12/13] Update ios.py --- homeassistant/components/sensor/ios.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/components/sensor/ios.py b/homeassistant/components/sensor/ios.py index 89c666a25fd96..70e6dea45fa7a 100644 --- a/homeassistant/components/sensor/ios.py +++ b/homeassistant/components/sensor/ios.py @@ -111,7 +111,7 @@ def icon(self): returning_icon_level = "{}-outline".format( DEFAULT_ICON_LEVEL) else: - returning_icon_level = "{}-{}".format(DEFAULT_ICON_LEVEL, + returning_icon_level = "{}-{}".format(DEFAULT_ICON_LEVEL, str(rounded_level)) returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) elif battery_state == ios.ATTR_BATTERY_STATE_UNKNOWN: From ceaada67ca9928bb046932b50ccd6934c27407e4 Mon Sep 17 00:00:00 2001 From: Nikolas Beutler Date: Fri, 21 Apr 2017 00:37:32 +0200 Subject: [PATCH 13/13] Update ios.py --- homeassistant/components/sensor/ios.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/components/sensor/ios.py b/homeassistant/components/sensor/ios.py index 70e6dea45fa7a..3173eec428571 100644 --- a/homeassistant/components/sensor/ios.py +++ b/homeassistant/components/sensor/ios.py @@ -106,7 +106,7 @@ def icon(self): returning_icon_level = "{}-outline".format( DEFAULT_ICON_LEVEL) returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) - elif battery_level > 95 + elif battery_level > 95: returning_icon_state = "{}-off".format(DEFAULT_ICON_STATE) returning_icon_level = "{}-outline".format( DEFAULT_ICON_LEVEL)