alexa: Add handling for covers (#11242)
* alexa: Add handling for covers Covers don't support either cover.turn_on or homeassistant.turn_on so use cover.[open|close]_cover. * alexa: Add tests for covers
This commit is contained in:
parent
3fa45375d9
commit
94ac0b5ed8
2 changed files with 20 additions and 6 deletions
|
@ -243,7 +243,11 @@ def async_api_turn_on(hass, config, request, entity):
|
||||||
if entity.domain == group.DOMAIN:
|
if entity.domain == group.DOMAIN:
|
||||||
domain = ha.DOMAIN
|
domain = ha.DOMAIN
|
||||||
|
|
||||||
yield from hass.services.async_call(domain, SERVICE_TURN_ON, {
|
service = SERVICE_TURN_ON
|
||||||
|
if entity.domain == cover.DOMAIN:
|
||||||
|
service = cover.SERVICE_OPEN_COVER
|
||||||
|
|
||||||
|
yield from hass.services.async_call(domain, service, {
|
||||||
ATTR_ENTITY_ID: entity.entity_id
|
ATTR_ENTITY_ID: entity.entity_id
|
||||||
}, blocking=True)
|
}, blocking=True)
|
||||||
|
|
||||||
|
@ -259,7 +263,11 @@ def async_api_turn_off(hass, config, request, entity):
|
||||||
if entity.domain == group.DOMAIN:
|
if entity.domain == group.DOMAIN:
|
||||||
domain = ha.DOMAIN
|
domain = ha.DOMAIN
|
||||||
|
|
||||||
yield from hass.services.async_call(domain, SERVICE_TURN_OFF, {
|
service = SERVICE_TURN_OFF
|
||||||
|
if entity.domain == cover.DOMAIN:
|
||||||
|
service = cover.SERVICE_CLOSE_COVER
|
||||||
|
|
||||||
|
yield from hass.services.async_call(domain, service, {
|
||||||
ATTR_ENTITY_ID: entity.entity_id
|
ATTR_ENTITY_ID: entity.entity_id
|
||||||
}, blocking=True)
|
}, blocking=True)
|
||||||
|
|
||||||
|
|
|
@ -419,7 +419,7 @@ def test_api_function_not_implemented(hass):
|
||||||
|
|
||||||
|
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
@pytest.mark.parametrize("domain", ['alert', 'automation', 'group',
|
@pytest.mark.parametrize("domain", ['alert', 'automation', 'cover', 'group',
|
||||||
'input_boolean', 'light', 'script',
|
'input_boolean', 'light', 'script',
|
||||||
'switch'])
|
'switch'])
|
||||||
def test_api_turn_on(hass, domain):
|
def test_api_turn_on(hass, domain):
|
||||||
|
@ -438,7 +438,10 @@ def test_api_turn_on(hass, domain):
|
||||||
if domain == 'group':
|
if domain == 'group':
|
||||||
call_domain = 'homeassistant'
|
call_domain = 'homeassistant'
|
||||||
|
|
||||||
call = async_mock_service(hass, call_domain, 'turn_on')
|
if domain == 'cover':
|
||||||
|
call = async_mock_service(hass, call_domain, 'open_cover')
|
||||||
|
else:
|
||||||
|
call = async_mock_service(hass, call_domain, 'turn_on')
|
||||||
|
|
||||||
msg = yield from smart_home.async_handle_message(
|
msg = yield from smart_home.async_handle_message(
|
||||||
hass, DEFAULT_CONFIG, request)
|
hass, DEFAULT_CONFIG, request)
|
||||||
|
@ -452,7 +455,7 @@ def test_api_turn_on(hass, domain):
|
||||||
|
|
||||||
|
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
@pytest.mark.parametrize("domain", ['alert', 'automation', 'group',
|
@pytest.mark.parametrize("domain", ['alert', 'automation', 'cover', 'group',
|
||||||
'input_boolean', 'light', 'script',
|
'input_boolean', 'light', 'script',
|
||||||
'switch'])
|
'switch'])
|
||||||
def test_api_turn_off(hass, domain):
|
def test_api_turn_off(hass, domain):
|
||||||
|
@ -471,7 +474,10 @@ def test_api_turn_off(hass, domain):
|
||||||
if domain == 'group':
|
if domain == 'group':
|
||||||
call_domain = 'homeassistant'
|
call_domain = 'homeassistant'
|
||||||
|
|
||||||
call = async_mock_service(hass, call_domain, 'turn_off')
|
if domain == 'cover':
|
||||||
|
call = async_mock_service(hass, call_domain, 'close_cover')
|
||||||
|
else:
|
||||||
|
call = async_mock_service(hass, call_domain, 'turn_off')
|
||||||
|
|
||||||
msg = yield from smart_home.async_handle_message(
|
msg = yield from smart_home.async_handle_message(
|
||||||
hass, DEFAULT_CONFIG, request)
|
hass, DEFAULT_CONFIG, request)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue