From aa72b76ee75ff7a70447ccbccc4ce0b0f92d2c62 Mon Sep 17 00:00:00 2001 From: Joost Lekkerkerker Date: Wed, 3 Dec 2025 15:36:29 +0100 Subject: [PATCH] Add cooktop fixture to SmartThings (#157842) --- tests/components/smartthings/conftest.py | 1 + .../device_status/da_ks_cooktop_000001.json | 308 ++++++++++++++++++ .../devices/da_ks_cooktop_000001.json | 151 +++++++++ .../snapshots/test_binary_sensor.ambr | 97 ++++++ .../smartthings/snapshots/test_init.ambr | 31 ++ .../smartthings/snapshots/test_sensor.ambr | 58 ++++ 6 files changed, 646 insertions(+) create mode 100644 tests/components/smartthings/fixtures/device_status/da_ks_cooktop_000001.json create mode 100644 tests/components/smartthings/fixtures/devices/da_ks_cooktop_000001.json diff --git a/tests/components/smartthings/conftest.py b/tests/components/smartthings/conftest.py index 8c712cb28fb..c49e7116acb 100644 --- a/tests/components/smartthings/conftest.py +++ b/tests/components/smartthings/conftest.py @@ -143,6 +143,7 @@ def mock_smartthings() -> Generator[AsyncMock]: "da_rvc_normal_000001", "da_rvc_map_01011", "da_ks_microwave_0101x", + "da_ks_cooktop_000001", "da_ks_cooktop_31001", "da_ks_range_0101x", "da_ks_oven_01061", diff --git a/tests/components/smartthings/fixtures/device_status/da_ks_cooktop_000001.json b/tests/components/smartthings/fixtures/device_status/da_ks_cooktop_000001.json new file mode 100644 index 00000000000..fd2c0fc54fc --- /dev/null +++ b/tests/components/smartthings/fixtures/device_status/da_ks_cooktop_000001.json @@ -0,0 +1,308 @@ +{ + "components": { + "main": { + "refresh": {}, + "execute": { + "data": { + "value": null + } + }, + "samsungce.deviceIdentification": { + "micomAssayCode": { + "value": "40442241", + "timestamp": "2025-12-02T09:19:03.381Z" + }, + "modelName": { + "value": null + }, + "serialNumber": { + "value": null + }, + "serialNumberExtra": { + "value": null + }, + "modelClassificationCode": { + "value": "50000204001011000100000000000000", + "timestamp": "2025-12-02T09:19:03.381Z" + }, + "description": { + "value": "NV9300K-/AA3", + "timestamp": "2025-12-02T09:19:03.381Z" + }, + "releaseYear": { + "value": 16, + "timestamp": "2025-06-13T19:06:42.910Z" + }, + "binaryId": { + "value": "TP2X_DA-KS-COOKTOP-000001", + "timestamp": "2025-12-02T09:19:03.380Z" + } + }, + "switch": { + "switch": { + "value": "off", + "timestamp": "2025-12-02T09:19:03.377Z" + } + }, + "samsungce.softwareVersion": { + "versions": { + "value": [ + { + "id": "0", + "swType": "Software", + "versionNumber": "230515", + "description": "Version" + }, + { + "id": "1", + "swType": "Firmware", + "versionNumber": "DE92-04422A_22112100", + "description": "Version" + } + ], + "timestamp": "2025-12-02T09:19:03.381Z" + } + }, + "ocf": { + "st": { + "value": null + }, + "mndt": { + "value": null + }, + "mnfv": { + "value": "AKS-WW-TP2X-20-COOKTOP_40230515", + "timestamp": "2025-06-18T19:50:19.130Z" + }, + "mnhw": { + "value": "MediaTek", + "timestamp": "2025-06-18T19:50:19.130Z" + }, + "di": { + "value": "5c202ad1-d112-d746-50b8-bd76a554b362", + "timestamp": "2025-06-18T19:50:19.130Z" + }, + "mnsl": { + "value": "http://www.samsung.com", + "timestamp": "2025-06-18T19:50:19.130Z" + }, + "dmv": { + "value": "res.1.1.0,sh.1.1.0", + "timestamp": "2025-06-18T19:50:19.130Z" + }, + "n": { + "value": "Samsung Cooktop", + "timestamp": "2025-06-18T19:50:19.130Z" + }, + "mnmo": { + "value": "TP2X_DA-KS-COOKTOP-000001|40442241|50000204001011000100000000000000", + "timestamp": "2025-06-18T19:50:19.130Z" + }, + "vid": { + "value": "DA-KS-COOKTOP-000001", + "timestamp": "2025-06-18T19:50:19.130Z" + }, + "mnmn": { + "value": "Samsung Electronics", + "timestamp": "2025-06-18T19:50:19.130Z" + }, + "mnml": { + "value": "http://www.samsung.com", + "timestamp": "2025-06-18T19:50:19.130Z" + }, + "mnpv": { + "value": "DAWIT 3.0", + "timestamp": "2025-06-18T19:50:19.130Z" + }, + "mnos": { + "value": "TizenRT 2.0 + IPv6", + "timestamp": "2025-06-18T19:50:19.130Z" + }, + "pi": { + "value": "5c202ad1-d112-d746-50b8-bd76a554b362", + "timestamp": "2025-06-18T19:50:19.130Z" + }, + "icv": { + "value": "core.1.1.0", + "timestamp": "2025-06-18T19:50:19.130Z" + } + }, + "samsungce.kitchenDeviceIdentification": { + "regionCode": { + "value": "US", + "timestamp": "2025-12-02T09:19:03.381Z" + }, + "modelCode": { + "value": "NV9300K-/AA3", + "timestamp": "2025-12-02T09:19:03.381Z" + }, + "fuel": { + "value": null + }, + "type": { + "value": "cooktop", + "timestamp": "2025-06-18T19:50:18.927Z" + }, + "representativeComponent": { + "value": null + } + }, + "custom.cooktopOperatingState": { + "supportedCooktopOperatingState": { + "value": ["ready", "run"], + "timestamp": "2025-12-02T09:19:03.381Z" + }, + "cooktopOperatingState": { + "value": "ready", + "timestamp": "2025-12-02T09:19:03.381Z" + } + }, + "custom.disabledCapabilities": { + "disabledCapabilities": { + "value": ["samsungce.kidsLockControl"], + "timestamp": "2025-03-27T22:25:08.123Z" + } + }, + "samsungce.driverVersion": { + "versionNumber": { + "value": 25040101, + "timestamp": "2025-06-13T19:06:42.910Z" + } + }, + "samsungce.softwareUpdate": { + "targetModule": { + "value": {}, + "timestamp": "2025-12-02T02:42:41.363Z" + }, + "otnDUID": { + "value": "ZPCPH4AI7CHPC", + "timestamp": "2025-12-02T09:19:03.381Z" + }, + "lastUpdatedDate": { + "value": null + }, + "availableModules": { + "value": [], + "timestamp": "2025-03-27T22:25:08.123Z" + }, + "newVersionAvailable": { + "value": false, + "timestamp": "2025-12-02T09:19:03.381Z" + }, + "operatingState": { + "value": null + }, + "progress": { + "value": null + } + }, + "sec.diagnosticsInformation": { + "logType": { + "value": ["errCode", "dump"], + "timestamp": "2025-12-02T09:19:03.381Z" + }, + "endpoint": { + "value": "SSM", + "timestamp": "2025-12-02T09:19:03.381Z" + }, + "minVersion": { + "value": "1.0", + "timestamp": "2025-12-02T09:19:03.381Z" + }, + "signinPermission": { + "value": null + }, + "setupId": { + "value": "800", + "timestamp": "2025-12-02T09:19:03.381Z" + }, + "protocolType": { + "value": "wifi_https", + "timestamp": "2025-12-02T09:19:03.381Z" + }, + "tsId": { + "value": null + }, + "mnId": { + "value": "0AJT", + "timestamp": "2025-12-02T09:19:03.381Z" + }, + "dumpType": { + "value": "file", + "timestamp": "2025-12-02T09:19:03.381Z" + } + }, + "samsungce.kidsLockControl": { + "lockState": { + "value": "unlocked", + "timestamp": "2025-12-02T09:19:03.381Z" + } + }, + "samsungce.kidsLock": { + "lockState": { + "value": "unlocked", + "timestamp": "2025-12-02T09:19:03.381Z" + } + } + }, + "hood": { + "samsungce.connectionState": { + "connectionState": { + "value": "disconnected", + "timestamp": "2025-12-02T09:19:03.381Z" + } + }, + "custom.disabledCapabilities": { + "disabledCapabilities": { + "value": ["samsungce.lamp", "samsungce.hoodFanSpeed"], + "timestamp": "2025-03-27T22:25:07.975Z" + } + }, + "samsungce.hoodFanSpeed": { + "settableMaxFanSpeed": { + "value": 5, + "timestamp": "2025-06-13T19:06:42.910Z" + }, + "hoodFanSpeed": { + "value": 0, + "timestamp": "2025-12-02T09:19:03.381Z" + }, + "supportedHoodFanSpeed": { + "value": [0, 1, 2, 3, 4, 5], + "timestamp": "2025-06-13T19:06:42.910Z" + }, + "settableMinFanSpeed": { + "value": 0, + "timestamp": "2025-06-13T19:06:42.910Z" + } + }, + "samsungce.countDownTimer": { + "startValue": { + "value": null + }, + "currentValue": { + "value": null + }, + "status": { + "value": null + } + }, + "switch": { + "switch": { + "value": "off", + "timestamp": "2025-12-02T09:19:03.377Z" + } + }, + "samsungce.lamp": { + "brightnessLevel": { + "value": "off", + "timestamp": "2025-12-02T09:19:03.381Z" + }, + "supportedBrightnessLevel": { + "value": ["off", "high"], + "timestamp": "2025-06-13T19:06:42.910Z" + } + } + } + } +} diff --git a/tests/components/smartthings/fixtures/devices/da_ks_cooktop_000001.json b/tests/components/smartthings/fixtures/devices/da_ks_cooktop_000001.json new file mode 100644 index 00000000000..6176a7eea28 --- /dev/null +++ b/tests/components/smartthings/fixtures/devices/da_ks_cooktop_000001.json @@ -0,0 +1,151 @@ +{ + "items": [ + { + "deviceId": "5c202ad1-d112-d746-50b8-bd76a554b362", + "name": "Samsung Cooktop", + "label": "Table de cuisson", + "manufacturerName": "Samsung Electronics", + "presentationId": "DA-KS-COOKTOP-000001", + "deviceManufacturerCode": "Samsung Electronics", + "locationId": "8f6b1123-6539-42b7-9e88-191a65feb0d5", + "ownerId": "644db67a-f2ed-58a8-2915-172ca7a5f817", + "roomId": "8554374b-2db3-455c-bc23-a514d52fdae8", + "deviceTypeName": "oic.d.cooktop", + "components": [ + { + "id": "main", + "label": "main", + "capabilities": [ + { + "id": "ocf", + "version": 1 + }, + { + "id": "execute", + "version": 1 + }, + { + "id": "switch", + "version": 1 + }, + { + "id": "refresh", + "version": 1 + }, + { + "id": "samsungce.deviceIdentification", + "version": 1 + }, + { + "id": "samsungce.driverVersion", + "version": 1 + }, + { + "id": "samsungce.kitchenDeviceIdentification", + "version": 1 + }, + { + "id": "samsungce.kidsLock", + "version": 1 + }, + { + "id": "samsungce.kidsLockControl", + "version": 1 + }, + { + "id": "samsungce.softwareUpdate", + "version": 1 + }, + { + "id": "custom.cooktopOperatingState", + "version": 1 + }, + { + "id": "custom.disabledCapabilities", + "version": 1 + }, + { + "id": "sec.diagnosticsInformation", + "version": 1 + }, + { + "id": "samsungce.softwareVersion", + "version": 1 + } + ], + "categories": [ + { + "name": "Cooktop", + "categoryType": "manufacturer" + } + ], + "optional": false + }, + { + "id": "hood", + "label": "hood", + "capabilities": [ + { + "id": "switch", + "version": 1 + }, + { + "id": "samsungce.connectionState", + "version": 1 + }, + { + "id": "samsungce.hoodFanSpeed", + "version": 1 + }, + { + "id": "samsungce.lamp", + "version": 1 + }, + { + "id": "samsungce.countDownTimer", + "version": 1 + }, + { + "id": "custom.disabledCapabilities", + "version": 1 + } + ], + "categories": [ + { + "name": "Other", + "categoryType": "manufacturer" + } + ], + "optional": false + } + ], + "createTime": "2024-10-15T22:50:46.668Z", + "profile": { + "id": "27672adb-a742-3cf4-b604-33fc8f60a467" + }, + "ocf": { + "ocfDeviceType": "oic.d.cooktop", + "name": "Samsung Cooktop", + "specVersion": "core.1.1.0", + "verticalDomainSpecVersion": "res.1.1.0,sh.1.1.0", + "manufacturerName": "Samsung Electronics", + "modelNumber": "TP2X_DA-KS-COOKTOP-000001|40442241|50000204001011000100000000000000", + "platformVersion": "DAWIT 3.0", + "platformOS": "TizenRT 2.0 + IPv6", + "hwVersion": "MediaTek", + "firmwareVersion": "AKS-WW-TP2X-20-COOKTOP_40230515", + "vendorId": "DA-KS-COOKTOP-000001", + "vendorResourceClientServerVersion": "MediaTek Release 2.220916.2", + "lastSignupTime": "2024-10-15T22:50:42.588535356Z", + "transferCandidate": false, + "additionalAuthCodeRequired": false + }, + "type": "OCF", + "restrictionTier": 0, + "allowed": null, + "executionContext": "CLOUD", + "relationships": [] + } + ], + "_links": {} +} diff --git a/tests/components/smartthings/snapshots/test_binary_sensor.ambr b/tests/components/smartthings/snapshots/test_binary_sensor.ambr index c4048af8528..1a3d1ca0d90 100644 --- a/tests/components/smartthings/snapshots/test_binary_sensor.ambr +++ b/tests/components/smartthings/snapshots/test_binary_sensor.ambr @@ -244,6 +244,103 @@ 'state': 'off', }) # --- +# name: test_all_entities[da_ks_cooktop_000001][binary_sensor.table_de_cuisson_child_lock-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.table_de_cuisson_child_lock', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Child lock', + 'platform': 'smartthings', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'child_lock', + 'unique_id': '5c202ad1-d112-d746-50b8-bd76a554b362_main_samsungce.kidsLock_lockState_lockState', + 'unit_of_measurement': None, + }) +# --- +# name: test_all_entities[da_ks_cooktop_000001][binary_sensor.table_de_cuisson_child_lock-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Table de cuisson Child lock', + }), + 'context': , + 'entity_id': 'binary_sensor.table_de_cuisson_child_lock', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'off', + }) +# --- +# name: test_all_entities[da_ks_cooktop_000001][binary_sensor.table_de_cuisson_power-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.table_de_cuisson_power', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Power', + 'platform': 'smartthings', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '5c202ad1-d112-d746-50b8-bd76a554b362_main_switch_switch_switch', + 'unit_of_measurement': None, + }) +# --- +# name: test_all_entities[da_ks_cooktop_000001][binary_sensor.table_de_cuisson_power-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power', + 'friendly_name': 'Table de cuisson Power', + }), + 'context': , + 'entity_id': 'binary_sensor.table_de_cuisson_power', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'off', + }) +# --- # name: test_all_entities[da_ks_cooktop_31001][binary_sensor.induction_hob_power-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ diff --git a/tests/components/smartthings/snapshots/test_init.ambr b/tests/components/smartthings/snapshots/test_init.ambr index e5e9f7b8fe1..6b22a71c221 100644 --- a/tests/components/smartthings/snapshots/test_init.ambr +++ b/tests/components/smartthings/snapshots/test_init.ambr @@ -560,6 +560,37 @@ 'via_device_id': None, }) # --- +# name: test_devices[da_ks_cooktop_000001] + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'config_entries_subentries': , + 'configuration_url': 'https://account.smartthings.com', + 'connections': set({ + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': 'MediaTek', + 'id': , + 'identifiers': set({ + tuple( + 'smartthings', + '5c202ad1-d112-d746-50b8-bd76a554b362', + ), + }), + 'labels': set({ + }), + 'manufacturer': 'Samsung Electronics', + 'model': 'TP2X_DA-KS-COOKTOP-000001', + 'model_id': None, + 'name': 'Table de cuisson', + 'name_by_user': None, + 'primary_config_entry': , + 'serial_number': None, + 'sw_version': 'AKS-WW-TP2X-20-COOKTOP_40230515', + 'via_device_id': None, + }) +# --- # name: test_devices[da_ks_cooktop_31001] DeviceRegistryEntrySnapshot({ 'area_id': None, diff --git a/tests/components/smartthings/snapshots/test_sensor.ambr b/tests/components/smartthings/snapshots/test_sensor.ambr index cad26fdaec2..cbec75b3a86 100644 --- a/tests/components/smartthings/snapshots/test_sensor.ambr +++ b/tests/components/smartthings/snapshots/test_sensor.ambr @@ -4064,6 +4064,64 @@ 'state': '27', }) # --- +# name: test_all_entities[da_ks_cooktop_000001][sensor.table_de_cuisson_operating_state-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'ready', + 'run', + ]), + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.table_de_cuisson_operating_state', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Operating state', + 'platform': 'smartthings', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'cooktop_operating_state', + 'unique_id': '5c202ad1-d112-d746-50b8-bd76a554b362_main_custom.cooktopOperatingState_cooktopOperatingState_cooktopOperatingState', + 'unit_of_measurement': None, + }) +# --- +# name: test_all_entities[da_ks_cooktop_000001][sensor.table_de_cuisson_operating_state-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'enum', + 'friendly_name': 'Table de cuisson Operating state', + 'options': list([ + 'ready', + 'run', + ]), + }), + 'context': , + 'entity_id': 'sensor.table_de_cuisson_operating_state', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'ready', + }) +# --- # name: test_all_entities[da_ks_cooktop_31001][sensor.induction_hob_burner_1_heating_mode-entry] EntityRegistryEntrySnapshot({ 'aliases': set({