* Add WS command to help reset custom entity_id * Calculate suggested object id from entity properties * Fix logic and add additional tests * Adjust test * Update folder_watcher test * Handle current entity id matches the automatic entity id * Don't store calculated_object_id * Update snapshots * Update snapshots * Update test * Tweak logic for reusing current entity_id * Improve test * Don't assign same entity_id to several entities * Prioritize custom entity name * Update snapshots * Update snapshots
579 lines
15 KiB
Plaintext
579 lines
15 KiB
Plaintext
# serializer version: 1
|
|
# name: test_button_snapshot[button.test_button-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': 'button',
|
|
'entity_category': None,
|
|
'entity_id': 'button.test_button',
|
|
'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': 'homee',
|
|
'previous_unique_id': None,
|
|
'suggested_object_id': None,
|
|
'supported_features': 0,
|
|
'translation_key': None,
|
|
'unique_id': '00055511EECC-1-4',
|
|
'unit_of_measurement': None,
|
|
})
|
|
# ---
|
|
# name: test_button_snapshot[button.test_button-state]
|
|
StateSnapshot({
|
|
'attributes': ReadOnlyDict({
|
|
'friendly_name': 'Test Button',
|
|
}),
|
|
'context': <ANY>,
|
|
'entity_id': 'button.test_button',
|
|
'last_changed': <ANY>,
|
|
'last_reported': <ANY>,
|
|
'last_updated': <ANY>,
|
|
'state': 'unknown',
|
|
})
|
|
# ---
|
|
# name: test_button_snapshot[button.test_button_automatic_mode-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': 'button',
|
|
'entity_category': None,
|
|
'entity_id': 'button.test_button_automatic_mode',
|
|
'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': 'Automatic mode',
|
|
'platform': 'homee',
|
|
'previous_unique_id': None,
|
|
'suggested_object_id': None,
|
|
'supported_features': 0,
|
|
'translation_key': 'automatic_mode',
|
|
'unique_id': '00055511EECC-1-1',
|
|
'unit_of_measurement': None,
|
|
})
|
|
# ---
|
|
# name: test_button_snapshot[button.test_button_automatic_mode-state]
|
|
StateSnapshot({
|
|
'attributes': ReadOnlyDict({
|
|
'friendly_name': 'Test Button Automatic mode',
|
|
}),
|
|
'context': <ANY>,
|
|
'entity_id': 'button.test_button_automatic_mode',
|
|
'last_changed': <ANY>,
|
|
'last_reported': <ANY>,
|
|
'last_updated': <ANY>,
|
|
'state': 'unknown',
|
|
})
|
|
# ---
|
|
# name: test_button_snapshot[button.test_button_briefly_open-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': 'button',
|
|
'entity_category': None,
|
|
'entity_id': 'button.test_button_briefly_open',
|
|
'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': 'Briefly open',
|
|
'platform': 'homee',
|
|
'previous_unique_id': None,
|
|
'suggested_object_id': None,
|
|
'supported_features': 0,
|
|
'translation_key': 'briefly_open',
|
|
'unique_id': '00055511EECC-1-2',
|
|
'unit_of_measurement': None,
|
|
})
|
|
# ---
|
|
# name: test_button_snapshot[button.test_button_briefly_open-state]
|
|
StateSnapshot({
|
|
'attributes': ReadOnlyDict({
|
|
'friendly_name': 'Test Button Briefly open',
|
|
}),
|
|
'context': <ANY>,
|
|
'entity_id': 'button.test_button_briefly_open',
|
|
'last_changed': <ANY>,
|
|
'last_reported': <ANY>,
|
|
'last_updated': <ANY>,
|
|
'state': 'unknown',
|
|
})
|
|
# ---
|
|
# name: test_button_snapshot[button.test_button_identification_mode-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': 'button',
|
|
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
|
'entity_id': 'button.test_button_identification_mode',
|
|
'has_entity_name': True,
|
|
'hidden_by': None,
|
|
'icon': None,
|
|
'id': <ANY>,
|
|
'labels': set({
|
|
}),
|
|
'name': None,
|
|
'options': dict({
|
|
}),
|
|
'original_device_class': <ButtonDeviceClass.IDENTIFY: 'identify'>,
|
|
'original_icon': None,
|
|
'original_name': 'Identification mode',
|
|
'platform': 'homee',
|
|
'previous_unique_id': None,
|
|
'suggested_object_id': None,
|
|
'supported_features': 0,
|
|
'translation_key': 'identification_mode',
|
|
'unique_id': '00055511EECC-1-3',
|
|
'unit_of_measurement': None,
|
|
})
|
|
# ---
|
|
# name: test_button_snapshot[button.test_button_identification_mode-state]
|
|
StateSnapshot({
|
|
'attributes': ReadOnlyDict({
|
|
'device_class': 'identify',
|
|
'friendly_name': 'Test Button Identification mode',
|
|
}),
|
|
'context': <ANY>,
|
|
'entity_id': 'button.test_button_identification_mode',
|
|
'last_changed': <ANY>,
|
|
'last_reported': <ANY>,
|
|
'last_updated': <ANY>,
|
|
'state': 'unknown',
|
|
})
|
|
# ---
|
|
# name: test_button_snapshot[button.test_button_impulse_1-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': 'button',
|
|
'entity_category': None,
|
|
'entity_id': 'button.test_button_impulse_1',
|
|
'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': 'Impulse 1',
|
|
'platform': 'homee',
|
|
'previous_unique_id': None,
|
|
'suggested_object_id': None,
|
|
'supported_features': 0,
|
|
'translation_key': 'impulse_instance',
|
|
'unique_id': '00055511EECC-1-5',
|
|
'unit_of_measurement': None,
|
|
})
|
|
# ---
|
|
# name: test_button_snapshot[button.test_button_impulse_1-state]
|
|
StateSnapshot({
|
|
'attributes': ReadOnlyDict({
|
|
'friendly_name': 'Test Button Impulse 1',
|
|
}),
|
|
'context': <ANY>,
|
|
'entity_id': 'button.test_button_impulse_1',
|
|
'last_changed': <ANY>,
|
|
'last_reported': <ANY>,
|
|
'last_updated': <ANY>,
|
|
'state': 'unknown',
|
|
})
|
|
# ---
|
|
# name: test_button_snapshot[button.test_button_impulse_2-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': 'button',
|
|
'entity_category': None,
|
|
'entity_id': 'button.test_button_impulse_2',
|
|
'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': 'Impulse 2',
|
|
'platform': 'homee',
|
|
'previous_unique_id': None,
|
|
'suggested_object_id': None,
|
|
'supported_features': 0,
|
|
'translation_key': 'impulse_instance',
|
|
'unique_id': '00055511EECC-1-6',
|
|
'unit_of_measurement': None,
|
|
})
|
|
# ---
|
|
# name: test_button_snapshot[button.test_button_impulse_2-state]
|
|
StateSnapshot({
|
|
'attributes': ReadOnlyDict({
|
|
'friendly_name': 'Test Button Impulse 2',
|
|
}),
|
|
'context': <ANY>,
|
|
'entity_id': 'button.test_button_impulse_2',
|
|
'last_changed': <ANY>,
|
|
'last_reported': <ANY>,
|
|
'last_updated': <ANY>,
|
|
'state': 'unknown',
|
|
})
|
|
# ---
|
|
# name: test_button_snapshot[button.test_button_light-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': 'button',
|
|
'entity_category': None,
|
|
'entity_id': 'button.test_button_light',
|
|
'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': 'Light',
|
|
'platform': 'homee',
|
|
'previous_unique_id': None,
|
|
'suggested_object_id': None,
|
|
'supported_features': 0,
|
|
'translation_key': 'light',
|
|
'unique_id': '00055511EECC-1-7',
|
|
'unit_of_measurement': None,
|
|
})
|
|
# ---
|
|
# name: test_button_snapshot[button.test_button_light-state]
|
|
StateSnapshot({
|
|
'attributes': ReadOnlyDict({
|
|
'friendly_name': 'Test Button Light',
|
|
}),
|
|
'context': <ANY>,
|
|
'entity_id': 'button.test_button_light',
|
|
'last_changed': <ANY>,
|
|
'last_reported': <ANY>,
|
|
'last_updated': <ANY>,
|
|
'state': 'unknown',
|
|
})
|
|
# ---
|
|
# name: test_button_snapshot[button.test_button_open_partially-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': 'button',
|
|
'entity_category': None,
|
|
'entity_id': 'button.test_button_open_partially',
|
|
'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': 'Open partially',
|
|
'platform': 'homee',
|
|
'previous_unique_id': None,
|
|
'suggested_object_id': None,
|
|
'supported_features': 0,
|
|
'translation_key': 'open_partial',
|
|
'unique_id': '00055511EECC-1-8',
|
|
'unit_of_measurement': None,
|
|
})
|
|
# ---
|
|
# name: test_button_snapshot[button.test_button_open_partially-state]
|
|
StateSnapshot({
|
|
'attributes': ReadOnlyDict({
|
|
'friendly_name': 'Test Button Open partially',
|
|
}),
|
|
'context': <ANY>,
|
|
'entity_id': 'button.test_button_open_partially',
|
|
'last_changed': <ANY>,
|
|
'last_reported': <ANY>,
|
|
'last_updated': <ANY>,
|
|
'state': 'unknown',
|
|
})
|
|
# ---
|
|
# name: test_button_snapshot[button.test_button_open_permanently-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': 'button',
|
|
'entity_category': None,
|
|
'entity_id': 'button.test_button_open_permanently',
|
|
'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': 'Open permanently',
|
|
'platform': 'homee',
|
|
'previous_unique_id': None,
|
|
'suggested_object_id': None,
|
|
'supported_features': 0,
|
|
'translation_key': 'permanently_open',
|
|
'unique_id': '00055511EECC-1-9',
|
|
'unit_of_measurement': None,
|
|
})
|
|
# ---
|
|
# name: test_button_snapshot[button.test_button_open_permanently-state]
|
|
StateSnapshot({
|
|
'attributes': ReadOnlyDict({
|
|
'friendly_name': 'Test Button Open permanently',
|
|
}),
|
|
'context': <ANY>,
|
|
'entity_id': 'button.test_button_open_permanently',
|
|
'last_changed': <ANY>,
|
|
'last_reported': <ANY>,
|
|
'last_updated': <ANY>,
|
|
'state': 'unknown',
|
|
})
|
|
# ---
|
|
# name: test_button_snapshot[button.test_button_reset_meter_1-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': 'button',
|
|
'entity_category': <EntityCategory.CONFIG: 'config'>,
|
|
'entity_id': 'button.test_button_reset_meter_1',
|
|
'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': 'Reset meter 1',
|
|
'platform': 'homee',
|
|
'previous_unique_id': None,
|
|
'suggested_object_id': None,
|
|
'supported_features': 0,
|
|
'translation_key': 'reset_meter_instance',
|
|
'unique_id': '00055511EECC-1-10',
|
|
'unit_of_measurement': None,
|
|
})
|
|
# ---
|
|
# name: test_button_snapshot[button.test_button_reset_meter_1-state]
|
|
StateSnapshot({
|
|
'attributes': ReadOnlyDict({
|
|
'friendly_name': 'Test Button Reset meter 1',
|
|
}),
|
|
'context': <ANY>,
|
|
'entity_id': 'button.test_button_reset_meter_1',
|
|
'last_changed': <ANY>,
|
|
'last_reported': <ANY>,
|
|
'last_updated': <ANY>,
|
|
'state': 'unknown',
|
|
})
|
|
# ---
|
|
# name: test_button_snapshot[button.test_button_reset_meter_2-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': 'button',
|
|
'entity_category': <EntityCategory.CONFIG: 'config'>,
|
|
'entity_id': 'button.test_button_reset_meter_2',
|
|
'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': 'Reset meter 2',
|
|
'platform': 'homee',
|
|
'previous_unique_id': None,
|
|
'suggested_object_id': None,
|
|
'supported_features': 0,
|
|
'translation_key': 'reset_meter_instance',
|
|
'unique_id': '00055511EECC-1-11',
|
|
'unit_of_measurement': None,
|
|
})
|
|
# ---
|
|
# name: test_button_snapshot[button.test_button_reset_meter_2-state]
|
|
StateSnapshot({
|
|
'attributes': ReadOnlyDict({
|
|
'friendly_name': 'Test Button Reset meter 2',
|
|
}),
|
|
'context': <ANY>,
|
|
'entity_id': 'button.test_button_reset_meter_2',
|
|
'last_changed': <ANY>,
|
|
'last_reported': <ANY>,
|
|
'last_updated': <ANY>,
|
|
'state': 'unknown',
|
|
})
|
|
# ---
|
|
# name: test_button_snapshot[button.test_button_ventilate-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': 'button',
|
|
'entity_category': None,
|
|
'entity_id': 'button.test_button_ventilate',
|
|
'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': 'Ventilate',
|
|
'platform': 'homee',
|
|
'previous_unique_id': None,
|
|
'suggested_object_id': None,
|
|
'supported_features': 0,
|
|
'translation_key': 'ventilate',
|
|
'unique_id': '00055511EECC-1-12',
|
|
'unit_of_measurement': None,
|
|
})
|
|
# ---
|
|
# name: test_button_snapshot[button.test_button_ventilate-state]
|
|
StateSnapshot({
|
|
'attributes': ReadOnlyDict({
|
|
'friendly_name': 'Test Button Ventilate',
|
|
}),
|
|
'context': <ANY>,
|
|
'entity_id': 'button.test_button_ventilate',
|
|
'last_changed': <ANY>,
|
|
'last_reported': <ANY>,
|
|
'last_updated': <ANY>,
|
|
'state': 'unknown',
|
|
})
|
|
# ---
|