mirror of
https://github.com/home-assistant/core.git
synced 2025-04-25 01:38:02 +00:00
Use correct default value for multi press buttons in the Matter integration (#141630)
* Respect the min 2 constraint for the switch MultiPressMax attribute * Update test_event.py * Update generic_switch_multi.json * Fix issue and update tests
This commit is contained in:
parent
45e273897a
commit
e4d6e20ebd
@ -69,7 +69,7 @@ class MatterEventEntity(MatterEntity, EventEntity):
|
||||
max_presses_supported = self.get_matter_attribute_value(
|
||||
clusters.Switch.Attributes.MultiPressMax
|
||||
)
|
||||
max_presses_supported = min(max_presses_supported or 1, 8)
|
||||
max_presses_supported = min(max_presses_supported or 2, 8)
|
||||
for i in range(max_presses_supported):
|
||||
event_types.append(f"multi_press_{i + 1}") # noqa: PERF401
|
||||
elif feature_map & SwitchFeature.kMomentarySwitch:
|
||||
|
@ -72,7 +72,6 @@
|
||||
"1/59/0": 2,
|
||||
"1/59/65533": 1,
|
||||
"1/59/1": 0,
|
||||
"1/59/2": 2,
|
||||
"1/59/65531": [0, 1, 65528, 65529, 65531, 65532, 65533],
|
||||
"1/59/65532": 30,
|
||||
"1/59/65528": [],
|
||||
@ -102,7 +101,7 @@
|
||||
"2/59/0": 2,
|
||||
"2/59/65533": 1,
|
||||
"2/59/1": 0,
|
||||
"2/59/2": 2,
|
||||
"2/59/2": 4,
|
||||
"2/59/65531": [0, 1, 65528, 65529, 65531, 65532, 65533],
|
||||
"2/59/65532": 30,
|
||||
"2/59/65528": [],
|
||||
|
@ -132,6 +132,8 @@
|
||||
'event_types': list([
|
||||
'multi_press_1',
|
||||
'multi_press_2',
|
||||
'multi_press_3',
|
||||
'multi_press_4',
|
||||
'long_press',
|
||||
'long_release',
|
||||
]),
|
||||
@ -172,6 +174,8 @@
|
||||
'event_types': list([
|
||||
'multi_press_1',
|
||||
'multi_press_2',
|
||||
'multi_press_3',
|
||||
'multi_press_4',
|
||||
'long_press',
|
||||
'long_release',
|
||||
]),
|
||||
|
@ -36,7 +36,7 @@ async def test_generic_switch_node(
|
||||
assert state
|
||||
assert state.state == "unknown"
|
||||
assert state.name == "Mock Generic Switch Button"
|
||||
# check event_types from featuremap 30
|
||||
# check event_types from featuremap 14 (0b1110)
|
||||
assert state.attributes[ATTR_EVENT_TYPES] == [
|
||||
"initial_press",
|
||||
"short_release",
|
||||
@ -76,7 +76,7 @@ async def test_generic_switch_multi_node(
|
||||
assert state_button_1.state == "unknown"
|
||||
# name should be 'DeviceName Button (1)' due to the label set to just '1'
|
||||
assert state_button_1.name == "Mock Generic Switch Button (1)"
|
||||
# check event_types from featuremap 14
|
||||
# check event_types from featuremap 30 (0b11110) and MultiPressMax unset (default 2)
|
||||
assert state_button_1.attributes[ATTR_EVENT_TYPES] == [
|
||||
"multi_press_1",
|
||||
"multi_press_2",
|
||||
@ -84,11 +84,20 @@ async def test_generic_switch_multi_node(
|
||||
"long_release",
|
||||
]
|
||||
# check button 2
|
||||
state_button_1 = hass.states.get("event.mock_generic_switch_fancy_button")
|
||||
assert state_button_1
|
||||
assert state_button_1.state == "unknown"
|
||||
state_button_2 = hass.states.get("event.mock_generic_switch_fancy_button")
|
||||
assert state_button_2
|
||||
assert state_button_2.state == "unknown"
|
||||
# name should be 'DeviceName Fancy Button' due to the label set to 'Fancy Button'
|
||||
assert state_button_1.name == "Mock Generic Switch Fancy Button"
|
||||
assert state_button_2.name == "Mock Generic Switch Fancy Button"
|
||||
# check event_types from featuremap 30 (0b11110) and MultiPressMax 4
|
||||
assert state_button_2.attributes[ATTR_EVENT_TYPES] == [
|
||||
"multi_press_1",
|
||||
"multi_press_2",
|
||||
"multi_press_3",
|
||||
"multi_press_4",
|
||||
"long_press",
|
||||
"long_release",
|
||||
]
|
||||
|
||||
# trigger firing a multi press event
|
||||
await trigger_subscription_callback(
|
||||
|
Loading…
x
Reference in New Issue
Block a user