1
0
mirror of https://github.com/home-assistant/core.git synced 2026-04-02 16:36:08 +01:00

Sync SmartThings vacuum fixture (#164360)

This commit is contained in:
Joost Lekkerkerker
2026-02-27 21:43:30 +01:00
committed by GitHub
parent 033798835a
commit abd4e89577
9 changed files with 379 additions and 296 deletions

View File

@@ -1,15 +1,15 @@
{
"items": [
{
"deviceId": "05accb39-2017-c98b-a5ab-04a81f4d3d9a",
"deviceId": "01b28624-5907-c8bc-0325-8ad23f03a637",
"name": "[robot vacuum] Samsung",
"label": "Robot vacuum",
"label": "Robot Vacuum",
"manufacturerName": "Samsung Electronics",
"presentationId": "DA-RVC-MAP-01011",
"deviceManufacturerCode": "Samsung Electronics",
"locationId": "d31d0982-9bf9-4f0c-afd4-ad3d78842541",
"ownerId": "85532262-6537-54d9-179a-333db98dbcc0",
"roomId": "572f5713-53a9-4fb8-85fd-60515e44f1ed",
"locationId": "4647a408-2d4f-44a8-8ee6-f64328a0e480",
"ownerId": "8157695b-6c2f-4de5-98cb-bacaf51b8b2d",
"roomId": "9b0f3cf5-56b5-45fa-9bb8-81014bd63715",
"deviceTypeName": "Samsung OCF Robot Vacuum",
"components": [
{
@@ -132,10 +132,22 @@
"id": "samsungce.microphoneSettings",
"version": 1
},
{
"id": "samsungce.notification",
"version": 1
},
{
"id": "samsungce.objectDetection",
"version": 1
},
{
"id": "samsungce.softwareUpdate",
"version": 1
},
{
"id": "samsungce.sabbathMode",
"version": 1
},
{
"id": "samsungce.musicPlaylist",
"version": 1
@@ -320,24 +332,24 @@
"optional": false
}
],
"createTime": "2025-06-20T14:12:56.260Z",
"createTime": "2026-02-27T10:49:02.683Z",
"profile": {
"id": "5d345d41-a497-3fc7-84fe-eaaee50f0509"
"id": "0b3bf610-5ec4-3eeb-9e50-1038099f6904"
},
"ocf": {
"ocfDeviceType": "oic.d.robotcleaner",
"name": "[robot vacuum] Samsung",
"specVersion": "core.1.1.0",
"verticalDomainSpecVersion": "res.1.1.0,sh.1.1.0",
"verticalDomainSpecVersion": "1.2.1",
"manufacturerName": "Samsung Electronics",
"modelNumber": "JETBOT_COMBO_9X00_24K|50029141|80010b0002d8411f0100000000000000",
"modelNumber": "JETBOT_COMBOT_9X00_24K|50029141|80010a0002d8411f0100000000000000",
"platformVersion": "1.0",
"platformOS": "Tizen",
"hwVersion": "",
"firmwareVersion": "20250123.105306",
"firmwareVersion": "20260120.215157",
"vendorId": "DA-RVC-MAP-01011",
"vendorResourceClientServerVersion": "4.0.38",
"lastSignupTime": "2025-06-20T14:12:56.202953160Z",
"vendorResourceClientServerVersion": "4.0.40",
"lastSignupTime": "2026-02-27T12:08:52.022059763Z",
"transferCandidate": false,
"additionalAuthCodeRequired": false,
"modelCode": "NONE"

View File

@@ -947,19 +947,19 @@
'identifiers': set({
tuple(
'smartthings',
'05accb39-2017-c98b-a5ab-04a81f4d3d9a',
'01b28624-5907-c8bc-0325-8ad23f03a637',
),
}),
'labels': set({
}),
'manufacturer': 'Samsung Electronics',
'model': 'JETBOT_COMBO_9X00_24K',
'model': 'JETBOT_COMBOT_9X00_24K',
'model_id': None,
'name': 'Robot vacuum',
'name': 'Robot Vacuum',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'sw_version': '20250123.105306',
'sw_version': '20260120.215157',
'via_device_id': None,
})
# ---

View File

@@ -1,4 +1,58 @@
# serializer version: 1
# name: test_all_entities[da_rvc_map_01011][media_player.robot_vacuum-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'media_player',
'entity_category': None,
'entity_id': 'media_player.robot_vacuum',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': None,
'platform': 'smartthings',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': <MediaPlayerEntityFeature: 284045>,
'translation_key': None,
'unique_id': '01b28624-5907-c8bc-0325-8ad23f03a637_main',
'unit_of_measurement': None,
})
# ---
# name: test_all_entities[da_rvc_map_01011][media_player.robot_vacuum-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Robot Vacuum',
'is_volume_muted': False,
'repeat': <RepeatMode.ALL: 'all'>,
'supported_features': <MediaPlayerEntityFeature: 284045>,
'volume_level': 0.2,
}),
'context': <ANY>,
'entity_id': 'media_player.robot_vacuum',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'on',
})
# ---
# name: test_all_entities[hw_q80r_soundbar][media_player.soundbar-entry]
EntityRegistryEntrySnapshot({
'aliases': set({

View File

@@ -452,14 +452,14 @@
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'lamp',
'unique_id': '05accb39-2017-c98b-a5ab-04a81f4d3d9a_main_samsungce.lamp_brightnessLevel_brightnessLevel',
'unique_id': '01b28624-5907-c8bc-0325-8ad23f03a637_main_samsungce.lamp_brightnessLevel_brightnessLevel',
'unit_of_measurement': None,
})
# ---
# name: test_all_entities[da_rvc_map_01011][select.robot_vacuum_lamp-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Robot vacuum Lamp',
'friendly_name': 'Robot Vacuum Lamp',
'options': list([
'on',
'off',

View File

@@ -10506,7 +10506,7 @@
'suggested_object_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': '05accb39-2017-c98b-a5ab-04a81f4d3d9a_main_battery_battery_battery',
'unique_id': '01b28624-5907-c8bc-0325-8ad23f03a637_main_battery_battery_battery',
'unit_of_measurement': '%',
})
# ---
@@ -10514,7 +10514,7 @@
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'battery',
'friendly_name': 'Robot vacuum Battery',
'friendly_name': 'Robot Vacuum Battery',
'unit_of_measurement': '%',
}),
'context': <ANY>,
@@ -10522,7 +10522,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '59',
'state': '99',
})
# ---
# name: test_all_entities[da_rvc_map_01011][sensor.robot_vacuum_cleaning_mode-entry]
@@ -10566,7 +10566,7 @@
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'robot_cleaner_cleaning_mode',
'unique_id': '05accb39-2017-c98b-a5ab-04a81f4d3d9a_main_robotCleanerCleaningMode_robotCleanerCleaningMode_robotCleanerCleaningMode',
'unique_id': '01b28624-5907-c8bc-0325-8ad23f03a637_main_robotCleanerCleaningMode_robotCleanerCleaningMode_robotCleanerCleaningMode',
'unit_of_measurement': None,
})
# ---
@@ -10574,7 +10574,7 @@
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'enum',
'friendly_name': 'Robot vacuum Cleaning mode',
'friendly_name': 'Robot Vacuum Cleaning mode',
'options': list([
'auto',
'part',
@@ -10629,7 +10629,7 @@
'suggested_object_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': '05accb39-2017-c98b-a5ab-04a81f4d3d9a_main_powerConsumptionReport_powerConsumption_energy_meter',
'unique_id': '01b28624-5907-c8bc-0325-8ad23f03a637_main_powerConsumptionReport_powerConsumption_energy_meter',
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
})
# ---
@@ -10637,7 +10637,7 @@
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'energy',
'friendly_name': 'Robot vacuum Energy',
'friendly_name': 'Robot Vacuum Energy',
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
}),
@@ -10646,7 +10646,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.981',
'state': '0.335',
})
# ---
# name: test_all_entities[da_rvc_map_01011][sensor.robot_vacuum_energy_difference-entry]
@@ -10686,7 +10686,7 @@
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'energy_difference',
'unique_id': '05accb39-2017-c98b-a5ab-04a81f4d3d9a_main_powerConsumptionReport_powerConsumption_deltaEnergy_meter',
'unique_id': '01b28624-5907-c8bc-0325-8ad23f03a637_main_powerConsumptionReport_powerConsumption_deltaEnergy_meter',
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
})
# ---
@@ -10694,7 +10694,7 @@
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'energy',
'friendly_name': 'Robot vacuum Energy difference',
'friendly_name': 'Robot Vacuum Energy difference',
'state_class': <SensorStateClass.TOTAL: 'total'>,
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
}),
@@ -10703,7 +10703,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.021',
'state': '0.003',
})
# ---
# name: test_all_entities[da_rvc_map_01011][sensor.robot_vacuum_energy_saved-entry]
@@ -10743,7 +10743,7 @@
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'energy_saved',
'unique_id': '05accb39-2017-c98b-a5ab-04a81f4d3d9a_main_powerConsumptionReport_powerConsumption_energySaved_meter',
'unique_id': '01b28624-5907-c8bc-0325-8ad23f03a637_main_powerConsumptionReport_powerConsumption_energySaved_meter',
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
})
# ---
@@ -10751,7 +10751,7 @@
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'energy',
'friendly_name': 'Robot vacuum Energy saved',
'friendly_name': 'Robot Vacuum Energy saved',
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
}),
@@ -10809,7 +10809,7 @@
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'robot_cleaner_movement',
'unique_id': '05accb39-2017-c98b-a5ab-04a81f4d3d9a_main_robotCleanerMovement_robotCleanerMovement_robotCleanerMovement',
'unique_id': '01b28624-5907-c8bc-0325-8ad23f03a637_main_robotCleanerMovement_robotCleanerMovement_robotCleanerMovement',
'unit_of_measurement': None,
})
# ---
@@ -10817,7 +10817,7 @@
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'enum',
'friendly_name': 'Robot vacuum Movement',
'friendly_name': 'Robot Vacuum Movement',
'options': list([
'homing',
'idle',
@@ -10837,7 +10837,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'cleaning',
'state': 'charging',
})
# ---
# name: test_all_entities[da_rvc_map_01011][sensor.robot_vacuum_power-entry]
@@ -10877,7 +10877,7 @@
'suggested_object_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': '05accb39-2017-c98b-a5ab-04a81f4d3d9a_main_powerConsumptionReport_powerConsumption_power_meter',
'unique_id': '01b28624-5907-c8bc-0325-8ad23f03a637_main_powerConsumptionReport_powerConsumption_power_meter',
'unit_of_measurement': <UnitOfPower.WATT: 'W'>,
})
# ---
@@ -10885,9 +10885,9 @@
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'power',
'friendly_name': 'Robot vacuum Power',
'power_consumption_end': '2025-07-10T11:20:22Z',
'power_consumption_start': '2025-07-10T11:11:22Z',
'friendly_name': 'Robot Vacuum Power',
'power_consumption_end': '2026-02-27T17:02:44Z',
'power_consumption_start': '2026-02-27T16:52:44Z',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfPower.WATT: 'W'>,
}),
@@ -10936,7 +10936,7 @@
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'power_energy',
'unique_id': '05accb39-2017-c98b-a5ab-04a81f4d3d9a_main_powerConsumptionReport_powerConsumption_powerEnergy_meter',
'unique_id': '01b28624-5907-c8bc-0325-8ad23f03a637_main_powerConsumptionReport_powerConsumption_powerEnergy_meter',
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
})
# ---
@@ -10944,7 +10944,7 @@
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'energy',
'friendly_name': 'Robot vacuum Power energy',
'friendly_name': 'Robot Vacuum Power energy',
'state_class': <SensorStateClass.TOTAL: 'total'>,
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
}),
@@ -10995,7 +10995,7 @@
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'robot_cleaner_turbo_mode',
'unique_id': '05accb39-2017-c98b-a5ab-04a81f4d3d9a_main_robotCleanerTurboMode_robotCleanerTurboMode_robotCleanerTurboMode',
'unique_id': '01b28624-5907-c8bc-0325-8ad23f03a637_main_robotCleanerTurboMode_robotCleanerTurboMode_robotCleanerTurboMode',
'unit_of_measurement': None,
})
# ---
@@ -11003,7 +11003,7 @@
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'enum',
'friendly_name': 'Robot vacuum Turbo mode',
'friendly_name': 'Robot Vacuum Turbo mode',
'options': list([
'on',
'off',
@@ -11016,7 +11016,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'extra_silence',
'state': 'off',
})
# ---
# name: test_all_entities[da_rvc_normal_000001][sensor.robot_vacuum_battery-entry]

