Fix SmartThings being able to understand incomplete DRLC (#141907)

This commit is contained in:
Joost Lekkerkerker 2025-03-31 12:20:06 +02:00 committed by Franck Nijhof
parent e16ba27ce8
commit f2ccd46267
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
7 changed files with 1379 additions and 6 deletions

View File

@ -466,12 +466,14 @@ class SmartThingsAirConditioner(SmartThingsEntity, ClimateEntity):
Capability.DEMAND_RESPONSE_LOAD_CONTROL,
Attribute.DEMAND_RESPONSE_LOAD_CONTROL_STATUS,
)
return {
"drlc_status_duration": drlc_status["duration"],
"drlc_status_level": drlc_status["drlcLevel"],
"drlc_status_start": drlc_status["start"],
"drlc_status_override": drlc_status["override"],
}
res = {}
for key in ("duration", "start", "override", "drlcLevel"):
if key in drlc_status:
dict_key = {"drlcLevel": "drlc_status_level"}.get(
key, f"drlc_status_{key}"
)
res[dict_key] = drlc_status[key]
return res
@property
def fan_mode(self) -> str:

View File

@ -93,6 +93,7 @@ def mock_smartthings() -> Generator[AsyncMock]:
params=[
"da_ac_airsensor_01001",
"da_ac_rac_000001",
"da_ac_rac_000003",
"da_ac_rac_100001",
"da_ac_rac_01001",
"multipurpose_sensor",

View File

@ -0,0 +1,585 @@
{
"components": {
"main": {
"relativeHumidityMeasurement": {
"humidity": {
"value": 48,
"unit": "%",
"timestamp": "2025-03-27T05:12:16.158Z"
}
},
"custom.airConditionerOdorController": {
"airConditionerOdorControllerProgress": {
"value": null
},
"airConditionerOdorControllerState": {
"value": null
}
},
"custom.thermostatSetpointControl": {
"minimumSetpoint": {
"value": 16,
"unit": "C",
"timestamp": "2025-03-13T09:29:37.008Z"
},
"maximumSetpoint": {
"value": 30,
"unit": "C",
"timestamp": "2024-06-21T13:45:16.785Z"
}
},
"airConditionerMode": {
"availableAcModes": {
"value": null
},
"supportedAcModes": {
"value": ["cool", "dry", "wind", "auto"],
"timestamp": "2024-06-21T13:45:16.785Z"
},
"airConditionerMode": {
"value": "cool",
"timestamp": "2025-03-13T09:29:36.789Z"
}
},
"custom.spiMode": {
"spiMode": {
"value": "off",
"timestamp": "2025-02-08T08:54:15.661Z"
}
},
"samsungce.deviceIdentification": {
"micomAssayCode": {
"value": null
},
"modelName": {
"value": null
},
"serialNumber": {
"value": null
},
"serialNumberExtra": {
"value": null
},
"modelClassificationCode": {
"value": null
},
"description": {
"value": null
},
"releaseYear": {
"value": null
},
"binaryId": {
"value": "ARTIK051_PRAC_20K",
"timestamp": "2025-03-27T05:12:15.284Z"
}
},
"airQualitySensor": {
"airQuality": {
"value": null
}
},
"custom.airConditionerOptionalMode": {
"supportedAcOptionalMode": {
"value": [
"off",
"sleep",
"quiet",
"smart",
"speed",
"windFree",
"windFreeSleep"
],
"timestamp": "2024-06-21T13:45:16.785Z"
},
"acOptionalMode": {
"value": "off",
"timestamp": "2025-03-26T12:20:41.095Z"
}
},
"switch": {
"switch": {
"value": "on",
"timestamp": "2025-03-27T05:41:42.291Z"
}
},
"custom.airConditionerTropicalNightMode": {
"acTropicalNightModeLevel": {
"value": 0,
"timestamp": "2025-02-08T08:54:15.789Z"
}
},
"ocf": {
"st": {
"value": null
},
"mndt": {
"value": null
},
"mnfv": {
"value": "ARTIK051_PRAC_20K_11230313",
"timestamp": "2024-06-21T13:58:04.085Z"
},
"mnhw": {
"value": "ARTIK051",
"timestamp": "2024-06-21T13:51:35.294Z"
},
"di": {
"value": "c76d6f38-1b7f-13dd-37b5-db18d5272783",
"timestamp": "2024-06-21T13:45:16.329Z"
},
"mnsl": {
"value": "http://www.samsung.com",
"timestamp": "2024-06-21T13:51:35.980Z"
},
"dmv": {
"value": "res.1.1.0,sh.1.1.0",
"timestamp": "2024-06-21T13:58:04.698Z"
},
"n": {
"value": "Samsung Room A/C",
"timestamp": "2024-06-21T13:58:04.085Z"
},
"mnmo": {
"value": "ARTIK051_PRAC_20K|10256941|60010534001411014600003200800000",
"timestamp": "2024-06-21T13:45:16.329Z"
},
"vid": {
"value": "DA-AC-RAC-000003",
"timestamp": "2024-06-21T13:45:16.329Z"
},
"mnmn": {
"value": "Samsung Electronics",
"timestamp": "2024-06-21T13:45:16.329Z"
},
"mnml": {
"value": "http://www.samsung.com",
"timestamp": "2024-06-21T13:45:16.329Z"
},
"mnpv": {
"value": "DAWIT 2.0",
"timestamp": "2024-06-21T13:51:35.294Z"
},
"mnos": {
"value": "TizenRT 1.0 + IPv6",
"timestamp": "2024-06-21T13:51:35.294Z"
},
"pi": {
"value": "c76d6f38-1b7f-13dd-37b5-db18d5272783",
"timestamp": "2024-06-21T13:45:16.329Z"
},
"icv": {
"value": "core.1.1.0",
"timestamp": "2024-06-21T13:45:16.329Z"
}
},
"airConditionerFanMode": {
"fanMode": {
"value": "low",
"timestamp": "2025-03-26T12:20:41.393Z"
},
"supportedAcFanModes": {
"value": ["auto", "low", "medium", "high", "turbo"],
"timestamp": "2024-06-21T13:45:16.785Z"
},
"availableAcFanModes": {
"value": null
}
},
"samsungce.dustFilterAlarm": {
"alarmThreshold": {
"value": 500,
"unit": "Hour",
"timestamp": "2025-02-08T08:54:15.473Z"
},
"supportedAlarmThresholds": {
"value": [180, 300, 500, 700],
"unit": "Hour",
"timestamp": "2025-02-08T08:54:15.473Z"
}
},
"custom.electricHepaFilter": {
"electricHepaFilterCapacity": {
"value": null
},
"electricHepaFilterUsageStep": {
"value": null
},
"electricHepaFilterLastResetDate": {
"value": null
},
"electricHepaFilterStatus": {
"value": null
},
"electricHepaFilterUsage": {
"value": null
},
"electricHepaFilterResetType": {
"value": null
}
},
"custom.disabledCapabilities": {
"disabledCapabilities": {
"value": [
"remoteControlStatus",
"airQualitySensor",
"dustSensor",
"odorSensor",
"veryFineDustSensor",
"custom.spiMode",
"custom.deodorFilter",
"custom.electricHepaFilter",
"custom.periodicSensing",
"custom.doNotDisturbMode",
"custom.airConditionerOdorController",
"samsungce.individualControlLock"
],
"timestamp": "2025-02-08T08:54:15.355Z"
}
},
"custom.ocfResourceVersion": {
"ocfResourceUpdatedTime": {
"value": null
},
"ocfResourceVersion": {
"value": null
}
},
"samsungce.driverVersion": {
"versionNumber": {
"value": 24040101,
"timestamp": "2024-06-21T13:45:16.348Z"
}
},
"fanOscillationMode": {
"supportedFanOscillationModes": {
"value": ["fixed", "all", "vertical", "horizontal"],
"timestamp": "2025-02-08T08:54:15.797Z"
},
"availableFanOscillationModes": {
"value": null
},
"fanOscillationMode": {
"value": "fixed",
"timestamp": "2025-02-25T15:40:11.773Z"
}
},
"temperatureMeasurement": {
"temperatureRange": {
"value": null
},
"temperature": {
"value": 26,
"unit": "C",
"timestamp": "2025-03-26T14:19:08.047Z"
}
},
"dustSensor": {
"dustLevel": {
"value": null
},
"fineDustLevel": {
"value": null
}
},
"custom.deviceReportStateConfiguration": {
"reportStateRealtimePeriod": {
"value": "disabled",
"timestamp": "2025-02-08T08:54:15.726Z"
},
"reportStateRealtime": {
"value": {
"state": "enabled",
"duration": 10,
"unit": "minute"
},
"timestamp": "2025-03-24T08:28:07.030Z"
},
"reportStatePeriod": {
"value": "enabled",
"timestamp": "2025-02-08T08:54:15.726Z"
}
},
"custom.periodicSensing": {
"automaticExecutionSetting": {
"value": null
},
"automaticExecutionMode": {
"value": null
},
"supportedAutomaticExecutionSetting": {
"value": null
},
"supportedAutomaticExecutionMode": {
"value": null
},
"periodicSensing": {
"value": null
},
"periodicSensingInterval": {
"value": null
},
"lastSensingTime": {
"value": null
},
"lastSensingLevel": {
"value": null
},
"periodicSensingStatus": {
"value": null
}
},
"thermostatCoolingSetpoint": {
"coolingSetpointRange": {
"value": null
},
"coolingSetpoint": {
"value": 24,
"unit": "C",
"timestamp": "2025-03-26T12:20:41.346Z"
}
},
"demandResponseLoadControl": {
"drlcStatus": {
"value": {
"drlcType": 1,
"duration": 0,
"override": false
},
"timestamp": "2025-03-24T04:56:36.855Z"
}
},
"audioVolume": {
"volume": {
"value": 100,
"unit": "%",
"timestamp": "2025-02-08T08:54:15.789Z"
}
},
"powerConsumptionReport": {
"powerConsumption": {
"value": {
"energy": 602171,
"deltaEnergy": 0,
"power": 0,
"powerEnergy": 0.0,
"persistedEnergy": 602171,
"energySaved": 0,
"persistedSavedEnergy": 0,
"start": "2025-03-27T05:29:22Z",
"end": "2025-03-27T05:40:02Z"
},
"timestamp": "2025-03-27T05:40:02.686Z"
}
},
"custom.autoCleaningMode": {
"supportedAutoCleaningModes": {
"value": null
},
"timedCleanDuration": {
"value": null
},
"operatingState": {
"value": null
},
"timedCleanDurationRange": {
"value": null
},
"supportedOperatingStates": {
"value": null
},
"progress": {
"value": null
},
"autoCleaningMode": {
"value": "off",
"timestamp": "2025-03-15T05:30:11.075Z"
}
},
"samsungce.individualControlLock": {
"lockState": {
"value": null
}
},
"refresh": {},
"execute": {
"data": {
"value": null
}
},
"samsungce.selfCheck": {
"result": {
"value": null
},
"supportedActions": {
"value": ["start"],
"timestamp": "2024-06-21T13:45:16.348Z"
},
"progress": {
"value": null
},
"errors": {
"value": [],
"timestamp": "2025-02-08T08:54:15.048Z"
},
"status": {
"value": null
}
},
"custom.dustFilter": {
"dustFilterUsageStep": {
"value": 1,
"timestamp": "2025-02-08T08:54:15.473Z"
},
"dustFilterUsage": {
"value": 69,
"timestamp": "2025-03-26T10:57:41.097Z"
},
"dustFilterLastResetDate": {
"value": null
},
"dustFilterStatus": {
"value": "normal",
"timestamp": "2025-02-08T08:54:15.473Z"
},
"dustFilterCapacity": {
"value": 500,
"unit": "Hour",
"timestamp": "2025-02-08T08:54:15.473Z"
},
"dustFilterResetType": {
"value": ["replaceable", "washable"],
"timestamp": "2025-02-08T08:54:15.473Z"
}
},
"odorSensor": {
"odorLevel": {
"value": null
}
},
"remoteControlStatus": {
"remoteControlEnabled": {
"value": null
}
},
"custom.deodorFilter": {
"deodorFilterCapacity": {
"value": null
},
"deodorFilterLastResetDate": {
"value": null
},
"deodorFilterStatus": {
"value": null
},
"deodorFilterResetType": {
"value": null
},
"deodorFilterUsage": {
"value": null
},
"deodorFilterUsageStep": {
"value": null
}
},
"custom.energyType": {
"energyType": {
"value": "1.0",
"timestamp": "2024-06-21T13:45:16.785Z"
},
"energySavingSupport": {
"value": true,
"timestamp": "2024-06-21T13:58:08.419Z"
},
"drMaxDuration": {
"value": 99999999,
"unit": "min",
"timestamp": "2024-06-21T13:51:39.304Z"
},
"energySavingLevel": {
"value": null
},
"energySavingInfo": {
"value": null
},
"supportedEnergySavingLevels": {
"value": null
},
"energySavingOperation": {
"value": false,
"timestamp": "2025-02-08T08:54:16.767Z"
},
"notificationTemplateID": {
"value": null
},
"energySavingOperationSupport": {
"value": false,
"timestamp": "2025-03-24T04:56:36.855Z"
}
},
"samsungce.softwareUpdate": {
"targetModule": {
"value": {},
"timestamp": "2025-02-08T08:54:16.685Z"
},
"otnDUID": {
"value": "MTCPH4AI4MTYO",
"timestamp": "2025-02-08T08:54:15.626Z"
},
"lastUpdatedDate": {
"value": null
},
"availableModules": {
"value": [],
"timestamp": "2025-02-08T08:54:15.626Z"
},
"newVersionAvailable": {
"value": false,
"timestamp": "2025-02-08T08:54:15.626Z"
},
"operatingState": {
"value": null
},
"progress": {
"value": null
}
},
"veryFineDustSensor": {
"veryFineDustLevel": {
"value": null
}
},
"custom.veryFineDustFilter": {
"veryFineDustFilterStatus": {
"value": null
},
"veryFineDustFilterResetType": {
"value": null
},
"veryFineDustFilterUsage": {
"value": null
},
"veryFineDustFilterLastResetDate": {
"value": null
},
"veryFineDustFilterUsageStep": {
"value": null
},
"veryFineDustFilterCapacity": {
"value": null
}
},
"custom.doNotDisturbMode": {
"doNotDisturb": {
"value": null
},
"startTime": {
"value": null
},
"endTime": {
"value": null
}
}
}
}
}

View File

@ -0,0 +1,217 @@
{
"items": [
{
"deviceId": "c76d6f38-1b7f-13dd-37b5-db18d5272783",
"name": "Samsung Room A/C",
"label": "Office AirFree",
"manufacturerName": "Samsung Electronics",
"presentationId": "DA-AC-RAC-000003",
"deviceManufacturerCode": "Samsung Electronics",
"locationId": "403cd42e-f692-416c-91fd-1883c00e3262",
"ownerId": "dd474e5c-59c0-4bea-a319-ff5287fd3373",
"roomId": "dffe353e-b3c5-4a97-8a8a-797ccc649fab",
"deviceTypeName": "Samsung OCF Air Conditioner",
"components": [
{
"id": "main",
"label": "main",
"capabilities": [
{
"id": "ocf",
"version": 1
},
{
"id": "switch",
"version": 1
},
{
"id": "airConditionerMode",
"version": 1
},
{
"id": "airConditionerFanMode",
"version": 1
},
{
"id": "fanOscillationMode",
"version": 1
},
{
"id": "temperatureMeasurement",
"version": 1
},
{
"id": "thermostatCoolingSetpoint",
"version": 1
},
{
"id": "relativeHumidityMeasurement",
"version": 1
},
{
"id": "airQualitySensor",
"version": 1
},
{
"id": "odorSensor",
"version": 1
},
{
"id": "dustSensor",
"version": 1
},
{
"id": "veryFineDustSensor",
"version": 1
},
{
"id": "audioVolume",
"version": 1
},
{
"id": "remoteControlStatus",
"version": 1
},
{
"id": "powerConsumptionReport",
"version": 1
},
{
"id": "demandResponseLoadControl",
"version": 1
},
{
"id": "refresh",
"version": 1
},
{
"id": "execute",
"version": 1
},
{
"id": "custom.spiMode",
"version": 1
},
{
"id": "custom.thermostatSetpointControl",
"version": 1
},
{
"id": "custom.airConditionerOptionalMode",
"version": 1
},
{
"id": "custom.airConditionerTropicalNightMode",
"version": 1
},
{
"id": "custom.autoCleaningMode",
"version": 1
},
{
"id": "custom.deviceReportStateConfiguration",
"version": 1
},
{
"id": "custom.energyType",
"version": 1
},
{
"id": "custom.dustFilter",
"version": 1
},
{
"id": "custom.veryFineDustFilter",
"version": 1
},
{
"id": "custom.deodorFilter",
"version": 1
},
{
"id": "custom.electricHepaFilter",
"version": 1
},
{
"id": "custom.doNotDisturbMode",
"version": 1
},
{
"id": "custom.periodicSensing",
"version": 1
},
{
"id": "custom.airConditionerOdorController",
"version": 1
},
{
"id": "custom.ocfResourceVersion",
"version": 1
},
{
"id": "custom.disabledCapabilities",
"version": 1
},
{
"id": "samsungce.deviceIdentification",
"version": 1
},
{
"id": "samsungce.dustFilterAlarm",
"version": 1
},
{
"id": "samsungce.driverVersion",
"version": 1
},
{
"id": "samsungce.softwareUpdate",
"version": 1
},
{
"id": "samsungce.selfCheck",
"version": 1
},
{
"id": "samsungce.individualControlLock",
"version": 1
}
],
"categories": [
{
"name": "AirConditioner",
"categoryType": "manufacturer"
}
]
}
],
"createTime": "2024-06-21T13:45:16.238Z",
"profile": {
"id": "cedae6e3-1ec9-37e3-9aba-f717518156b8"
},
"ocf": {
"ocfDeviceType": "oic.d.airconditioner",
"name": "Samsung Room A/C",
"specVersion": "core.1.1.0",
"verticalDomainSpecVersion": "1.2.1",
"manufacturerName": "Samsung Electronics",
"modelNumber": "ARTIK051_PRAC_20K|10256941|60010534001411014600003200800000",
"platformVersion": "DAWIT 2.0",
"platformOS": "TizenRT 1.0 + IPv6",
"hwVersion": "ARTIK051",
"firmwareVersion": "ARTIK051_PRAC_20K_11230313",
"vendorId": "DA-AC-RAC-000003",
"vendorResourceClientServerVersion": "ARTIK051 Release 2.211222.1",
"lastSignupTime": "2024-06-21T13:45:08.592221Z",
"transferCandidate": false,
"additionalAuthCodeRequired": false
},
"type": "OCF",
"restrictionTier": 0,
"allowed": null,
"executionContext": "CLOUD",
"relationships": []
}
],
"_links": {}
}

View File

@ -228,6 +228,112 @@
'state': 'off',
})
# ---
# name: test_all_entities[da_ac_rac_000003][climate.office_airfree-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'fan_modes': list([
'auto',
'low',
'medium',
'high',
'turbo',
]),
'hvac_modes': list([
<HVACMode.OFF: 'off'>,
<HVACMode.COOL: 'cool'>,
<HVACMode.DRY: 'dry'>,
<HVACMode.FAN_ONLY: 'fan_only'>,
<HVACMode.HEAT_COOL: 'heat_cool'>,
]),
'max_temp': 35,
'min_temp': 7,
'preset_modes': list([
'windFree',
]),
'swing_modes': list([
'off',
'both',
'vertical',
'horizontal',
]),
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'climate',
'entity_category': None,
'entity_id': 'climate.office_airfree',
'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': None,
'platform': 'smartthings',
'previous_unique_id': None,
'supported_features': <ClimateEntityFeature: 441>,
'translation_key': None,
'unique_id': 'c76d6f38-1b7f-13dd-37b5-db18d5272783_main',
'unit_of_measurement': None,
})
# ---
# name: test_all_entities[da_ac_rac_000003][climate.office_airfree-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'current_temperature': 26,
'drlc_status_duration': 0,
'drlc_status_override': False,
'fan_mode': 'low',
'fan_modes': list([
'auto',
'low',
'medium',
'high',
'turbo',
]),
'friendly_name': 'Office AirFree',
'hvac_modes': list([
<HVACMode.OFF: 'off'>,
<HVACMode.COOL: 'cool'>,
<HVACMode.DRY: 'dry'>,
<HVACMode.FAN_ONLY: 'fan_only'>,
<HVACMode.HEAT_COOL: 'heat_cool'>,
]),
'max_temp': 35,
'min_temp': 7,
'preset_mode': None,
'preset_modes': list([
'windFree',
]),
'supported_features': <ClimateEntityFeature: 441>,
'swing_mode': 'off',
'swing_modes': list([
'off',
'both',
'vertical',
'horizontal',
]),
'temperature': 24,
}),
'context': <ANY>,
'entity_id': 'climate.office_airfree',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'cool',
})
# ---
# name: test_all_entities[da_ac_rac_01001][climate.aire_dormitorio_principal-entry]
EntityRegistryEntrySnapshot({
'aliases': set({

View File

@ -365,6 +365,39 @@
'via_device_id': None,
})
# ---
# name: test_devices[da_ac_rac_000003]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'config_entries_subentries': <ANY>,
'configuration_url': 'https://account.smartthings.com',
'connections': set({
}),
'disabled_by': None,
'entry_type': None,
'hw_version': 'ARTIK051',
'id': <ANY>,
'identifiers': set({
tuple(
'smartthings',
'c76d6f38-1b7f-13dd-37b5-db18d5272783',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'Samsung Electronics',
'model': 'ARTIK051_PRAC_20K',
'model_id': None,
'name': 'Office AirFree',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': 'ARTIK051_PRAC_20K_11230313',
'via_device_id': None,
})
# ---
# name: test_devices[da_ac_rac_01001]
DeviceRegistryEntrySnapshot({
'area_id': 'theater',

View File

@ -1513,6 +1513,435 @@
'state': '100',
})
# ---
# name: test_all_entities[da_ac_rac_000003][sensor.office_airfree_energy-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
}),
'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.office_airfree_energy',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
}),
}),
'original_device_class': <SensorDeviceClass.ENERGY: 'energy'>,
'original_icon': None,
'original_name': 'Energy',
'platform': 'smartthings',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'c76d6f38-1b7f-13dd-37b5-db18d5272783_main_powerConsumptionReport_powerConsumption_energy_meter',
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
})
# ---
# name: test_all_entities[da_ac_rac_000003][sensor.office_airfree_energy-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'energy',
'friendly_name': 'Office AirFree Energy',
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
}),
'context': <ANY>,
'entity_id': 'sensor.office_airfree_energy',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '602.171',
})
# ---
# name: test_all_entities[da_ac_rac_000003][sensor.office_airfree_energy_difference-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.TOTAL: 'total'>,
}),
'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.office_airfree_energy_difference',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
}),
}),
'original_device_class': <SensorDeviceClass.ENERGY: 'energy'>,
'original_icon': None,
'original_name': 'Energy difference',
'platform': 'smartthings',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'energy_difference',
'unique_id': 'c76d6f38-1b7f-13dd-37b5-db18d5272783_main_powerConsumptionReport_powerConsumption_deltaEnergy_meter',
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
})
# ---
# name: test_all_entities[da_ac_rac_000003][sensor.office_airfree_energy_difference-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'energy',
'friendly_name': 'Office AirFree Energy difference',
'state_class': <SensorStateClass.TOTAL: 'total'>,
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
}),
'context': <ANY>,
'entity_id': 'sensor.office_airfree_energy_difference',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.0',
})
# ---
# name: test_all_entities[da_ac_rac_000003][sensor.office_airfree_energy_saved-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
}),
'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.office_airfree_energy_saved',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
}),
}),
'original_device_class': <SensorDeviceClass.ENERGY: 'energy'>,
'original_icon': None,
'original_name': 'Energy saved',
'platform': 'smartthings',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'energy_saved',
'unique_id': 'c76d6f38-1b7f-13dd-37b5-db18d5272783_main_powerConsumptionReport_powerConsumption_energySaved_meter',
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
})
# ---
# name: test_all_entities[da_ac_rac_000003][sensor.office_airfree_energy_saved-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'energy',
'friendly_name': 'Office AirFree Energy saved',
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
}),
'context': <ANY>,
'entity_id': 'sensor.office_airfree_energy_saved',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.0',
})
# ---
# name: test_all_entities[da_ac_rac_000003][sensor.office_airfree_humidity-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'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.office_airfree_humidity',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.HUMIDITY: 'humidity'>,
'original_icon': None,
'original_name': 'Humidity',
'platform': 'smartthings',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'c76d6f38-1b7f-13dd-37b5-db18d5272783_main_relativeHumidityMeasurement_humidity_humidity',
'unit_of_measurement': '%',
})
# ---
# name: test_all_entities[da_ac_rac_000003][sensor.office_airfree_humidity-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'humidity',
'friendly_name': 'Office AirFree Humidity',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': '%',
}),
'context': <ANY>,
'entity_id': 'sensor.office_airfree_humidity',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '48',
})
# ---
# name: test_all_entities[da_ac_rac_000003][sensor.office_airfree_power-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'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.office_airfree_power',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
}),
}),
'original_device_class': <SensorDeviceClass.POWER: 'power'>,
'original_icon': None,
'original_name': 'Power',
'platform': 'smartthings',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'c76d6f38-1b7f-13dd-37b5-db18d5272783_main_powerConsumptionReport_powerConsumption_power_meter',
'unit_of_measurement': <UnitOfPower.WATT: 'W'>,
})
# ---
# name: test_all_entities[da_ac_rac_000003][sensor.office_airfree_power-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'power',
'friendly_name': 'Office AirFree Power',
'power_consumption_end': '2025-03-27T05:40:02Z',
'power_consumption_start': '2025-03-27T05:29:22Z',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfPower.WATT: 'W'>,
}),
'context': <ANY>,
'entity_id': 'sensor.office_airfree_power',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0',
})
# ---
# name: test_all_entities[da_ac_rac_000003][sensor.office_airfree_power_energy-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
}),
'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.office_airfree_power_energy',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
}),
}),
'original_device_class': <SensorDeviceClass.ENERGY: 'energy'>,
'original_icon': None,
'original_name': 'Power energy',
'platform': 'smartthings',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'power_energy',
'unique_id': 'c76d6f38-1b7f-13dd-37b5-db18d5272783_main_powerConsumptionReport_powerConsumption_powerEnergy_meter',
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
})
# ---
# name: test_all_entities[da_ac_rac_000003][sensor.office_airfree_power_energy-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'energy',
'friendly_name': 'Office AirFree Power energy',
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
}),
'context': <ANY>,
'entity_id': 'sensor.office_airfree_power_energy',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.0',
})
# ---
# name: test_all_entities[da_ac_rac_000003][sensor.office_airfree_temperature-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'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.office_airfree_temperature',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TEMPERATURE: 'temperature'>,
'original_icon': None,
'original_name': 'Temperature',
'platform': 'smartthings',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'c76d6f38-1b7f-13dd-37b5-db18d5272783_main_temperatureMeasurement_temperature_temperature',
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
})
# ---
# name: test_all_entities[da_ac_rac_000003][sensor.office_airfree_temperature-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'temperature',
'friendly_name': 'Office AirFree Temperature',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
}),
'context': <ANY>,
'entity_id': 'sensor.office_airfree_temperature',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '26',
})
# ---
# name: test_all_entities[da_ac_rac_000003][sensor.office_airfree_volume-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': 'sensor',
'entity_category': None,
'entity_id': 'sensor.office_airfree_volume',
'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': 'Volume',
'platform': 'smartthings',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'audio_volume',
'unique_id': 'c76d6f38-1b7f-13dd-37b5-db18d5272783_main_audioVolume_volume_volume',
'unit_of_measurement': '%',
})
# ---
# name: test_all_entities[da_ac_rac_000003][sensor.office_airfree_volume-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Office AirFree Volume',
'unit_of_measurement': '%',
}),
'context': <ANY>,
'entity_id': 'sensor.office_airfree_volume',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '100',
})
# ---
# name: test_all_entities[da_ac_rac_01001][sensor.aire_dormitorio_principal_energy-entry]
EntityRegistryEntrySnapshot({
'aliases': set({