mirror of
https://github.com/home-assistant/core.git
synced 2025-11-09 02:49:40 +00:00
* Reapply "Add support for subentries to config entries" (#133470) (#136061)
* Reapply "Add support for subentries to config entries" (#133470)
This reverts commit ecb3bf79f3.
* Update test snapshot
* Add config subentry support to device registry (#128157)
* Add config subentry support to device registry
* Apply suggestions from code review
* Update syrupy serializer
* Update snapshots
* Address review comments
* Allow a device to be connected to no or a single subentry of a config entry
* Update snapshots
* Revert "Allow a device to be connected to no or a single subentry of a config entry"
This reverts commit ec6f613151cb4a806b7961033c004b71b76510c2.
* Update test snapshots
* Bump release version in comments
* Rename config_subentries to config_entries_subentries
* Add config subentry support to entity registry (#128155)
* Add config subentry support to entity registry
* Update syrupy serializer
* Update snapshots
* Update snapshots
* Accept suggested changes
* Clean registries when removing subentry (#136671)
* Clean up registries when removing subentry
* Update tests
* Clean up subentries from deleted devices when removing config entry (#136669)
* Clean up subentries from deleted devices when removing config entry
* Move
* Add config subentry support to entity platform (#128161)
* Add config subentry support to entity platform
* Rename subentry_id to config_subentry_id
* Store subentry type in subentry (#136687)
* Add reconfigure support to config subentries (#133353)
* Add reconfigure support to config subentries
* Update test
* Minor adjustment
* Rename supported_subentry_flows to supported_subentry_types
* Address review comments
* Add subentry support to kitchen sink (#136755)
* Add subentry support to kitchen sink
* Add subentry reconfigure support to kitchen_sink
* Update kitchen_sink tests with subentry type stored in config entry
* Update kitchen_sink
* Update kitchen_sink
* Adjust kitchen sink tests
* Fix hassfest
* Apply suggestions from code review
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Improve docstrings and strings.json
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update snapshots
* Update snapshots
* Update snapshots
* Update snapshots
* Update snapshots
* Update snapshots
* Update snapshots
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
553 lines
14 KiB
Plaintext
553 lines
14 KiB
Plaintext
# serializer version: 1
|
|
# name: test_climate_device_with_cooling_support[sensor_payload0][climate.zen_01-entry]
|
|
EntityRegistryEntrySnapshot({
|
|
'aliases': set({
|
|
}),
|
|
'area_id': None,
|
|
'capabilities': dict({
|
|
'fan_modes': list([
|
|
'smart',
|
|
'auto',
|
|
'high',
|
|
'medium',
|
|
'low',
|
|
'on',
|
|
'off',
|
|
]),
|
|
'hvac_modes': list([
|
|
<HVACMode.HEAT: 'heat'>,
|
|
<HVACMode.OFF: 'off'>,
|
|
<HVACMode.AUTO: 'auto'>,
|
|
<HVACMode.COOL: 'cool'>,
|
|
]),
|
|
'max_temp': 35,
|
|
'min_temp': 7,
|
|
}),
|
|
'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.zen_01',
|
|
'has_entity_name': False,
|
|
'hidden_by': None,
|
|
'icon': None,
|
|
'id': <ANY>,
|
|
'labels': set({
|
|
}),
|
|
'name': None,
|
|
'options': dict({
|
|
}),
|
|
'original_device_class': None,
|
|
'original_icon': None,
|
|
'original_name': 'Zen-01',
|
|
'platform': 'deconz',
|
|
'previous_unique_id': None,
|
|
'supported_features': <ClimateEntityFeature: 393>,
|
|
'translation_key': None,
|
|
'unique_id': '00:24:46:00:00:11:6f:56-01-0201',
|
|
'unit_of_measurement': None,
|
|
})
|
|
# ---
|
|
# name: test_climate_device_with_cooling_support[sensor_payload0][climate.zen_01-state]
|
|
StateSnapshot({
|
|
'attributes': ReadOnlyDict({
|
|
'current_temperature': 23.2,
|
|
'fan_mode': 'off',
|
|
'fan_modes': list([
|
|
'smart',
|
|
'auto',
|
|
'high',
|
|
'medium',
|
|
'low',
|
|
'on',
|
|
'off',
|
|
]),
|
|
'friendly_name': 'Zen-01',
|
|
'hvac_action': <HVACAction.IDLE: 'idle'>,
|
|
'hvac_modes': list([
|
|
<HVACMode.HEAT: 'heat'>,
|
|
<HVACMode.OFF: 'off'>,
|
|
<HVACMode.AUTO: 'auto'>,
|
|
<HVACMode.COOL: 'cool'>,
|
|
]),
|
|
'max_temp': 35,
|
|
'min_temp': 7,
|
|
'offset': 0,
|
|
'supported_features': <ClimateEntityFeature: 393>,
|
|
'temperature': 22.2,
|
|
}),
|
|
'context': <ANY>,
|
|
'entity_id': 'climate.zen_01',
|
|
'last_changed': <ANY>,
|
|
'last_reported': <ANY>,
|
|
'last_updated': <ANY>,
|
|
'state': 'heat',
|
|
})
|
|
# ---
|
|
# name: test_climate_device_with_fan_support[sensor_payload0][climate.zen_01-entry]
|
|
EntityRegistryEntrySnapshot({
|
|
'aliases': set({
|
|
}),
|
|
'area_id': None,
|
|
'capabilities': dict({
|
|
'fan_modes': list([
|
|
'smart',
|
|
'auto',
|
|
'high',
|
|
'medium',
|
|
'low',
|
|
'on',
|
|
'off',
|
|
]),
|
|
'hvac_modes': list([
|
|
<HVACMode.HEAT: 'heat'>,
|
|
<HVACMode.OFF: 'off'>,
|
|
<HVACMode.AUTO: 'auto'>,
|
|
<HVACMode.COOL: 'cool'>,
|
|
]),
|
|
'max_temp': 35,
|
|
'min_temp': 7,
|
|
}),
|
|
'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.zen_01',
|
|
'has_entity_name': False,
|
|
'hidden_by': None,
|
|
'icon': None,
|
|
'id': <ANY>,
|
|
'labels': set({
|
|
}),
|
|
'name': None,
|
|
'options': dict({
|
|
}),
|
|
'original_device_class': None,
|
|
'original_icon': None,
|
|
'original_name': 'Zen-01',
|
|
'platform': 'deconz',
|
|
'previous_unique_id': None,
|
|
'supported_features': <ClimateEntityFeature: 393>,
|
|
'translation_key': None,
|
|
'unique_id': '00:24:46:00:00:11:6f:56-01-0201',
|
|
'unit_of_measurement': None,
|
|
})
|
|
# ---
|
|
# name: test_climate_device_with_fan_support[sensor_payload0][climate.zen_01-state]
|
|
StateSnapshot({
|
|
'attributes': ReadOnlyDict({
|
|
'current_temperature': 23.2,
|
|
'fan_mode': 'auto',
|
|
'fan_modes': list([
|
|
'smart',
|
|
'auto',
|
|
'high',
|
|
'medium',
|
|
'low',
|
|
'on',
|
|
'off',
|
|
]),
|
|
'friendly_name': 'Zen-01',
|
|
'hvac_action': <HVACAction.IDLE: 'idle'>,
|
|
'hvac_modes': list([
|
|
<HVACMode.HEAT: 'heat'>,
|
|
<HVACMode.OFF: 'off'>,
|
|
<HVACMode.AUTO: 'auto'>,
|
|
<HVACMode.COOL: 'cool'>,
|
|
]),
|
|
'max_temp': 35,
|
|
'min_temp': 7,
|
|
'offset': 0,
|
|
'supported_features': <ClimateEntityFeature: 393>,
|
|
'temperature': 22.2,
|
|
}),
|
|
'context': <ANY>,
|
|
'entity_id': 'climate.zen_01',
|
|
'last_changed': <ANY>,
|
|
'last_reported': <ANY>,
|
|
'last_updated': <ANY>,
|
|
'state': 'heat',
|
|
})
|
|
# ---
|
|
# name: test_climate_device_with_preset[sensor_payload0][climate.zen_01-entry]
|
|
EntityRegistryEntrySnapshot({
|
|
'aliases': set({
|
|
}),
|
|
'area_id': None,
|
|
'capabilities': dict({
|
|
'fan_modes': list([
|
|
'smart',
|
|
'auto',
|
|
'high',
|
|
'medium',
|
|
'low',
|
|
'on',
|
|
'off',
|
|
]),
|
|
'hvac_modes': list([
|
|
<HVACMode.HEAT: 'heat'>,
|
|
<HVACMode.OFF: 'off'>,
|
|
<HVACMode.AUTO: 'auto'>,
|
|
<HVACMode.COOL: 'cool'>,
|
|
]),
|
|
'max_temp': 35,
|
|
'min_temp': 7,
|
|
'preset_modes': list([
|
|
'auto',
|
|
'boost',
|
|
'comfort',
|
|
'complex',
|
|
'eco',
|
|
'holiday',
|
|
'manual',
|
|
]),
|
|
}),
|
|
'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.zen_01',
|
|
'has_entity_name': False,
|
|
'hidden_by': None,
|
|
'icon': None,
|
|
'id': <ANY>,
|
|
'labels': set({
|
|
}),
|
|
'name': None,
|
|
'options': dict({
|
|
}),
|
|
'original_device_class': None,
|
|
'original_icon': None,
|
|
'original_name': 'Zen-01',
|
|
'platform': 'deconz',
|
|
'previous_unique_id': None,
|
|
'supported_features': <ClimateEntityFeature: 409>,
|
|
'translation_key': None,
|
|
'unique_id': '00:24:46:00:00:11:6f:56-01-0201',
|
|
'unit_of_measurement': None,
|
|
})
|
|
# ---
|
|
# name: test_climate_device_with_preset[sensor_payload0][climate.zen_01-state]
|
|
StateSnapshot({
|
|
'attributes': ReadOnlyDict({
|
|
'current_temperature': 23.2,
|
|
'fan_mode': 'off',
|
|
'fan_modes': list([
|
|
'smart',
|
|
'auto',
|
|
'high',
|
|
'medium',
|
|
'low',
|
|
'on',
|
|
'off',
|
|
]),
|
|
'friendly_name': 'Zen-01',
|
|
'hvac_action': <HVACAction.IDLE: 'idle'>,
|
|
'hvac_modes': list([
|
|
<HVACMode.HEAT: 'heat'>,
|
|
<HVACMode.OFF: 'off'>,
|
|
<HVACMode.AUTO: 'auto'>,
|
|
<HVACMode.COOL: 'cool'>,
|
|
]),
|
|
'max_temp': 35,
|
|
'min_temp': 7,
|
|
'offset': 0,
|
|
'preset_mode': 'auto',
|
|
'preset_modes': list([
|
|
'auto',
|
|
'boost',
|
|
'comfort',
|
|
'complex',
|
|
'eco',
|
|
'holiday',
|
|
'manual',
|
|
]),
|
|
'supported_features': <ClimateEntityFeature: 409>,
|
|
'temperature': 22.2,
|
|
}),
|
|
'context': <ANY>,
|
|
'entity_id': 'climate.zen_01',
|
|
'last_changed': <ANY>,
|
|
'last_reported': <ANY>,
|
|
'last_updated': <ANY>,
|
|
'state': 'heat',
|
|
})
|
|
# ---
|
|
# name: test_climate_device_without_cooling_support[sensor_payload0][climate.thermostat-entry]
|
|
EntityRegistryEntrySnapshot({
|
|
'aliases': set({
|
|
}),
|
|
'area_id': None,
|
|
'capabilities': dict({
|
|
'hvac_modes': list([
|
|
<HVACMode.HEAT: 'heat'>,
|
|
<HVACMode.OFF: 'off'>,
|
|
<HVACMode.AUTO: 'auto'>,
|
|
]),
|
|
'max_temp': 35,
|
|
'min_temp': 7,
|
|
}),
|
|
'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.thermostat',
|
|
'has_entity_name': False,
|
|
'hidden_by': None,
|
|
'icon': None,
|
|
'id': <ANY>,
|
|
'labels': set({
|
|
}),
|
|
'name': None,
|
|
'options': dict({
|
|
}),
|
|
'original_device_class': None,
|
|
'original_icon': None,
|
|
'original_name': 'Thermostat',
|
|
'platform': 'deconz',
|
|
'previous_unique_id': None,
|
|
'supported_features': <ClimateEntityFeature: 385>,
|
|
'translation_key': None,
|
|
'unique_id': '00:00:00:00:00:00:00:00-00',
|
|
'unit_of_measurement': None,
|
|
})
|
|
# ---
|
|
# name: test_climate_device_without_cooling_support[sensor_payload0][climate.thermostat-state]
|
|
StateSnapshot({
|
|
'attributes': ReadOnlyDict({
|
|
'current_temperature': 22.6,
|
|
'friendly_name': 'Thermostat',
|
|
'hvac_action': <HVACAction.HEATING: 'heating'>,
|
|
'hvac_modes': list([
|
|
<HVACMode.HEAT: 'heat'>,
|
|
<HVACMode.OFF: 'off'>,
|
|
<HVACMode.AUTO: 'auto'>,
|
|
]),
|
|
'max_temp': 35,
|
|
'min_temp': 7,
|
|
'offset': 10,
|
|
'supported_features': <ClimateEntityFeature: 385>,
|
|
'temperature': 22.0,
|
|
'valve': 30,
|
|
}),
|
|
'context': <ANY>,
|
|
'entity_id': 'climate.thermostat',
|
|
'last_changed': <ANY>,
|
|
'last_reported': <ANY>,
|
|
'last_updated': <ANY>,
|
|
'state': 'auto',
|
|
})
|
|
# ---
|
|
# name: test_clip_climate_device[config_entry_options0-sensor_payload0][climate.clip_thermostat-entry]
|
|
EntityRegistryEntrySnapshot({
|
|
'aliases': set({
|
|
}),
|
|
'area_id': None,
|
|
'capabilities': dict({
|
|
'hvac_modes': list([
|
|
<HVACMode.HEAT: 'heat'>,
|
|
<HVACMode.OFF: 'off'>,
|
|
]),
|
|
'max_temp': 35,
|
|
'min_temp': 7,
|
|
}),
|
|
'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.clip_thermostat',
|
|
'has_entity_name': False,
|
|
'hidden_by': None,
|
|
'icon': None,
|
|
'id': <ANY>,
|
|
'labels': set({
|
|
}),
|
|
'name': None,
|
|
'options': dict({
|
|
}),
|
|
'original_device_class': None,
|
|
'original_icon': None,
|
|
'original_name': 'CLIP thermostat',
|
|
'platform': 'deconz',
|
|
'previous_unique_id': None,
|
|
'supported_features': <ClimateEntityFeature: 385>,
|
|
'translation_key': None,
|
|
'unique_id': '00:00:00:00:00:00:00:02-00',
|
|
'unit_of_measurement': None,
|
|
})
|
|
# ---
|
|
# name: test_clip_climate_device[config_entry_options0-sensor_payload0][climate.clip_thermostat-state]
|
|
StateSnapshot({
|
|
'attributes': ReadOnlyDict({
|
|
'current_temperature': 22.6,
|
|
'friendly_name': 'CLIP thermostat',
|
|
'hvac_action': <HVACAction.HEATING: 'heating'>,
|
|
'hvac_modes': list([
|
|
<HVACMode.HEAT: 'heat'>,
|
|
<HVACMode.OFF: 'off'>,
|
|
]),
|
|
'max_temp': 35,
|
|
'min_temp': 7,
|
|
'supported_features': <ClimateEntityFeature: 385>,
|
|
'temperature': None,
|
|
'valve': 30,
|
|
}),
|
|
'context': <ANY>,
|
|
'entity_id': 'climate.clip_thermostat',
|
|
'last_changed': <ANY>,
|
|
'last_reported': <ANY>,
|
|
'last_updated': <ANY>,
|
|
'state': 'heat',
|
|
})
|
|
# ---
|
|
# name: test_clip_climate_device[config_entry_options0-sensor_payload0][climate.thermostat-entry]
|
|
EntityRegistryEntrySnapshot({
|
|
'aliases': set({
|
|
}),
|
|
'area_id': None,
|
|
'capabilities': dict({
|
|
'hvac_modes': list([
|
|
<HVACMode.HEAT: 'heat'>,
|
|
<HVACMode.OFF: 'off'>,
|
|
<HVACMode.AUTO: 'auto'>,
|
|
]),
|
|
'max_temp': 35,
|
|
'min_temp': 7,
|
|
}),
|
|
'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.thermostat',
|
|
'has_entity_name': False,
|
|
'hidden_by': None,
|
|
'icon': None,
|
|
'id': <ANY>,
|
|
'labels': set({
|
|
}),
|
|
'name': None,
|
|
'options': dict({
|
|
}),
|
|
'original_device_class': None,
|
|
'original_icon': None,
|
|
'original_name': 'Thermostat',
|
|
'platform': 'deconz',
|
|
'previous_unique_id': None,
|
|
'supported_features': <ClimateEntityFeature: 385>,
|
|
'translation_key': None,
|
|
'unique_id': '00:00:00:00:00:00:00:00-00',
|
|
'unit_of_measurement': None,
|
|
})
|
|
# ---
|
|
# name: test_clip_climate_device[config_entry_options0-sensor_payload0][climate.thermostat-state]
|
|
StateSnapshot({
|
|
'attributes': ReadOnlyDict({
|
|
'current_temperature': 22.6,
|
|
'friendly_name': 'Thermostat',
|
|
'hvac_action': <HVACAction.HEATING: 'heating'>,
|
|
'hvac_modes': list([
|
|
<HVACMode.HEAT: 'heat'>,
|
|
<HVACMode.OFF: 'off'>,
|
|
<HVACMode.AUTO: 'auto'>,
|
|
]),
|
|
'max_temp': 35,
|
|
'min_temp': 7,
|
|
'offset': 10,
|
|
'supported_features': <ClimateEntityFeature: 385>,
|
|
'temperature': 22.0,
|
|
'valve': 30,
|
|
}),
|
|
'context': <ANY>,
|
|
'entity_id': 'climate.thermostat',
|
|
'last_changed': <ANY>,
|
|
'last_reported': <ANY>,
|
|
'last_updated': <ANY>,
|
|
'state': 'auto',
|
|
})
|
|
# ---
|
|
# name: test_simple_climate_device[sensor_payload0][climate.thermostat-entry]
|
|
EntityRegistryEntrySnapshot({
|
|
'aliases': set({
|
|
}),
|
|
'area_id': None,
|
|
'capabilities': dict({
|
|
'hvac_modes': list([
|
|
<HVACMode.HEAT: 'heat'>,
|
|
<HVACMode.OFF: 'off'>,
|
|
]),
|
|
'max_temp': 35,
|
|
'min_temp': 7,
|
|
}),
|
|
'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.thermostat',
|
|
'has_entity_name': False,
|
|
'hidden_by': None,
|
|
'icon': None,
|
|
'id': <ANY>,
|
|
'labels': set({
|
|
}),
|
|
'name': None,
|
|
'options': dict({
|
|
}),
|
|
'original_device_class': None,
|
|
'original_icon': None,
|
|
'original_name': 'thermostat',
|
|
'platform': 'deconz',
|
|
'previous_unique_id': None,
|
|
'supported_features': <ClimateEntityFeature: 385>,
|
|
'translation_key': None,
|
|
'unique_id': '14:b4:57:ff:fe:d5:4e:77-01-0201',
|
|
'unit_of_measurement': None,
|
|
})
|
|
# ---
|
|
# name: test_simple_climate_device[sensor_payload0][climate.thermostat-state]
|
|
StateSnapshot({
|
|
'attributes': ReadOnlyDict({
|
|
'current_temperature': 21.0,
|
|
'friendly_name': 'thermostat',
|
|
'hvac_action': <HVACAction.HEATING: 'heating'>,
|
|
'hvac_modes': list([
|
|
<HVACMode.HEAT: 'heat'>,
|
|
<HVACMode.OFF: 'off'>,
|
|
]),
|
|
'locked': True,
|
|
'max_temp': 35,
|
|
'min_temp': 7,
|
|
'offset': 0,
|
|
'supported_features': <ClimateEntityFeature: 385>,
|
|
'temperature': 21.0,
|
|
'valve': 24,
|
|
}),
|
|
'context': <ANY>,
|
|
'entity_id': 'climate.thermostat',
|
|
'last_changed': <ANY>,
|
|
'last_reported': <ANY>,
|
|
'last_updated': <ANY>,
|
|
'state': 'heat',
|
|
})
|
|
# ---
|