mirror of
https://github.com/home-assistant/core.git
synced 2025-09-01 10:51:47 +02:00
Matter SmokeCoAlarm SelfTestRequest (#150497)
This commit is contained in:
@@ -143,4 +143,16 @@ DISCOVERY_SCHEMAS = [
|
|||||||
value_contains=clusters.ActivatedCarbonFilterMonitoring.Commands.ResetCondition.command_id,
|
value_contains=clusters.ActivatedCarbonFilterMonitoring.Commands.ResetCondition.command_id,
|
||||||
allow_multi=True,
|
allow_multi=True,
|
||||||
),
|
),
|
||||||
|
MatterDiscoverySchema(
|
||||||
|
platform=Platform.BUTTON,
|
||||||
|
entity_description=MatterButtonEntityDescription(
|
||||||
|
key="SmokeCoAlarmSelfTestRequest",
|
||||||
|
translation_key="self_test_request",
|
||||||
|
entity_category=EntityCategory.DIAGNOSTIC,
|
||||||
|
command=clusters.SmokeCoAlarm.Commands.SelfTestRequest,
|
||||||
|
),
|
||||||
|
entity_class=MatterCommandButton,
|
||||||
|
required_attributes=(clusters.SmokeCoAlarm.Attributes.AcceptedCommandList,),
|
||||||
|
value_contains=clusters.SmokeCoAlarm.Commands.SelfTestRequest.command_id,
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
@@ -17,6 +17,9 @@
|
|||||||
},
|
},
|
||||||
"stop": {
|
"stop": {
|
||||||
"default": "mdi:stop"
|
"default": "mdi:stop"
|
||||||
|
},
|
||||||
|
"self_test_request": {
|
||||||
|
"default": "mdi:refresh-auto"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fan": {
|
"fan": {
|
||||||
|
@@ -111,6 +111,9 @@
|
|||||||
},
|
},
|
||||||
"reset_filter_condition": {
|
"reset_filter_condition": {
|
||||||
"name": "Reset filter condition"
|
"name": "Reset filter condition"
|
||||||
|
},
|
||||||
|
"self_test_request": {
|
||||||
|
"name": "Self-test"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"climate": {
|
"climate": {
|
||||||
|
@@ -2038,6 +2038,54 @@
|
|||||||
'state': 'unknown',
|
'state': 'unknown',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
|
# name: test_buttons[smoke_detector][button.smoke_sensor_self_test-entry]
|
||||||
|
EntityRegistryEntrySnapshot({
|
||||||
|
'aliases': set({
|
||||||
|
}),
|
||||||
|
'area_id': None,
|
||||||
|
'capabilities': None,
|
||||||
|
'config_entry_id': <ANY>,
|
||||||
|
'config_subentry_id': <ANY>,
|
||||||
|
'device_class': None,
|
||||||
|
'device_id': <ANY>,
|
||||||
|
'disabled_by': None,
|
||||||
|
'domain': 'button',
|
||||||
|
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||||
|
'entity_id': 'button.smoke_sensor_self_test',
|
||||||
|
'has_entity_name': True,
|
||||||
|
'hidden_by': None,
|
||||||
|
'icon': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'name': None,
|
||||||
|
'options': dict({
|
||||||
|
}),
|
||||||
|
'original_device_class': None,
|
||||||
|
'original_icon': None,
|
||||||
|
'original_name': 'Self-test',
|
||||||
|
'platform': 'matter',
|
||||||
|
'previous_unique_id': None,
|
||||||
|
'suggested_object_id': None,
|
||||||
|
'supported_features': 0,
|
||||||
|
'translation_key': 'self_test_request',
|
||||||
|
'unique_id': '00000000000004D2-0000000000000001-MatterNodeDevice-1-SmokeCoAlarmSelfTestRequest-92-65529',
|
||||||
|
'unit_of_measurement': None,
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_buttons[smoke_detector][button.smoke_sensor_self_test-state]
|
||||||
|
StateSnapshot({
|
||||||
|
'attributes': ReadOnlyDict({
|
||||||
|
'friendly_name': 'Smoke sensor Self-test',
|
||||||
|
}),
|
||||||
|
'context': <ANY>,
|
||||||
|
'entity_id': 'button.smoke_sensor_self_test',
|
||||||
|
'last_changed': <ANY>,
|
||||||
|
'last_reported': <ANY>,
|
||||||
|
'last_updated': <ANY>,
|
||||||
|
'state': 'unknown',
|
||||||
|
})
|
||||||
|
# ---
|
||||||
# name: test_buttons[switch_unit][button.mock_switchunit_identify-entry]
|
# name: test_buttons[switch_unit][button.mock_switchunit_identify-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
|
@@ -80,3 +80,30 @@ async def test_operational_state_buttons(
|
|||||||
endpoint_id=1,
|
endpoint_id=1,
|
||||||
command=clusters.OperationalState.Commands.Pause(),
|
command=clusters.OperationalState.Commands.Pause(),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("node_fixture", ["smoke_detector"])
|
||||||
|
async def test_smoke_detector_self_test(
|
||||||
|
hass: HomeAssistant,
|
||||||
|
matter_client: MagicMock,
|
||||||
|
matter_node: MatterNode,
|
||||||
|
) -> None:
|
||||||
|
"""Test button entity is created for a Matter SmokeCoAlarm Cluster."""
|
||||||
|
state = hass.states.get("button.smoke_sensor_self_test")
|
||||||
|
assert state
|
||||||
|
assert state.attributes["friendly_name"] == "Smoke sensor Self-test"
|
||||||
|
# test press action
|
||||||
|
await hass.services.async_call(
|
||||||
|
"button",
|
||||||
|
"press",
|
||||||
|
{
|
||||||
|
"entity_id": "button.smoke_sensor_self_test",
|
||||||
|
},
|
||||||
|
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,
|
||||||
|
endpoint_id=1,
|
||||||
|
command=clusters.SmokeCoAlarm.Commands.SelfTestRequest(),
|
||||||
|
)
|
||||||
|
Reference in New Issue
Block a user