Add WS command to help reset custom entity_id (#145504)

* 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
This commit is contained in:
Erik Montnemery
2025-05-26 19:28:27 +02:00
committed by GitHub
parent bf92db6fd5
commit 4e1d5fbeb0
612 changed files with 7218 additions and 30 deletions
@@ -68,6 +68,7 @@
'original_name': None,
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': <FanEntityFeature: 57>,
'translation_key': 'vesync',
'unique_id': 'air-purifier',
@@ -167,6 +168,7 @@
'original_name': None,
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': <FanEntityFeature: 57>,
'translation_key': 'vesync',
'unique_id': 'asd_sdfKIHG7IJHGwJGJ7GJ_ag5h3G55',
@@ -267,6 +269,7 @@
'original_name': None,
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': <FanEntityFeature: 57>,
'translation_key': 'vesync',
'unique_id': '400s-purifier',
@@ -368,6 +371,7 @@
'original_name': None,
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': <FanEntityFeature: 57>,
'translation_key': 'vesync',
'unique_id': '600s-purifier',
@@ -666,6 +670,7 @@
'original_name': None,
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': <FanEntityFeature: 57>,
'translation_key': 'vesync',
'unique_id': 'smarttowerfan',
@@ -223,6 +223,7 @@
'original_name': None,
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'dimmable-bulb',
@@ -315,6 +316,7 @@
'original_name': None,
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'dimmable-switch',
@@ -569,6 +571,7 @@
'original_name': None,
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'tunable-bulb',
@@ -65,6 +65,7 @@
'original_name': 'Filter lifetime',
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'filter_life',
'unique_id': 'air-purifier-filter-life',
@@ -97,6 +98,7 @@
'original_name': 'Air quality',
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'air_quality',
'unique_id': 'air-purifier-air-quality',
@@ -198,6 +200,7 @@
'original_name': 'Filter lifetime',
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'filter_life',
'unique_id': 'asd_sdfKIHG7IJHGwJGJ7GJ_ag5h3G55-filter-life',
@@ -286,6 +289,7 @@
'original_name': 'Filter lifetime',
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'filter_life',
'unique_id': '400s-purifier-filter-life',
@@ -318,6 +322,7 @@
'original_name': 'Air quality',
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'air_quality',
'unique_id': '400s-purifier-air-quality',
@@ -352,6 +357,7 @@
'original_name': 'PM2.5',
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': '400s-purifier-pm25',
@@ -469,6 +475,7 @@
'original_name': 'Filter lifetime',
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'filter_life',
'unique_id': '600s-purifier-filter-life',
@@ -501,6 +508,7 @@
'original_name': 'Air quality',
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'air_quality',
'unique_id': '600s-purifier-air-quality',
@@ -535,6 +543,7 @@
'original_name': 'PM2.5',
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': '600s-purifier-pm25',
@@ -730,6 +739,7 @@
'original_name': 'Humidity',
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': '200s-humidifier4321-humidity',
@@ -819,6 +829,7 @@
'original_name': 'Humidity',
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': '600s-humidifier-humidity',
@@ -908,6 +919,7 @@
'original_name': 'Current power',
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'current_power',
'unique_id': 'outlet-power',
@@ -942,6 +954,7 @@
'original_name': 'Energy use today',
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'energy_today',
'unique_id': 'outlet-energy',
@@ -976,6 +989,7 @@
'original_name': 'Energy use weekly',
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'energy_week',
'unique_id': 'outlet-energy-weekly',
@@ -1010,6 +1024,7 @@
'original_name': 'Energy use monthly',
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'energy_month',
'unique_id': 'outlet-energy-monthly',
@@ -1044,6 +1059,7 @@
'original_name': 'Energy use yearly',
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'energy_year',
'unique_id': 'outlet-energy-yearly',
@@ -1078,6 +1094,7 @@
'original_name': 'Current voltage',
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'current_voltage',
'unique_id': 'outlet-voltage',
@@ -63,6 +63,7 @@
'original_name': 'Display',
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'display',
'unique_id': 'air-purifier-display',
@@ -147,6 +148,7 @@
'original_name': 'Display',
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'display',
'unique_id': 'asd_sdfKIHG7IJHGwJGJ7GJ_ag5h3G55-display',
@@ -231,6 +233,7 @@
'original_name': 'Display',
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'display',
'unique_id': '400s-purifier-display',
@@ -315,6 +318,7 @@
'original_name': 'Display',
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'display',
'unique_id': '600s-purifier-display',
@@ -477,6 +481,7 @@
'original_name': 'Display',
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'display',
'unique_id': '200s-humidifier4321-display',
@@ -561,6 +566,7 @@
'original_name': 'Display',
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'display',
'unique_id': '600s-humidifier-display',
@@ -645,6 +651,7 @@
'original_name': None,
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'outlet-device_status',
@@ -730,6 +737,7 @@
'original_name': 'Display',
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'display',
'unique_id': 'smarttowerfan-display',
@@ -853,6 +861,7 @@
'original_name': None,
'platform': 'vesync',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'switch-device_status',