Add valve position capability to SmartThings (#144923)

* Add another EHS SmartThings fixture

* Add another EHS

* Add valve position capability to SmartThings

* Fix

* Fix
This commit is contained in:
Joost Lekkerkerker 2025-05-22 08:25:41 +02:00 committed by GitHub
parent 66a6e55310
commit 4c6e854cad
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 194 additions and 0 deletions

View File

@ -74,6 +74,12 @@
"finished": "mdi:food-turkey" "finished": "mdi:food-turkey"
} }
}, },
"diverter_valve_position": {
"state": {
"room": "mdi:sofa",
"tank": "mdi:water-boiler"
}
},
"manual_level": { "manual_level": {
"default": "mdi:radiator", "default": "mdi:radiator",
"state": { "state": {

View File

@ -433,6 +433,16 @@ CAPABILITY_TO_SENSORS: dict[
) )
], ],
}, },
Capability.SAMSUNG_CE_EHS_DIVERTER_VALVE: {
Attribute.POSITION: [
SmartThingsSensorEntityDescription(
key=Attribute.POSITION,
translation_key="diverter_valve_position",
device_class=SensorDeviceClass.ENUM,
options=["room", "tank"],
)
]
},
Capability.ENERGY_METER: { Capability.ENERGY_METER: {
Attribute.ENERGY: [ Attribute.ENERGY: [
SmartThingsSensorEntityDescription( SmartThingsSensorEntityDescription(

View File

@ -284,6 +284,13 @@
"completion_time": { "completion_time": {
"name": "Completion time" "name": "Completion time"
}, },
"diverter_valve_position": {
"name": "Valve position",
"state": {
"room": "Room",
"tank": "Tank"
}
},
"dryer_mode": { "dryer_mode": {
"name": "Dryer mode" "name": "Dryer mode"
}, },

View File

@ -5945,6 +5945,63 @@
'state': '1.08249458332857e-05', 'state': '1.08249458332857e-05',
}) })
# --- # ---
# name: test_all_entities[da_sac_ehs_000001_sub][sensor.eco_heating_system_valve_position-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'options': list([
'room',
'tank',
]),
}),
'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.eco_heating_system_valve_position',
'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': 'Valve position',
'platform': 'smartthings',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'diverter_valve_position',
'unique_id': '1f98ebd0-ac48-d802-7f62-000001200100_main_samsungce.ehsDiverterValve_position_position',
'unit_of_measurement': None,
})
# ---
# name: test_all_entities[da_sac_ehs_000001_sub][sensor.eco_heating_system_valve_position-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'enum',
'friendly_name': 'Eco Heating System Valve position',
'options': list([
'room',
'tank',
]),
}),
'context': <ANY>,
'entity_id': 'sensor.eco_heating_system_valve_position',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'room',
})
# ---
# name: test_all_entities[da_sac_ehs_000001_sub_1][sensor.heat_pump_main_energy-entry] # name: test_all_entities[da_sac_ehs_000001_sub_1][sensor.heat_pump_main_energy-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({
@ -6222,6 +6279,63 @@
'state': '4.50185416638851e-06', 'state': '4.50185416638851e-06',
}) })
# --- # ---
# name: test_all_entities[da_sac_ehs_000001_sub_1][sensor.heat_pump_main_valve_position-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'options': list([
'room',
'tank',
]),
}),
'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.heat_pump_main_valve_position',
'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': 'Valve position',
'platform': 'smartthings',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'diverter_valve_position',
'unique_id': '6a7d5349-0a66-0277-058d-000001200101_main_samsungce.ehsDiverterValve_position_position',
'unit_of_measurement': None,
})
# ---
# name: test_all_entities[da_sac_ehs_000001_sub_1][sensor.heat_pump_main_valve_position-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'enum',
'friendly_name': 'Heat Pump Main Valve position',
'options': list([
'room',
'tank',
]),
}),
'context': <ANY>,
'entity_id': 'sensor.heat_pump_main_valve_position',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'room',
})
# ---
# name: test_all_entities[da_sac_ehs_000002_sub][sensor.warmepumpe_energy-entry] # name: test_all_entities[da_sac_ehs_000002_sub][sensor.warmepumpe_energy-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({
@ -6499,6 +6613,63 @@
'state': '0.000222076093320449', 'state': '0.000222076093320449',
}) })
# --- # ---
# name: test_all_entities[da_sac_ehs_000002_sub][sensor.warmepumpe_valve_position-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'options': list([
'room',
'tank',
]),
}),
'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.warmepumpe_valve_position',
'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': 'Valve position',
'platform': 'smartthings',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'diverter_valve_position',
'unique_id': '3810e5ad-5351-d9f9-12ff-000001200000_main_samsungce.ehsDiverterValve_position_position',
'unit_of_measurement': None,
})
# ---
# name: test_all_entities[da_sac_ehs_000002_sub][sensor.warmepumpe_valve_position-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'enum',
'friendly_name': 'Wärmepumpe Valve position',
'options': list([
'room',
'tank',
]),
}),
'context': <ANY>,
'entity_id': 'sensor.warmepumpe_valve_position',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'room',
})
# ---
# name: test_all_entities[da_wm_dw_000001][sensor.dishwasher_completion_time-entry] # name: test_all_entities[da_wm_dw_000001][sensor.dishwasher_completion_time-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({