mirror of
https://github.com/home-assistant/core.git
synced 2025-04-25 01:38:02 +00:00
Alexa thermostat fails to properly parse 'value' field for climate (#13958)
* Fix thermostat payload issue * fix test payload * style issue * handle both string and value object
This commit is contained in:
parent
c5cb28d41f
commit
0eb3e49880
@ -1471,6 +1471,7 @@ async def async_api_adjust_target_temp(hass, config, request, entity):
|
||||
async def async_api_set_thermostat_mode(hass, config, request, entity):
|
||||
"""Process a set thermostat mode request."""
|
||||
mode = request[API_PAYLOAD]['thermostatMode']
|
||||
mode = mode if isinstance(mode, str) else mode['value']
|
||||
|
||||
operation_list = entity.attributes.get(climate.ATTR_OPERATION_LIST)
|
||||
# Work around a pylint false positive due to
|
||||
|
@ -807,15 +807,23 @@ async def test_thermostat(hass):
|
||||
'Alexa.ThermostatController', 'SetThermostatMode',
|
||||
'climate#test_thermostat', 'climate.set_operation_mode',
|
||||
hass,
|
||||
payload={'thermostatMode': 'HEAT'}
|
||||
payload={'thermostatMode': {'value': 'HEAT'}}
|
||||
)
|
||||
assert call.data['operation_mode'] == 'heat'
|
||||
|
||||
call, _ = await assert_request_calls_service(
|
||||
'Alexa.ThermostatController', 'SetThermostatMode',
|
||||
'climate#test_thermostat', 'climate.set_operation_mode',
|
||||
hass,
|
||||
payload={'thermostatMode': 'HEAT'}
|
||||
)
|
||||
|
||||
assert call.data['operation_mode'] == 'heat'
|
||||
msg = await assert_request_fails(
|
||||
'Alexa.ThermostatController', 'SetThermostatMode',
|
||||
'climate#test_thermostat', 'climate.set_operation_mode',
|
||||
hass,
|
||||
payload={'thermostatMode': 'INVALID'}
|
||||
payload={'thermostatMode': {'value': 'INVALID'}}
|
||||
)
|
||||
assert msg['event']['payload']['type'] == 'UNSUPPORTED_THERMOSTAT_MODE'
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user