View File

@@ -979,55 +979,6 @@
'state': 'off',
})
# ---
# name: test_all_entities[da_rvc_map_01011][switch.robot_vacuum-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.robot_vacuum',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': None,
'platform': 'smartthings',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': '05accb39-2017-c98b-a5ab-04a81f4d3d9a_main_switch_switch_switch',
'unit_of_measurement': None,
})
# ---
# name: test_all_entities[da_rvc_map_01011][switch.robot_vacuum-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Robot vacuum',
}),
'context': <ANY>,
'entity_id': 'switch.robot_vacuum',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'on',
})
# ---
# name: test_all_entities[da_rvc_map_01011][switch.robot_vacuum_do_not_disturb-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
@@ -1060,21 +1011,21 @@
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'do_not_disturb',
'unique_id': '05accb39-2017-c98b-a5ab-04a81f4d3d9a_main_custom.doNotDisturbMode_doNotDisturb_doNotDisturb',
'unique_id': '01b28624-5907-c8bc-0325-8ad23f03a637_main_custom.doNotDisturbMode_doNotDisturb_doNotDisturb',
'unit_of_measurement': None,
})
# ---
# name: test_all_entities[da_rvc_map_01011][switch.robot_vacuum_do_not_disturb-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Robot vacuum Do not disturb',
'friendly_name': 'Robot Vacuum Do not disturb',
}),
'context': <ANY>,
'entity_id': 'switch.robot_vacuum_do_not_disturb',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'off',
'state': 'on',
})
# ---
# name: test_all_entities[da_rvc_normal_000001][switch.robot_vacuum-entry]

