diff --git a/homeassistant/components/matter/vacuum.py b/homeassistant/components/matter/vacuum.py index 6bb0f3f02218..2c478a5a8d27 100644 --- a/homeassistant/components/matter/vacuum.py +++ b/homeassistant/components/matter/vacuum.py @@ -206,10 +206,11 @@ class MatterVacuum(MatterEntity, StateVacuumEntity): if ( response - and response.status != clusters.ServiceArea.Enums.SelectAreasStatus.kSuccess + and response["status"] + != clusters.ServiceArea.Enums.SelectAreasStatus.kSuccess ): raise HomeAssistantError( - f"Failed to select areas: {response.statusText or response.status.name}" + f"Failed to select areas: {response['statusText'] or response['status']}" ) await self.send_device_command( diff --git a/tests/components/matter/test_vacuum.py b/tests/components/matter/test_vacuum.py index b4434cfc651a..4c866d6973bc 100644 --- a/tests/components/matter/test_vacuum.py +++ b/tests/components/matter/test_vacuum.py @@ -365,12 +365,11 @@ async def test_vacuum_clean_area( }, ) - # Mock a successful SelectAreasResponse - matter_client.send_device_command.return_value = ( - clusters.ServiceArea.Commands.SelectAreasResponse( - status=clusters.ServiceArea.Enums.SelectAreasStatus.kSuccess, - ) - ) + # Mock a successful SelectAreasResponse (returns as dict over websocket) + matter_client.send_device_command.return_value = { + "status": clusters.ServiceArea.Enums.SelectAreasStatus.kSuccess, + "statusText": "", + } await hass.services.async_call( VACUUM_DOMAIN, @@ -420,13 +419,11 @@ async def test_vacuum_clean_area_select_areas_failure( }, ) - # Mock a failed SelectAreasResponse - matter_client.send_device_command.return_value = ( - clusters.ServiceArea.Commands.SelectAreasResponse( - status=clusters.ServiceArea.Enums.SelectAreasStatus.kUnsupportedArea, - statusText="Area 7 not supported", - ) - ) + # Mock a failed SelectAreasResponse (returns as dict over websocket) + matter_client.send_device_command.return_value = { + "status": clusters.ServiceArea.Enums.SelectAreasStatus.kUnsupportedArea, + "statusText": "Area 7 not supported", + } with pytest.raises(HomeAssistantError, match="Failed to select areas"): await hass.services.async_call(