diff --git a/greeclimate/network.py b/greeclimate/network.py index e07480c..b31db98 100644 --- a/greeclimate/network.py +++ b/greeclimate/network.py @@ -222,7 +222,7 @@ def packet_received(self, obj, addr: IPAddr) -> None: params = { Response.BIND_OK.value: lambda o, a: [o["pack"]["key"]], Response.DATA.value: lambda o, a: [dict(zip(o["pack"]["cols"], o["pack"]["dat"]))], - Response.RESULT.value: lambda o, a: [dict(zip(o["pack"]["opt"], o["pack"]["val"]))], + Response.RESULT.value: lambda o, a: [dict(zip(o["pack"]["opt"], o["pack"].get("val", []) or o["pack"].get("p", [])))], } handlers = { Response.BIND_OK.value: lambda *args: self.__handle_device_bound(*args), diff --git a/tests/test_network.py b/tests/test_network.py index 18c9ffa..7f7f14a 100644 --- a/tests/test_network.py +++ b/tests/test_network.py @@ -375,7 +375,8 @@ def test_handle_state_update(): assert protocol.state == {'key': 'value'} -def test_handle_result_update(): +@pytest.mark.parametrize('values_key', ['val', 'p']) +def test_handle_result_update(values_key): # Arrange protocol = DeviceProtocol2Test() @@ -386,7 +387,7 @@ def test_handle_result_update(): 'pack': { 't': 'res', 'opt': list(state.keys()), - 'val': list(state.values()) + values_key: list(state.values()) } }, ("0.0.0.0", 0)) @@ -571,4 +572,4 @@ def test_device_key_get_set(): # Assert assert protocol.device_key == key - \ No newline at end of file +