View File

@@ -31,14 +31,14 @@
'suggested_object_id': None,
'supported_features': <VacuumEntityFeature: 12308>,
'translation_key': None,
'unique_id': '05accb39-2017-c98b-a5ab-04a81f4d3d9a_main',
'unique_id': '01b28624-5907-c8bc-0325-8ad23f03a637_main',
'unit_of_measurement': None,
})
# ---
# name: test_all_entities[da_rvc_map_01011][vacuum.robot_vacuum-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Robot vacuum',
'friendly_name': 'Robot Vacuum',
'supported_features': <VacuumEntityFeature: 12308>,
}),
'context': <ANY>,

View File

@@ -68,7 +68,7 @@ async def test_vacuum_actions(
blocking=True,
)
devices.execute_device_command.assert_called_once_with(
"05accb39-2017-c98b-a5ab-04a81f4d3d9a",
"01b28624-5907-c8bc-0325-8ad23f03a637",
Capability.SAMSUNG_CE_ROBOT_CLEANER_OPERATING_STATE,
command,
MAIN,
@@ -89,7 +89,7 @@ async def test_state_update(
await trigger_update(
hass,
devices,
"05accb39-2017-c98b-a5ab-04a81f4d3d9a",
"01b28624-5907-c8bc-0325-8ad23f03a637",
Capability.SAMSUNG_CE_ROBOT_CLEANER_OPERATING_STATE,
Attribute.OPERATING_STATE,
"error",
@@ -110,13 +110,13 @@ async def test_availability(
assert hass.states.get("vacuum.robot_vacuum").state == VacuumActivity.DOCKED
await trigger_health_update(
hass, devices, "05accb39-2017-c98b-a5ab-04a81f4d3d9a", HealthStatus.OFFLINE
hass, devices, "01b28624-5907-c8bc-0325-8ad23f03a637", HealthStatus.OFFLINE
)
assert hass.states.get("vacuum.robot_vacuum").state == STATE_UNAVAILABLE
await trigger_health_update(
hass, devices, "05accb39-2017-c98b-a5ab-04a81f4d3d9a", HealthStatus.ONLINE
hass, devices, "01b28624-5907-c8bc-0325-8ad23f03a637", HealthStatus.ONLINE
)
assert hass.states.get("vacuum.robot_vacuum").state == VacuumActivity.DOCKED