Matter Laundry Dryer fixture (#144043)

* Create laundry_dryer.json

* Add snapshots

* Format fixture

* Set CurrentPhase attribute

* Set OperationalState attribute

* Update snapshot
This commit is contained in:
Ludovic BOUÉ 2025-05-01 14:52:32 +02:00 committed by GitHub
parent 24252edf38
commit 60b6ff4064
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 722 additions and 0 deletions

View File

@ -92,6 +92,7 @@ async def integration_fixture(
"generic_switch",
"generic_switch_multi",
"humidity_sensor",
"laundry_dryer",
"leak_sensor",
"light_sensor",
"microwave_oven",

View File

@ -0,0 +1,307 @@
{
"node_id": 8,
"date_commissioned": "2025-05-01T11:45:46.203438",
"last_interview": "2025-05-01T11:45:46.203452",
"interview_version": 6,
"available": true,
"is_bridge": false,
"attributes": {
"0/29/0": [
{
"0": 22,
"1": 1
}
],
"0/29/1": [29, 31, 40, 43, 45, 48, 49, 51, 54, 60, 62, 63],
"0/29/2": [],
"0/29/3": [1],
"0/29/65532": 0,
"0/29/65533": 2,
"0/29/65528": [],
"0/29/65529": [],
"0/29/65531": [0, 1, 2, 3, 65532, 65533, 65528, 65529, 65531],
"0/31/0": [
{
"1": 5,
"2": 2,
"3": [112233],
"4": null,
"254": 1
}
],
"0/31/1": [],
"0/31/2": 4,
"0/31/3": 3,
"0/31/4": 4,
"0/31/65532": 0,
"0/31/65533": 2,
"0/31/65528": [],
"0/31/65529": [],
"0/31/65531": [0, 1, 2, 3, 4, 65532, 65533, 65528, 65529, 65531],
"0/40/0": 19,
"0/40/1": "TEST_VENDOR",
"0/40/2": 65521,
"0/40/3": "Mock Laundrydryer",
"0/40/4": 32768,
"0/40/5": "",
"0/40/6": "**REDACTED**",
"0/40/7": 0,
"0/40/8": "TEST_VERSION",
"0/40/9": 1,
"0/40/10": "1.0",
"0/40/11": "20200101",
"0/40/12": "",
"0/40/13": "",
"0/40/14": "",
"0/40/15": "TEST_SN",
"0/40/16": false,
"0/40/17": true,
"0/40/18": "8A7EFAF22659A7C6",
"0/40/19": {
"0": 3,
"1": 65535
},
"0/40/21": 17104896,
"0/40/22": 1,
"0/40/24": 1,
"0/40/65532": 0,
"0/40/65533": 5,
"0/40/65528": [],
"0/40/65529": [],
"0/40/65531": [
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21,
22, 24, 65532, 65533, 65528, 65529, 65531
],
"0/43/0": "en-US",
"0/43/1": [
"en-US",
"de-DE",
"fr-FR",
"en-GB",
"es-ES",
"zh-CN",
"it-IT",
"ja-JP"
],
"0/43/65532": 0,
"0/43/65533": 1,
"0/43/65528": [],
"0/43/65529": [],
"0/43/65531": [0, 1, 65532, 65533, 65528, 65529, 65531],
"0/45/0": 0,
"0/45/65532": 1,
"0/45/65533": 2,
"0/45/65528": [],
"0/45/65529": [],
"0/45/65531": [0, 65532, 65533, 65528, 65529, 65531],
"0/48/0": 0,
"0/48/1": {
"0": 60,
"1": 900
},
"0/48/2": 0,
"0/48/3": 2,
"0/48/4": true,
"0/48/65532": 0,
"0/48/65533": 1,
"0/48/65528": [1, 3, 5],
"0/48/65529": [0, 2, 4],
"0/48/65531": [0, 1, 2, 3, 4, 65532, 65533, 65528, 65529, 65531],
"0/49/0": 1,
"0/49/1": [
{
"0": "ZW5zMzM=",
"1": true
}
],
"0/49/2": 0,
"0/49/3": 0,
"0/49/4": true,
"0/49/5": null,
"0/49/6": null,
"0/49/7": null,
"0/49/65532": 4,
"0/49/65533": 2,
"0/49/65528": [],
"0/49/65529": [],
"0/49/65531": [0, 1, 2, 3, 4, 5, 6, 7, 65532, 65533, 65528, 65529, 65531],
"0/51/0": [
{
"0": "docker0",
"1": false,
"2": null,
"3": null,
"4": "AkIH8Iu2",
"5": ["rBEAAQ=="],
"6": [""],
"7": 0
},
{
"0": "ens33",
"1": true,
"2": null,
"3": null,
"4": "AAwp/F0T",
"5": ["wKgBqA=="],
"6": [
"KgEOCgKzOZD1j4HmibD6Yw==",
"KgEOCgKzOZC/O1Ew1WvS4A==",
"/oAAAAAAAADml3Ozl7GZug=="
],
"7": 2
},
{
"0": "lo",
"1": true,
"2": null,
"3": null,
"4": "AAAAAAAA",
"5": ["fwAAAQ=="],
"6": ["AAAAAAAAAAAAAAAAAAAAAQ=="],
"7": 0
}
],
"0/51/1": 1,
"0/51/2": 11,
"0/51/3": 0,
"0/51/4": 0,
"0/51/5": [],
"0/51/6": [],
"0/51/7": [],
"0/51/8": false,
"0/51/65532": 0,
"0/51/65533": 2,
"0/51/65528": [2],
"0/51/65529": [0, 1],
"0/51/65531": [
0, 1, 2, 3, 4, 5, 6, 7, 8, 65532, 65533, 65528, 65529, 65531
],
"0/54/0": null,
"0/54/1": null,
"0/54/2": 3,
"0/54/3": null,
"0/54/4": null,
"0/54/5": null,
"0/54/6": null,
"0/54/7": null,
"0/54/8": null,
"0/54/9": null,
"0/54/10": null,
"0/54/11": null,
"0/54/12": null,
"0/54/65532": 3,
"0/54/65533": 1,
"0/54/65528": [],
"0/54/65529": [0],
"0/54/65531": [
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 65532, 65533, 65528, 65529,
65531
],
"0/60/0": 0,
"0/60/1": null,
"0/60/2": null,
"0/60/65532": 0,
"0/60/65533": 1,
"0/60/65528": [],
"0/60/65529": [0, 1, 2],
"0/60/65531": [0, 1, 2, 65532, 65533, 65528, 65529, 65531],
"0/62/0": [
{
"1": "FTABAQEkAgE3AyQTAhgmBIAigScmBYAlTTo3BiQVAiQRCBgkBwEkCAEwCUEEuBSQYARV1MtZ/zTYCZDFAchE6gYPl8EQsnZ/zBOFY/+CRpZdiSIJdKySB6kixHqnFG5AlLLuN0kV2p3RgtFNhDcKNQEoARgkAgE2AwQCBAEYMAQUHBnbZ0B6X2b4Hrmm7ND49lbGb4MwBRRqGquZZYwbDAaOinVVrS9sWTozoBgwC0AYHLmEMzw4m5K4nFJO6x8PB5xwkHJ0QtPgowB2/HYdTyR+MIPJRQfiPZB2WSzaDQpkMj+niAV9X59mKSwTntitGA==",
"2": "FTABAQEkAgE3AyQUARgmBIAigScmBYAlTTo3BiQTAhgkBwEkCAEwCUEEyvr+z4yBxEDoiyCFg+i408LqC3j0UMvTszBv1051g2EMrAzBkj+0RZFsSl3eQ3D2c7mTcH6GERtlk4BqGvC1qDcKNQEpARgkAmAwBBRqGquZZYwbDAaOinVVrS9sWTozoDAFFE+S8AxvAsS5t+ARMzsvuJx7MaUfGDALQCIuoikQZU9LkDKw7dcTVVXBDlTyBol3w070PIIw8BbaQD5qCeIv/3cI5/X5sAYTmemRq0ZPMjAw1dsN+wodzm8Y",
"254": 1
}
],
"0/62/1": [
{
"1": "BIPshBqc9a7nNK00eRrviEzHfe/cfATY9VngqKv17+uAUpy3XujhZBjkAQyhYAaSKxVzSfVttY4FVQkpXIHZFlA=",
"2": 4939,
"3": 2,
"4": 8,
"5": "ha-freebox",
"254": 1
}
],
"0/62/2": 16,
"0/62/3": 1,
"0/62/4": [
"FTABAQEkAgE3AyQUARgmBIAigScmBYAlTTo3BiQUARgkBwEkCAEwCUEEg+yEGpz1ruc0rTR5Gu+ITMd979x8BNj1WeCoq/Xv64BSnLde6OFkGOQBDKFgBpIrFXNJ9W21jgVVCSlcgdkWUDcKNQEpARgkAmAwBBRPkvAMbwLEubfgETM7L7icezGlHzAFFE+S8AxvAsS5t+ARMzsvuJx7MaUfGDALQIKyooBXllxj1uo4Zn4CBbZqECNdO3wwzlhl7ZEygrWa04gBa5rVqgg+JahrvXD6HPHu4XldWIULtqTCPPIm4OsY"
],
"0/62/5": 1,
"0/62/65532": 0,
"0/62/65533": 2,
"0/62/65528": [1, 3, 5, 8],
"0/62/65529": [0, 2, 4, 6, 7, 9, 10, 11],
"0/62/65531": [0, 1, 2, 3, 4, 5, 65532, 65533, 65528, 65529, 65531],
"0/63/0": [],
"0/63/1": [],
"0/63/2": 4,
"0/63/3": 3,
"0/63/65532": 0,
"0/63/65533": 2,
"0/63/65528": [2, 5],
"0/63/65529": [0, 1, 3, 4],
"0/63/65531": [0, 1, 2, 3, 65532, 65533, 65528, 65529, 65531],
"1/3/0": 0,
"1/3/1": 0,
"1/3/65532": 0,
"1/3/65533": 6,
"1/3/65528": [],
"1/3/65529": [0, 64],
"1/3/65531": [0, 1, 65532, 65533, 65528, 65529, 65531],
"1/6/0": false,
"1/6/65532": 2,
"1/6/65533": 6,
"1/6/65528": [],
"1/6/65529": [0, 1, 2],
"1/6/65531": [0, 65532, 65533, 65528, 65529, 65531],
"1/29/0": [
{
"0": 124,
"1": 1
}
],
"1/29/1": [3, 6, 29, 86, 96],
"1/29/2": [],
"1/29/3": [],
"1/29/65532": 0,
"1/29/65533": 2,
"1/29/65528": [],
"1/29/65529": [],
"1/29/65531": [0, 1, 2, 3, 65532, 65533, 65528, 65529, 65531],
"1/86/4": 0,
"1/86/5": ["Low", "Medium", "High"],
"1/86/65532": 2,
"1/86/65533": 1,
"1/86/65528": [],
"1/86/65529": [0],
"1/86/65531": [4, 5, 65532, 65533, 65528, 65529, 65531],
"1/96/0": ["pre-soak", "rinse", "spin"],
"1/96/1": 0,
"1/96/2": null,
"1/96/3": [
{
"0": 0
},
{
"0": 1
},
{
"0": 2
},
{
"0": 3
}
],
"1/96/4": 1,
"1/96/5": {
"0": 0
},
"1/96/65532": 0,
"1/96/65533": 3,
"1/96/65528": [4],
"1/96/65529": [0, 1, 2, 3],
"1/96/65531": [0, 1, 2, 3, 4, 5, 65532, 65533, 65528, 65529, 65531]
},
"attribute_subscriptions": []
}

View File

@ -573,6 +573,194 @@
'state': 'unknown',
})
# ---
# name: test_buttons[laundry_dryer][button.mock_laundrydryer_pause-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': None,
'entity_id': 'button.mock_laundrydryer_pause',
'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': 'Pause',
'platform': 'matter',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'pause',
'unique_id': '00000000000004D2-0000000000000008-MatterNodeDevice-1-OperationalStatePauseButton-96-65529',
'unit_of_measurement': None,
})
# ---
# name: test_buttons[laundry_dryer][button.mock_laundrydryer_pause-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Mock Laundrydryer Pause',
}),
'context': <ANY>,
'entity_id': 'button.mock_laundrydryer_pause',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unknown',
})
# ---
# name: test_buttons[laundry_dryer][button.mock_laundrydryer_resume-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': None,
'entity_id': 'button.mock_laundrydryer_resume',
'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': 'Resume',
'platform': 'matter',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'resume',
'unique_id': '00000000000004D2-0000000000000008-MatterNodeDevice-1-OperationalStateResumeButton-96-65529',
'unit_of_measurement': None,
})
# ---
# name: test_buttons[laundry_dryer][button.mock_laundrydryer_resume-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Mock Laundrydryer Resume',
}),
'context': <ANY>,
'entity_id': 'button.mock_laundrydryer_resume',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unknown',
})
# ---
# name: test_buttons[laundry_dryer][button.mock_laundrydryer_start-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': None,
'entity_id': 'button.mock_laundrydryer_start',
'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': 'Start',
'platform': 'matter',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'start',
'unique_id': '00000000000004D2-0000000000000008-MatterNodeDevice-1-OperationalStateStartButton-96-65529',
'unit_of_measurement': None,
})
# ---
# name: test_buttons[laundry_dryer][button.mock_laundrydryer_start-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Mock Laundrydryer Start',
}),
'context': <ANY>,
'entity_id': 'button.mock_laundrydryer_start',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unknown',
})
# ---
# name: test_buttons[laundry_dryer][button.mock_laundrydryer_stop-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': None,
'entity_id': 'button.mock_laundrydryer_stop',
'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': 'Stop',
'platform': 'matter',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'stop',
'unique_id': '00000000000004D2-0000000000000008-MatterNodeDevice-1-OperationalStateStopButton-96-65529',
'unit_of_measurement': None,
})
# ---
# name: test_buttons[laundry_dryer][button.mock_laundrydryer_stop-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Mock Laundrydryer Stop',
}),
'context': <ANY>,
'entity_id': 'button.mock_laundrydryer_stop',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unknown',
})
# ---
# name: test_buttons[microwave_oven][button.microwave_oven_pause-entry]
EntityRegistryEntrySnapshot({
'aliases': set({

View File

@ -787,6 +787,64 @@
'state': 'previous',
})
# ---
# name: test_selects[laundry_dryer][select.mock_laundrydryer_temperature_level-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'options': list([
'Low',
'Medium',
'High',
]),
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'select',
'entity_category': None,
'entity_id': 'select.mock_laundrydryer_temperature_level',
'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': 'Temperature level',
'platform': 'matter',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'temperature_level',
'unique_id': '00000000000004D2-0000000000000008-MatterNodeDevice-1-TemperatureControlSelectedTemperatureLevel-86-4',
'unit_of_measurement': None,
})
# ---
# name: test_selects[laundry_dryer][select.mock_laundrydryer_temperature_level-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Mock Laundrydryer Temperature level',
'options': list([
'Low',
'Medium',
'High',
]),
}),
'context': <ANY>,
'entity_id': 'select.mock_laundrydryer_temperature_level',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'Low',
})
# ---
# name: test_selects[multi_endpoint_light][select.inovelli_dimming_edge-entry]
EntityRegistryEntrySnapshot({
'aliases': set({

View File

@ -2406,6 +2406,126 @@
'state': '0.0',
})
# ---
# name: test_sensors[laundry_dryer][sensor.mock_laundrydryer_current_phase-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'options': list([
'pre-soak',
'rinse',
'spin',
]),
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.mock_laundrydryer_current_phase',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
'original_icon': None,
'original_name': 'Current phase',
'platform': 'matter',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'current_phase',
'unique_id': '00000000000004D2-0000000000000008-MatterNodeDevice-1-OperationalStateCurrentPhase-96-1',
'unit_of_measurement': None,
})
# ---
# name: test_sensors[laundry_dryer][sensor.mock_laundrydryer_current_phase-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'enum',
'friendly_name': 'Mock Laundrydryer Current phase',
'options': list([
'pre-soak',
'rinse',
'spin',
]),
}),
'context': <ANY>,
'entity_id': 'sensor.mock_laundrydryer_current_phase',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'pre-soak',
})
# ---
# name: test_sensors[laundry_dryer][sensor.mock_laundrydryer_operational_state-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'options': list([
'stopped',
'running',
'paused',
'error',
]),
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.mock_laundrydryer_operational_state',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
'original_icon': None,
'original_name': 'Operational state',
'platform': 'matter',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'operational_state',
'unique_id': '00000000000004D2-0000000000000008-MatterNodeDevice-1-OperationalState-96-4',
'unit_of_measurement': None,
})
# ---
# name: test_sensors[laundry_dryer][sensor.mock_laundrydryer_operational_state-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'enum',
'friendly_name': 'Mock Laundrydryer Operational state',
'options': list([
'stopped',
'running',
'paused',
'error',
]),
}),
'context': <ANY>,
'entity_id': 'sensor.mock_laundrydryer_operational_state',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'running',
})
# ---
# name: test_sensors[light_sensor][sensor.mock_light_sensor_illuminance-entry]
EntityRegistryEntrySnapshot({
'aliases': set({

View File

@ -334,6 +334,54 @@
'state': 'off',
})
# ---
# name: test_switches[laundry_dryer][switch.mock_laundrydryer_power-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': 'switch',
'entity_category': None,
'entity_id': 'switch.mock_laundrydryer_power',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SwitchDeviceClass.SWITCH: 'switch'>,
'original_icon': None,
'original_name': 'Power',
'platform': 'matter',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'power',
'unique_id': '00000000000004D2-0000000000000008-MatterNodeDevice-1-MatterPowerToggle-6-0',
'unit_of_measurement': None,
})
# ---
# name: test_switches[laundry_dryer][switch.mock_laundrydryer_power-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'switch',
'friendly_name': 'Mock Laundrydryer Power',
}),
'context': <ANY>,
'entity_id': 'switch.mock_laundrydryer_power',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'off',
})
# ---
# name: test_switches[on_off_plugin_unit][switch.mock_onoffpluginunit-entry]
EntityRegistryEntrySnapshot({
'aliases': set({