core/tests/components/matter/test_valve.py

121 lines
3.8 KiB
Python
Raw Normal View History

Add Valve platform to Matter integration (#123311) * Create water_valve.py * Update water_valve.py ValveEntity * Update water_valve.py ValveDeviceClass * Update water_valve.py * Update water_valve.py OperationalStatus * Update water_valve.py * Update water_valve.py Commands * Update water_valve.py Platform.VALVE * Update water_valve.py * Update water_valve.py operational_status * Update water_valve.py current_valve_position * Update water_valve.py * Update water_valve.py * Update water_valve.py attributes * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Open command * Match Valve entity methods * Update water_valve.py * Update water_valve.py * Update water_valve.py * ruff-format * Update water_valve.py * Update water_valve.py * Update water_valve.py Attributes.CurrentLevel * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py async_set_valve_position * Update water_valve.py * Update water_valve.py Bitmaps * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update homeassistant/components/matter/water_valve.py Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> * Update homeassistant/components/matter/water_valve.py Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update discovery.py to add WaterValve * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update discovery.py * Update discovery.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Rename water_valve.py to valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Create test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Create valve.json * Update air-purifier.json * Revert "Update air-purifier.json" This reverts commit b68dce0ccc81bc6fb1db36191de1c296ce54cac3. * Update valve.json * Update valve.json * Update valve.json * Update test_valve.py * Update valve.json * Update test_valve.py * Update valve.json * Update valve.json * Update valve.json * Update test_valve.py * Update valve.py * Update valve.py * Update valve.py * add tests * cleanup * Clean up variable * Format * add tests for state updates * adjust * add tests for position --------- Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-25 18:19:10 +00:00
"""Test Matter valve."""
from unittest.mock import MagicMock, call
from chip.clusters import Objects as clusters
from matter_server.client.models.node import MatterNode
import pytest
from homeassistant.core import HomeAssistant
from .common import set_node_attribute, trigger_subscription_callback
Add Valve platform to Matter integration (#123311) * Create water_valve.py * Update water_valve.py ValveEntity * Update water_valve.py ValveDeviceClass * Update water_valve.py * Update water_valve.py OperationalStatus * Update water_valve.py * Update water_valve.py Commands * Update water_valve.py Platform.VALVE * Update water_valve.py * Update water_valve.py operational_status * Update water_valve.py current_valve_position * Update water_valve.py * Update water_valve.py * Update water_valve.py attributes * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Open command * Match Valve entity methods * Update water_valve.py * Update water_valve.py * Update water_valve.py * ruff-format * Update water_valve.py * Update water_valve.py * Update water_valve.py Attributes.CurrentLevel * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py async_set_valve_position * Update water_valve.py * Update water_valve.py Bitmaps * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update homeassistant/components/matter/water_valve.py Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> * Update homeassistant/components/matter/water_valve.py Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update discovery.py to add WaterValve * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update discovery.py * Update discovery.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Rename water_valve.py to valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Create test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Create valve.json * Update air-purifier.json * Revert "Update air-purifier.json" This reverts commit b68dce0ccc81bc6fb1db36191de1c296ce54cac3. * Update valve.json * Update valve.json * Update valve.json * Update test_valve.py * Update valve.json * Update test_valve.py * Update valve.json * Update valve.json * Update valve.json * Update test_valve.py * Update valve.py * Update valve.py * Update valve.py * add tests * cleanup * Clean up variable * Format * add tests for state updates * adjust * add tests for position --------- Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-25 18:19:10 +00:00
# This tests needs to be adjusted to remove lingering tasks
@pytest.mark.parametrize("expected_lingering_tasks", [True])
@pytest.mark.parametrize("node_fixture", ["valve"])
Add Valve platform to Matter integration (#123311) * Create water_valve.py * Update water_valve.py ValveEntity * Update water_valve.py ValveDeviceClass * Update water_valve.py * Update water_valve.py OperationalStatus * Update water_valve.py * Update water_valve.py Commands * Update water_valve.py Platform.VALVE * Update water_valve.py * Update water_valve.py operational_status * Update water_valve.py current_valve_position * Update water_valve.py * Update water_valve.py * Update water_valve.py attributes * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Open command * Match Valve entity methods * Update water_valve.py * Update water_valve.py * Update water_valve.py * ruff-format * Update water_valve.py * Update water_valve.py * Update water_valve.py Attributes.CurrentLevel * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py async_set_valve_position * Update water_valve.py * Update water_valve.py Bitmaps * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update homeassistant/components/matter/water_valve.py Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> * Update homeassistant/components/matter/water_valve.py Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update discovery.py to add WaterValve * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update discovery.py * Update discovery.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Rename water_valve.py to valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Create test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Create valve.json * Update air-purifier.json * Revert "Update air-purifier.json" This reverts commit b68dce0ccc81bc6fb1db36191de1c296ce54cac3. * Update valve.json * Update valve.json * Update valve.json * Update test_valve.py * Update valve.json * Update test_valve.py * Update valve.json * Update valve.json * Update valve.json * Update test_valve.py * Update valve.py * Update valve.py * Update valve.py * add tests * cleanup * Clean up variable * Format * add tests for state updates * adjust * add tests for position --------- Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-25 18:19:10 +00:00
async def test_valve(
hass: HomeAssistant,
matter_client: MagicMock,
matter_node: MatterNode,
Add Valve platform to Matter integration (#123311) * Create water_valve.py * Update water_valve.py ValveEntity * Update water_valve.py ValveDeviceClass * Update water_valve.py * Update water_valve.py OperationalStatus * Update water_valve.py * Update water_valve.py Commands * Update water_valve.py Platform.VALVE * Update water_valve.py * Update water_valve.py operational_status * Update water_valve.py current_valve_position * Update water_valve.py * Update water_valve.py * Update water_valve.py attributes * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Open command * Match Valve entity methods * Update water_valve.py * Update water_valve.py * Update water_valve.py * ruff-format * Update water_valve.py * Update water_valve.py * Update water_valve.py Attributes.CurrentLevel * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py async_set_valve_position * Update water_valve.py * Update water_valve.py Bitmaps * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update homeassistant/components/matter/water_valve.py Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> * Update homeassistant/components/matter/water_valve.py Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update discovery.py to add WaterValve * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update discovery.py * Update discovery.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Rename water_valve.py to valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Create test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Create valve.json * Update air-purifier.json * Revert "Update air-purifier.json" This reverts commit b68dce0ccc81bc6fb1db36191de1c296ce54cac3. * Update valve.json * Update valve.json * Update valve.json * Update test_valve.py * Update valve.json * Update test_valve.py * Update valve.json * Update valve.json * Update valve.json * Update test_valve.py * Update valve.py * Update valve.py * Update valve.py * add tests * cleanup * Clean up variable * Format * add tests for state updates * adjust * add tests for position --------- Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-25 18:19:10 +00:00
) -> None:
"""Test valve entity is created for a Matter ValveConfigurationAndControl Cluster."""
entity_id = "valve.valve_valve"
state = hass.states.get(entity_id)
assert state
assert state.state == "closed"
assert state.attributes["friendly_name"] == "Valve Valve"
# test close_valve action
await hass.services.async_call(
"valve",
"close_valve",
{
"entity_id": entity_id,
},
blocking=True,
)
assert matter_client.send_device_command.call_count == 1
assert matter_client.send_device_command.call_args == call(
node_id=matter_node.node_id,
Add Valve platform to Matter integration (#123311) * Create water_valve.py * Update water_valve.py ValveEntity * Update water_valve.py ValveDeviceClass * Update water_valve.py * Update water_valve.py OperationalStatus * Update water_valve.py * Update water_valve.py Commands * Update water_valve.py Platform.VALVE * Update water_valve.py * Update water_valve.py operational_status * Update water_valve.py current_valve_position * Update water_valve.py * Update water_valve.py * Update water_valve.py attributes * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Open command * Match Valve entity methods * Update water_valve.py * Update water_valve.py * Update water_valve.py * ruff-format * Update water_valve.py * Update water_valve.py * Update water_valve.py Attributes.CurrentLevel * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py async_set_valve_position * Update water_valve.py * Update water_valve.py Bitmaps * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update homeassistant/components/matter/water_valve.py Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> * Update homeassistant/components/matter/water_valve.py Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update discovery.py to add WaterValve * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update discovery.py * Update discovery.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Rename water_valve.py to valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Create test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Create valve.json * Update air-purifier.json * Revert "Update air-purifier.json" This reverts commit b68dce0ccc81bc6fb1db36191de1c296ce54cac3. * Update valve.json * Update valve.json * Update valve.json * Update test_valve.py * Update valve.json * Update test_valve.py * Update valve.json * Update valve.json * Update valve.json * Update test_valve.py * Update valve.py * Update valve.py * Update valve.py * add tests * cleanup * Clean up variable * Format * add tests for state updates * adjust * add tests for position --------- Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-25 18:19:10 +00:00
endpoint_id=1,
command=clusters.ValveConfigurationAndControl.Commands.Close(),
)
matter_client.send_device_command.reset_mock()
# test open_valve action
await hass.services.async_call(
"valve",
"open_valve",
{
"entity_id": entity_id,
},
blocking=True,
)
assert matter_client.send_device_command.call_count == 1
assert matter_client.send_device_command.call_args == call(
node_id=matter_node.node_id,
Add Valve platform to Matter integration (#123311) * Create water_valve.py * Update water_valve.py ValveEntity * Update water_valve.py ValveDeviceClass * Update water_valve.py * Update water_valve.py OperationalStatus * Update water_valve.py * Update water_valve.py Commands * Update water_valve.py Platform.VALVE * Update water_valve.py * Update water_valve.py operational_status * Update water_valve.py current_valve_position * Update water_valve.py * Update water_valve.py * Update water_valve.py attributes * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Open command * Match Valve entity methods * Update water_valve.py * Update water_valve.py * Update water_valve.py * ruff-format * Update water_valve.py * Update water_valve.py * Update water_valve.py Attributes.CurrentLevel * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py async_set_valve_position * Update water_valve.py * Update water_valve.py Bitmaps * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update homeassistant/components/matter/water_valve.py Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> * Update homeassistant/components/matter/water_valve.py Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update discovery.py to add WaterValve * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update discovery.py * Update discovery.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Rename water_valve.py to valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Create test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Create valve.json * Update air-purifier.json * Revert "Update air-purifier.json" This reverts commit b68dce0ccc81bc6fb1db36191de1c296ce54cac3. * Update valve.json * Update valve.json * Update valve.json * Update test_valve.py * Update valve.json * Update test_valve.py * Update valve.json * Update valve.json * Update valve.json * Update test_valve.py * Update valve.py * Update valve.py * Update valve.py * add tests * cleanup * Clean up variable * Format * add tests for state updates * adjust * add tests for position --------- Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-25 18:19:10 +00:00
endpoint_id=1,
command=clusters.ValveConfigurationAndControl.Commands.Open(),
)
matter_client.send_device_command.reset_mock()
# set changing state to 'opening'
set_node_attribute(matter_node, 1, 129, 4, 2)
set_node_attribute(matter_node, 1, 129, 5, 1)
Add Valve platform to Matter integration (#123311) * Create water_valve.py * Update water_valve.py ValveEntity * Update water_valve.py ValveDeviceClass * Update water_valve.py * Update water_valve.py OperationalStatus * Update water_valve.py * Update water_valve.py Commands * Update water_valve.py Platform.VALVE * Update water_valve.py * Update water_valve.py operational_status * Update water_valve.py current_valve_position * Update water_valve.py * Update water_valve.py * Update water_valve.py attributes * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Open command * Match Valve entity methods * Update water_valve.py * Update water_valve.py * Update water_valve.py * ruff-format * Update water_valve.py * Update water_valve.py * Update water_valve.py Attributes.CurrentLevel * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py async_set_valve_position * Update water_valve.py * Update water_valve.py Bitmaps * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update homeassistant/components/matter/water_valve.py Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> * Update homeassistant/components/matter/water_valve.py Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update discovery.py to add WaterValve * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update discovery.py * Update discovery.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Rename water_valve.py to valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Create test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Create valve.json * Update air-purifier.json * Revert "Update air-purifier.json" This reverts commit b68dce0ccc81bc6fb1db36191de1c296ce54cac3. * Update valve.json * Update valve.json * Update valve.json * Update test_valve.py * Update valve.json * Update test_valve.py * Update valve.json * Update valve.json * Update valve.json * Update test_valve.py * Update valve.py * Update valve.py * Update valve.py * add tests * cleanup * Clean up variable * Format * add tests for state updates * adjust * add tests for position --------- Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-25 18:19:10 +00:00
await trigger_subscription_callback(hass, matter_client)
state = hass.states.get(entity_id)
assert state
assert state.state == "opening"
# set changing state to 'closing'
set_node_attribute(matter_node, 1, 129, 4, 2)
set_node_attribute(matter_node, 1, 129, 5, 0)
Add Valve platform to Matter integration (#123311) * Create water_valve.py * Update water_valve.py ValveEntity * Update water_valve.py ValveDeviceClass * Update water_valve.py * Update water_valve.py OperationalStatus * Update water_valve.py * Update water_valve.py Commands * Update water_valve.py Platform.VALVE * Update water_valve.py * Update water_valve.py operational_status * Update water_valve.py current_valve_position * Update water_valve.py * Update water_valve.py * Update water_valve.py attributes * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Open command * Match Valve entity methods * Update water_valve.py * Update water_valve.py * Update water_valve.py * ruff-format * Update water_valve.py * Update water_valve.py * Update water_valve.py Attributes.CurrentLevel * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py async_set_valve_position * Update water_valve.py * Update water_valve.py Bitmaps * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update homeassistant/components/matter/water_valve.py Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> * Update homeassistant/components/matter/water_valve.py Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update discovery.py to add WaterValve * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update discovery.py * Update discovery.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Rename water_valve.py to valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Create test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Create valve.json * Update air-purifier.json * Revert "Update air-purifier.json" This reverts commit b68dce0ccc81bc6fb1db36191de1c296ce54cac3. * Update valve.json * Update valve.json * Update valve.json * Update test_valve.py * Update valve.json * Update test_valve.py * Update valve.json * Update valve.json * Update valve.json * Update test_valve.py * Update valve.py * Update valve.py * Update valve.py * add tests * cleanup * Clean up variable * Format * add tests for state updates * adjust * add tests for position --------- Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-25 18:19:10 +00:00
await trigger_subscription_callback(hass, matter_client)
state = hass.states.get(entity_id)
assert state
assert state.state == "closing"
# set changing state to 'open'
set_node_attribute(matter_node, 1, 129, 4, 1)
set_node_attribute(matter_node, 1, 129, 5, 0)
Add Valve platform to Matter integration (#123311) * Create water_valve.py * Update water_valve.py ValveEntity * Update water_valve.py ValveDeviceClass * Update water_valve.py * Update water_valve.py OperationalStatus * Update water_valve.py * Update water_valve.py Commands * Update water_valve.py Platform.VALVE * Update water_valve.py * Update water_valve.py operational_status * Update water_valve.py current_valve_position * Update water_valve.py * Update water_valve.py * Update water_valve.py attributes * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Open command * Match Valve entity methods * Update water_valve.py * Update water_valve.py * Update water_valve.py * ruff-format * Update water_valve.py * Update water_valve.py * Update water_valve.py Attributes.CurrentLevel * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py async_set_valve_position * Update water_valve.py * Update water_valve.py Bitmaps * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update homeassistant/components/matter/water_valve.py Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> * Update homeassistant/components/matter/water_valve.py Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update discovery.py to add WaterValve * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update discovery.py * Update discovery.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Rename water_valve.py to valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Create test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Create valve.json * Update air-purifier.json * Revert "Update air-purifier.json" This reverts commit b68dce0ccc81bc6fb1db36191de1c296ce54cac3. * Update valve.json * Update valve.json * Update valve.json * Update test_valve.py * Update valve.json * Update test_valve.py * Update valve.json * Update valve.json * Update valve.json * Update test_valve.py * Update valve.py * Update valve.py * Update valve.py * add tests * cleanup * Clean up variable * Format * add tests for state updates * adjust * add tests for position --------- Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-25 18:19:10 +00:00
await trigger_subscription_callback(hass, matter_client)
state = hass.states.get(entity_id)
assert state
assert state.state == "open"
# add support for setting position by updating the featuremap
set_node_attribute(matter_node, 1, 129, 65532, 2)
Add Valve platform to Matter integration (#123311) * Create water_valve.py * Update water_valve.py ValveEntity * Update water_valve.py ValveDeviceClass * Update water_valve.py * Update water_valve.py OperationalStatus * Update water_valve.py * Update water_valve.py Commands * Update water_valve.py Platform.VALVE * Update water_valve.py * Update water_valve.py operational_status * Update water_valve.py current_valve_position * Update water_valve.py * Update water_valve.py * Update water_valve.py attributes * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Open command * Match Valve entity methods * Update water_valve.py * Update water_valve.py * Update water_valve.py * ruff-format * Update water_valve.py * Update water_valve.py * Update water_valve.py Attributes.CurrentLevel * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py async_set_valve_position * Update water_valve.py * Update water_valve.py Bitmaps * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update homeassistant/components/matter/water_valve.py Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> * Update homeassistant/components/matter/water_valve.py Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update discovery.py to add WaterValve * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update discovery.py * Update discovery.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Rename water_valve.py to valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Create test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Create valve.json * Update air-purifier.json * Revert "Update air-purifier.json" This reverts commit b68dce0ccc81bc6fb1db36191de1c296ce54cac3. * Update valve.json * Update valve.json * Update valve.json * Update test_valve.py * Update valve.json * Update test_valve.py * Update valve.json * Update valve.json * Update valve.json * Update test_valve.py * Update valve.py * Update valve.py * Update valve.py * add tests * cleanup * Clean up variable * Format * add tests for state updates * adjust * add tests for position --------- Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-25 18:19:10 +00:00
await trigger_subscription_callback(hass, matter_client)
state = hass.states.get(entity_id)
assert state
assert state.attributes["current_position"] == 0
# update current position
set_node_attribute(matter_node, 1, 129, 6, 50)
Add Valve platform to Matter integration (#123311) * Create water_valve.py * Update water_valve.py ValveEntity * Update water_valve.py ValveDeviceClass * Update water_valve.py * Update water_valve.py OperationalStatus * Update water_valve.py * Update water_valve.py Commands * Update water_valve.py Platform.VALVE * Update water_valve.py * Update water_valve.py operational_status * Update water_valve.py current_valve_position * Update water_valve.py * Update water_valve.py * Update water_valve.py attributes * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Open command * Match Valve entity methods * Update water_valve.py * Update water_valve.py * Update water_valve.py * ruff-format * Update water_valve.py * Update water_valve.py * Update water_valve.py Attributes.CurrentLevel * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py async_set_valve_position * Update water_valve.py * Update water_valve.py Bitmaps * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update homeassistant/components/matter/water_valve.py Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> * Update homeassistant/components/matter/water_valve.py Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update discovery.py to add WaterValve * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update discovery.py * Update discovery.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Rename water_valve.py to valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Create test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Create valve.json * Update air-purifier.json * Revert "Update air-purifier.json" This reverts commit b68dce0ccc81bc6fb1db36191de1c296ce54cac3. * Update valve.json * Update valve.json * Update valve.json * Update test_valve.py * Update valve.json * Update test_valve.py * Update valve.json * Update valve.json * Update valve.json * Update test_valve.py * Update valve.py * Update valve.py * Update valve.py * add tests * cleanup * Clean up variable * Format * add tests for state updates * adjust * add tests for position --------- Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-25 18:19:10 +00:00
await trigger_subscription_callback(hass, matter_client)
state = hass.states.get(entity_id)
assert state
assert state.attributes["current_position"] == 50
# test set_position action
await hass.services.async_call(
"valve",
"set_valve_position",
{
"entity_id": entity_id,
"position": 100,
},
blocking=True,
)
assert matter_client.send_device_command.call_count == 1
assert matter_client.send_device_command.call_args == call(
node_id=matter_node.node_id,
Add Valve platform to Matter integration (#123311) * Create water_valve.py * Update water_valve.py ValveEntity * Update water_valve.py ValveDeviceClass * Update water_valve.py * Update water_valve.py OperationalStatus * Update water_valve.py * Update water_valve.py Commands * Update water_valve.py Platform.VALVE * Update water_valve.py * Update water_valve.py operational_status * Update water_valve.py current_valve_position * Update water_valve.py * Update water_valve.py * Update water_valve.py attributes * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Open command * Match Valve entity methods * Update water_valve.py * Update water_valve.py * Update water_valve.py * ruff-format * Update water_valve.py * Update water_valve.py * Update water_valve.py Attributes.CurrentLevel * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py async_set_valve_position * Update water_valve.py * Update water_valve.py Bitmaps * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update homeassistant/components/matter/water_valve.py Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> * Update homeassistant/components/matter/water_valve.py Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update discovery.py to add WaterValve * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update discovery.py * Update discovery.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Update water_valve.py * Rename water_valve.py to valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Update valve.py * Create test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Update test_valve.py * Create valve.json * Update air-purifier.json * Revert "Update air-purifier.json" This reverts commit b68dce0ccc81bc6fb1db36191de1c296ce54cac3. * Update valve.json * Update valve.json * Update valve.json * Update test_valve.py * Update valve.json * Update test_valve.py * Update valve.json * Update valve.json * Update valve.json * Update test_valve.py * Update valve.py * Update valve.py * Update valve.py * add tests * cleanup * Clean up variable * Format * add tests for state updates * adjust * add tests for position --------- Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com> Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-25 18:19:10 +00:00
endpoint_id=1,
command=clusters.ValveConfigurationAndControl.Commands.Open(targetLevel=100),
)
matter_client.send_device_command.reset_mock()