Skip to content

Commit

Permalink
Fix Report State for Alexa Brightness Controller (home-assistant#12318)
Browse files Browse the repository at this point in the history
* Fix Report State for Alexa Brightness Controller

* Lint
  • Loading branch information
lucasweb78 authored and balloob committed Feb 12, 2018
1 parent eb7adc7 commit 669929d
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 3 deletions.
5 changes: 3 additions & 2 deletions homeassistant/components/alexa/smart_home.py
Original file line number Diff line number Diff line change
Expand Up @@ -328,8 +328,9 @@ def properties_retrievable(self):
def get_property(self, name):
if name != 'brightness':
raise _UnsupportedProperty(name)

return round(self.entity.attributes['brightness'] / 255.0 * 100)
if 'brightness' in self.entity.attributes:
return round(self.entity.attributes['brightness'] / 255.0 * 100)
return 0


class _AlexaColorController(_AlexaInterface):
Expand Down
19 changes: 18 additions & 1 deletion tests/components/alexa/test_smart_home.py
Original file line number Diff line number Diff line change
Expand Up @@ -1095,6 +1095,23 @@ def test_report_lock_state(hass):
properties.assert_equal('Alexa.LockController', 'lockState', 'JAMMED')


@asyncio.coroutine
def test_report_dimmable_light_state(hass):
"""Test BrightnessController reports brightness correctly."""
hass.states.async_set(
'light.test_on', 'on', {'friendly_name': "Test light On",
'brightness': 128, 'supported_features': 1})
hass.states.async_set(
'light.test_off', 'off', {'friendly_name': "Test light Off",
'supported_features': 1})

properties = yield from reported_properties(hass, 'light.test_on')
properties.assert_equal('Alexa.BrightnessController', 'brightness', 50)

properties = yield from reported_properties(hass, 'light.test_off')
properties.assert_equal('Alexa.BrightnessController', 'brightness', 0)


@asyncio.coroutine
def reported_properties(hass, endpoint):
"""Use ReportState to get properties and return them.
Expand All @@ -1118,7 +1135,7 @@ def assert_equal(self, namespace, name, value):
for prop in self.properties:
if prop['namespace'] == namespace and prop['name'] == name:
assert prop['value'] == value
return prop
return prop

assert False, 'property %s:%s not in %r' % (
namespace,
Expand Down

0 comments on commit 669929d

Please sign in to comment.