mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 21:27:38 +00:00
Remove Sonos migrations (#113506)
This commit is contained in:
parent
eb1f37ea9b
commit
4b4258881b
@ -11,7 +11,7 @@ from soco.exceptions import SoCoSlaveException, SoCoUPnPException
|
|||||||
|
|
||||||
from homeassistant.components.switch import ENTITY_ID_FORMAT, SwitchEntity
|
from homeassistant.components.switch import ENTITY_ID_FORMAT, SwitchEntity
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import ATTR_TIME, EntityCategory, Platform
|
from homeassistant.const import ATTR_TIME, EntityCategory
|
||||||
from homeassistant.core import HomeAssistant, callback
|
from homeassistant.core import HomeAssistant, callback
|
||||||
from homeassistant.helpers import device_registry as dr, entity_registry as er
|
from homeassistant.helpers import device_registry as dr, entity_registry as er
|
||||||
from homeassistant.helpers.dispatcher import async_dispatcher_connect
|
from homeassistant.helpers.dispatcher import async_dispatcher_connect
|
||||||
@ -91,9 +91,6 @@ async def async_setup_entry(
|
|||||||
"""Set up Sonos from a config entry."""
|
"""Set up Sonos from a config entry."""
|
||||||
|
|
||||||
async def _async_create_alarms(speaker: SonosSpeaker, alarm_ids: list[str]) -> None:
|
async def _async_create_alarms(speaker: SonosSpeaker, alarm_ids: list[str]) -> None:
|
||||||
async_migrate_alarm_unique_ids(
|
|
||||||
hass, config_entry, speaker.household_id, alarm_ids
|
|
||||||
)
|
|
||||||
entities = []
|
entities = []
|
||||||
created_alarms = (
|
created_alarms = (
|
||||||
hass.data[DATA_SONOS].alarms[speaker.household_id].created_alarm_ids
|
hass.data[DATA_SONOS].alarms[speaker.household_id].created_alarm_ids
|
||||||
@ -123,10 +120,6 @@ async def async_setup_entry(
|
|||||||
available_soco_attributes, speaker
|
available_soco_attributes, speaker
|
||||||
)
|
)
|
||||||
for feature_type in available_features:
|
for feature_type in available_features:
|
||||||
if feature_type == ATTR_SPEECH_ENHANCEMENT:
|
|
||||||
async_migrate_speech_enhancement_entity_unique_id(
|
|
||||||
hass, config_entry, speaker
|
|
||||||
)
|
|
||||||
_LOGGER.debug(
|
_LOGGER.debug(
|
||||||
"Creating %s switch on %s",
|
"Creating %s switch on %s",
|
||||||
feature_type,
|
feature_type,
|
||||||
@ -354,88 +347,3 @@ class SonosAlarmEntity(SonosEntity, SwitchEntity):
|
|||||||
"""Handle turn on/off of alarm switch."""
|
"""Handle turn on/off of alarm switch."""
|
||||||
self.alarm.enabled = turn_on
|
self.alarm.enabled = turn_on
|
||||||
self.alarm.save()
|
self.alarm.save()
|
||||||
|
|
||||||
|
|
||||||
@callback
|
|
||||||
def async_migrate_alarm_unique_ids(
|
|
||||||
hass: HomeAssistant,
|
|
||||||
config_entry: ConfigEntry,
|
|
||||||
household_id: str,
|
|
||||||
alarm_ids: list[str],
|
|
||||||
) -> None:
|
|
||||||
"""Migrate alarm switch unique_ids in the entity registry to the new format."""
|
|
||||||
entity_registry = er.async_get(hass)
|
|
||||||
registry_entries = er.async_entries_for_config_entry(
|
|
||||||
entity_registry, config_entry.entry_id
|
|
||||||
)
|
|
||||||
|
|
||||||
alarm_entries = [
|
|
||||||
(entry.unique_id, entry)
|
|
||||||
for entry in registry_entries
|
|
||||||
if entry.domain == Platform.SWITCH and entry.original_icon == "mdi:alarm"
|
|
||||||
]
|
|
||||||
|
|
||||||
for old_unique_id, alarm_entry in alarm_entries:
|
|
||||||
if ":" in old_unique_id:
|
|
||||||
continue
|
|
||||||
|
|
||||||
entry_alarm_id = old_unique_id.split("-")[-1]
|
|
||||||
if entry_alarm_id in alarm_ids:
|
|
||||||
new_unique_id = f"alarm-{household_id}:{entry_alarm_id}"
|
|
||||||
_LOGGER.debug(
|
|
||||||
"Migrating unique_id for %s from %s to %s",
|
|
||||||
alarm_entry.entity_id,
|
|
||||||
old_unique_id,
|
|
||||||
new_unique_id,
|
|
||||||
)
|
|
||||||
entity_registry.async_update_entity(
|
|
||||||
alarm_entry.entity_id, new_unique_id=new_unique_id
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@callback
|
|
||||||
def async_migrate_speech_enhancement_entity_unique_id(
|
|
||||||
hass: HomeAssistant,
|
|
||||||
config_entry: ConfigEntry,
|
|
||||||
speaker: SonosSpeaker,
|
|
||||||
) -> None:
|
|
||||||
"""Migrate Speech Enhancement switch entity unique_id."""
|
|
||||||
entity_registry = er.async_get(hass)
|
|
||||||
registry_entries = er.async_entries_for_config_entry(
|
|
||||||
entity_registry, config_entry.entry_id
|
|
||||||
)
|
|
||||||
|
|
||||||
speech_enhancement_entries = [
|
|
||||||
entry
|
|
||||||
for entry in registry_entries
|
|
||||||
if entry.domain == Platform.SWITCH
|
|
||||||
and entry.original_icon == FEATURE_ICONS[ATTR_SPEECH_ENHANCEMENT]
|
|
||||||
and entry.unique_id.startswith(speaker.soco.uid)
|
|
||||||
]
|
|
||||||
|
|
||||||
if len(speech_enhancement_entries) > 1:
|
|
||||||
_LOGGER.warning(
|
|
||||||
(
|
|
||||||
"Migration of Speech Enhancement switches on %s failed,"
|
|
||||||
" manual cleanup required: %s"
|
|
||||||
),
|
|
||||||
speaker.zone_name,
|
|
||||||
[e.entity_id for e in speech_enhancement_entries],
|
|
||||||
)
|
|
||||||
return
|
|
||||||
|
|
||||||
if len(speech_enhancement_entries) == 1:
|
|
||||||
old_entry = speech_enhancement_entries[0]
|
|
||||||
if old_entry.unique_id.endswith("dialog_level"):
|
|
||||||
return
|
|
||||||
|
|
||||||
new_unique_id = f"{speaker.soco.uid}-{ATTR_SPEECH_ENHANCEMENT}"
|
|
||||||
_LOGGER.debug(
|
|
||||||
"Migrating unique_id for %s from %s to %s",
|
|
||||||
old_entry.entity_id,
|
|
||||||
old_entry.unique_id,
|
|
||||||
new_unique_id,
|
|
||||||
)
|
|
||||||
entity_registry.async_update_entity(
|
|
||||||
old_entry.entity_id, new_unique_id=new_unique_id
|
|
||||||
)
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user