diff --git a/homeassistant/bootstrap.py b/homeassistant/bootstrap.py index 109e5ae246c..7cec74c9dce 100644 --- a/homeassistant/bootstrap.py +++ b/homeassistant/bootstrap.py @@ -35,6 +35,7 @@ from .helpers import ( entity_registry, floor_registry, issue_registry, + label_registry, recorder, restore_state, template, @@ -304,6 +305,7 @@ async def async_load_base_functionality(hass: core.HomeAssistant) -> None: entity_registry.async_load(hass), floor_registry.async_load(hass), issue_registry.async_load(hass), + label_registry.async_load(hass), hass.async_add_executor_job(_cache_uname_processor), template.async_load_custom_templates(hass), restore_state.async_load(hass), diff --git a/homeassistant/components/config/__init__.py b/homeassistant/components/config/__init__.py index 80e7a009e6f..fbeb5904a1a 100644 --- a/homeassistant/components/config/__init__.py +++ b/homeassistant/components/config/__init__.py @@ -37,6 +37,7 @@ SECTIONS = ( "device_registry", "entity_registry", "floor_registry", + "label_registry", "script", "scene", ) diff --git a/homeassistant/components/config/label_registry.py b/homeassistant/components/config/label_registry.py new file mode 100644 index 00000000000..7ea80231e82 --- /dev/null +++ b/homeassistant/components/config/label_registry.py @@ -0,0 +1,130 @@ +"""Websocket API to interact with the label registry.""" +from typing import Any + +import voluptuous as vol + +from homeassistant.components import websocket_api +from homeassistant.components.websocket_api.connection import ActiveConnection +from homeassistant.core import HomeAssistant, callback +from homeassistant.helpers import config_validation as cv +from homeassistant.helpers.label_registry import LabelEntry, async_get + + +@callback +def async_setup(hass: HomeAssistant) -> bool: + """Register the Label Registry WS commands.""" + websocket_api.async_register_command(hass, websocket_list_labels) + websocket_api.async_register_command(hass, websocket_create_label) + websocket_api.async_register_command(hass, websocket_delete_label) + websocket_api.async_register_command(hass, websocket_update_label) + return True + + +@websocket_api.websocket_command( + { + vol.Required("type"): "config/label_registry/list", + } +) +@callback +def websocket_list_labels( + hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any] +) -> None: + """Handle list labels command.""" + registry = async_get(hass) + connection.send_result( + msg["id"], + [_entry_dict(entry) for entry in registry.async_list_labels()], + ) + + +@websocket_api.websocket_command( + { + vol.Required("type"): "config/label_registry/create", + vol.Required("name"): str, + vol.Optional("color"): vol.Any(cv.color_hex, None), + vol.Optional("description"): vol.Any(str, None), + vol.Optional("icon"): vol.Any(cv.icon, None), + } +) +@websocket_api.require_admin +@callback +def websocket_create_label( + hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any] +) -> None: + """Create label command.""" + registry = async_get(hass) + + data = dict(msg) + data.pop("type") + data.pop("id") + + try: + entry = registry.async_create(**data) + except ValueError as err: + connection.send_error(msg["id"], "invalid_info", str(err)) + else: + connection.send_result(msg["id"], _entry_dict(entry)) + + +@websocket_api.websocket_command( + { + vol.Required("type"): "config/label_registry/delete", + vol.Required("label_id"): str, + } +) +@websocket_api.require_admin +@callback +def websocket_delete_label( + hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any] +) -> None: + """Delete label command.""" + registry = async_get(hass) + + try: + registry.async_delete(msg["label_id"]) + except KeyError: + connection.send_error(msg["id"], "invalid_info", "Label ID doesn't exist") + else: + connection.send_result(msg["id"]) + + +@websocket_api.websocket_command( + { + vol.Required("type"): "config/label_registry/update", + vol.Required("label_id"): str, + vol.Optional("color"): vol.Any(cv.color_hex, None), + vol.Optional("description"): vol.Any(str, None), + vol.Optional("icon"): vol.Any(cv.icon, None), + vol.Optional("name"): str, + } +) +@websocket_api.require_admin +@callback +def websocket_update_label( + hass: HomeAssistant, connection: ActiveConnection, msg: dict[str, Any] +) -> None: + """Handle update label websocket command.""" + registry = async_get(hass) + + data = dict(msg) + data.pop("type") + data.pop("id") + + try: + entry = registry.async_update(**data) + except ValueError as err: + connection.send_error(msg["id"], "invalid_info", str(err)) + else: + connection.send_result(msg["id"], _entry_dict(entry)) + + +@callback +def _entry_dict(entry: LabelEntry) -> dict[str, Any]: + """Convert entry to API format.""" + return { + "color": entry.color, + "description": entry.description, + "icon": entry.icon, + "label_id": entry.label_id, + "name": entry.name, + } diff --git a/homeassistant/helpers/area_registry.py b/homeassistant/helpers/area_registry.py index c0d2efcb99e..38c554ffda3 100644 --- a/homeassistant/helpers/area_registry.py +++ b/homeassistant/helpers/area_registry.py @@ -17,7 +17,7 @@ DATA_REGISTRY = "area_registry" EVENT_AREA_REGISTRY_UPDATED = "area_registry_updated" STORAGE_KEY = "core.area_registry" STORAGE_VERSION_MAJOR = 1 -STORAGE_VERSION_MINOR = 5 +STORAGE_VERSION_MINOR = 6 SAVE_DELAY = 10 @@ -36,6 +36,7 @@ class AreaEntry: floor_id: str | None icon: str | None id: str + labels: set[str] = dataclasses.field(default_factory=set) name: str normalized_name: str picture: str | None @@ -119,6 +120,11 @@ class AreaRegistryStore(Store[dict[str, list[dict[str, Any]]]]): for area in old_data["areas"]: area["floor_id"] = None + if old_minor_version < 6: + # Version 1.6 adds labels + for area in old_data["areas"]: + area["labels"] = [] + if old_major_version > 1: raise NotImplementedError return old_data @@ -175,6 +181,7 @@ class AreaRegistry: aliases: set[str] | None = None, floor_id: str | None = None, icon: str | None = None, + labels: set[str] | None = None, picture: str | None = None, ) -> AreaEntry: """Create a new area.""" @@ -189,6 +196,7 @@ class AreaRegistry: floor_id=floor_id, icon=icon, id=area_id, + labels=labels or set(), name=name, normalized_name=normalized_name, picture=picture, @@ -225,6 +233,7 @@ class AreaRegistry: aliases: set[str] | UndefinedType = UNDEFINED, floor_id: str | None | UndefinedType = UNDEFINED, icon: str | None | UndefinedType = UNDEFINED, + labels: set[str] | UndefinedType = UNDEFINED, name: str | UndefinedType = UNDEFINED, picture: str | None | UndefinedType = UNDEFINED, ) -> AreaEntry: @@ -234,6 +243,7 @@ class AreaRegistry: aliases=aliases, floor_id=floor_id, icon=icon, + labels=labels, name=name, picture=picture, ) @@ -250,6 +260,7 @@ class AreaRegistry: aliases: set[str] | UndefinedType = UNDEFINED, floor_id: str | None | UndefinedType = UNDEFINED, icon: str | None | UndefinedType = UNDEFINED, + labels: set[str] | UndefinedType = UNDEFINED, name: str | UndefinedType = UNDEFINED, picture: str | None | UndefinedType = UNDEFINED, ) -> AreaEntry: @@ -261,6 +272,7 @@ class AreaRegistry: for attr_name, value in ( ("aliases", aliases), ("icon", icon), + ("labels", labels), ("picture", picture), ("floor_id", floor_id), ): @@ -296,6 +308,7 @@ class AreaRegistry: floor_id=area["floor_id"], icon=area["icon"], id=area["id"], + labels=set(area["labels"]), name=area["name"], normalized_name=normalized_name, picture=area["picture"], @@ -320,6 +333,7 @@ class AreaRegistry: "floor_id": entry.floor_id, "icon": entry.icon, "id": entry.id, + "labels": list(entry.labels), "name": entry.name, "picture": entry.picture, } @@ -341,13 +355,16 @@ class AreaRegistry: def _async_setup_cleanup(self) -> None: """Set up the area registry cleanup.""" # pylint: disable-next=import-outside-toplevel - from . import floor_registry as fr # Circular dependency + from . import ( # Circular dependencies + floor_registry as fr, + label_registry as lr, + ) @callback - def _floor_removed_from_registry_filter( - event: fr.EventFloorRegistryUpdated, + def _removed_from_registry_filter( + event: fr.EventFloorRegistryUpdated | lr.EventLabelRegistryUpdated, ) -> bool: - """Filter all except for the remove action from floor registry events.""" + """Filter all except for the item removed from registry events.""" return event.data["action"] == "remove" @callback @@ -360,10 +377,26 @@ class AreaRegistry: self.hass.bus.async_listen( event_type=fr.EVENT_FLOOR_REGISTRY_UPDATED, - event_filter=_floor_removed_from_registry_filter, # type: ignore[arg-type] + event_filter=_removed_from_registry_filter, # type: ignore[arg-type] listener=_handle_floor_registry_update, # type: ignore[arg-type] ) + @callback + def _handle_label_registry_update(event: lr.EventLabelRegistryUpdated) -> None: + """Update areas that have a label that has been removed.""" + label_id = event.data["label_id"] + for area_id, area in self.areas.items(): + if label_id in area.labels: + labels = area.labels.copy() + labels.remove(label_id) + self.async_update(area_id, labels=labels) + + self.hass.bus.async_listen( + event_type=lr.EVENT_LABEL_REGISTRY_UPDATED, + event_filter=_removed_from_registry_filter, # type: ignore[arg-type] + listener=_handle_label_registry_update, # type: ignore[arg-type] + ) + @callback def async_get(hass: HomeAssistant) -> AreaRegistry: @@ -380,10 +413,16 @@ async def async_load(hass: HomeAssistant) -> None: @callback def async_entries_for_floor(registry: AreaRegistry, floor_id: str) -> list[AreaEntry]: - """Return entries that match an floor.""" + """Return entries that match a floor.""" return [area for area in registry.areas.values() if floor_id == area.floor_id] +@callback +def async_entries_for_label(registry: AreaRegistry, label_id: str) -> list[AreaEntry]: + """Return entries that match a label.""" + return [area for area in registry.areas.values() if label_id in area.labels] + + def normalize_area_name(area_name: str) -> str: """Normalize an area name by removing whitespace and case folding.""" return area_name.casefold().replace(" ", "") diff --git a/homeassistant/helpers/device_registry.py b/homeassistant/helpers/device_registry.py index 52e779a3608..91eb66c46e1 100644 --- a/homeassistant/helpers/device_registry.py +++ b/homeassistant/helpers/device_registry.py @@ -43,7 +43,7 @@ DATA_REGISTRY = "device_registry" EVENT_DEVICE_REGISTRY_UPDATED = "device_registry_updated" STORAGE_KEY = "core.device_registry" STORAGE_VERSION_MAJOR = 1 -STORAGE_VERSION_MINOR = 4 +STORAGE_VERSION_MINOR = 5 SAVE_DELAY = 10 CLEANUP_DELAY = 10 @@ -238,6 +238,7 @@ class DeviceEntry: hw_version: str | None = attr.ib(default=None) id: str = attr.ib(factory=uuid_util.random_uuid_hex) identifiers: set[tuple[str, str]] = attr.ib(converter=set, factory=set) + labels: set[str] = attr.ib(converter=set, factory=set) manufacturer: str | None = attr.ib(default=None) model: str | None = attr.ib(default=None) name_by_user: str | None = attr.ib(default=None) @@ -378,6 +379,10 @@ class DeviceRegistryStore(storage.Store[dict[str, list[dict[str, Any]]]]): # Introduced in 2023.11 for device in old_data["devices"]: device["serial_number"] = None + if old_minor_version < 5: + # Introduced in 2024.3 + for device in old_data["devices"]: + device["labels"] = device.get("labels", []) if old_major_version > 1: raise NotImplementedError @@ -634,6 +639,7 @@ class DeviceRegistry: disabled_by: DeviceEntryDisabler | None | UndefinedType = UNDEFINED, entry_type: DeviceEntryType | None | UndefinedType = UNDEFINED, hw_version: str | None | UndefinedType = UNDEFINED, + labels: set[str] | UndefinedType = UNDEFINED, manufacturer: str | None | UndefinedType = UNDEFINED, merge_connections: set[tuple[str, str]] | UndefinedType = UNDEFINED, merge_identifiers: set[tuple[str, str]] | UndefinedType = UNDEFINED, @@ -728,6 +734,7 @@ class DeviceRegistry: ("disabled_by", disabled_by), ("entry_type", entry_type), ("hw_version", hw_version), + ("labels", labels), ("manufacturer", manufacturer), ("model", model), ("name", name), @@ -822,6 +829,7 @@ class DeviceRegistry: tuple(iden) # type: ignore[misc] for iden in device["identifiers"] }, + labels=set(device["labels"]), manufacturer=device["manufacturer"], model=device["model"], name_by_user=device["name_by_user"], @@ -865,6 +873,7 @@ class DeviceRegistry: "hw_version": entry.hw_version, "id": entry.id, "identifiers": list(entry.identifiers), + "labels": list(entry.labels), "manufacturer": entry.manufacturer, "model": entry.model, "name_by_user": entry.name_by_user, @@ -937,6 +946,15 @@ class DeviceRegistry: if area_id == device.area_id: self.async_update_device(dev_id, area_id=None) + @callback + def async_clear_label_id(self, label_id: str) -> None: + """Clear label from registry entries.""" + for device_id, entry in self.devices.items(): + if label_id in entry.labels: + labels = entry.labels.copy() + labels.remove(label_id) + self.async_update_device(device_id, labels=labels) + @callback def async_get(hass: HomeAssistant) -> DeviceRegistry: @@ -957,6 +975,14 @@ def async_entries_for_area(registry: DeviceRegistry, area_id: str) -> list[Devic return [device for device in registry.devices.values() if device.area_id == area_id] +@callback +def async_entries_for_label( + registry: DeviceRegistry, label_id: str +) -> list[DeviceEntry]: + """Return entries that match a label.""" + return [device for device in registry.devices.values() if label_id in device.labels] + + @callback def async_entries_for_config_entry( registry: DeviceRegistry, config_entry_id: str @@ -1051,7 +1077,26 @@ def async_cleanup( @callback def async_setup_cleanup(hass: HomeAssistant, dev_reg: DeviceRegistry) -> None: """Clean up device registry when entities removed.""" - from . import entity_registry # pylint: disable=import-outside-toplevel + # pylint: disable-next=import-outside-toplevel + from . import entity_registry, label_registry as lr + + @callback + def _label_removed_from_registry_filter( + event: lr.EventLabelRegistryUpdated, + ) -> bool: + """Filter all except for the remove action from label registry events.""" + return event.data["action"] == "remove" + + @callback + def _handle_label_registry_update(event: lr.EventLabelRegistryUpdated) -> None: + """Update devices that have a label that has been removed.""" + dev_reg.async_clear_label_id(event.data["label_id"]) + + hass.bus.async_listen( + event_type=lr.EVENT_LABEL_REGISTRY_UPDATED, + event_filter=_label_removed_from_registry_filter, # type: ignore[arg-type] + listener=_handle_label_registry_update, # type: ignore[arg-type] + ) async def cleanup() -> None: """Cleanup.""" diff --git a/homeassistant/helpers/entity_registry.py b/homeassistant/helpers/entity_registry.py index f72aece4c70..6d5c31ff294 100644 --- a/homeassistant/helpers/entity_registry.py +++ b/homeassistant/helpers/entity_registry.py @@ -65,7 +65,7 @@ SAVE_DELAY = 10 _LOGGER = logging.getLogger(__name__) STORAGE_VERSION_MAJOR = 1 -STORAGE_VERSION_MINOR = 12 +STORAGE_VERSION_MINOR = 13 STORAGE_KEY = "core.entity_registry" CLEANUP_INTERVAL = 3600 * 24 @@ -135,6 +135,7 @@ ReadOnlyEntityOptionsType = ReadOnlyDict[str, ReadOnlyDict[str, Any]] DISPLAY_DICT_OPTIONAL = ( ("ai", "area_id"), + ("lb", "labels"), ("di", "device_id"), ("ic", "icon"), ("tk", "translation_key"), @@ -174,6 +175,7 @@ class RegistryEntry: converter=attr.converters.default_if_none(factory=uuid_util.random_uuid_hex), # type: ignore[misc] ) has_entity_name: bool = attr.ib(default=False) + labels: set[str] = attr.ib(factory=set) name: str | None = attr.ib(default=None) options: ReadOnlyEntityOptionsType = attr.ib( default=None, converter=_protect_entity_options @@ -262,6 +264,7 @@ class RegistryEntry: "hidden_by": self.hidden_by, "icon": self.icon, "id": self.id, + "labels": self.labels, "name": self.name, "options": self.options, "original_name": self.original_name, @@ -348,7 +351,7 @@ class DeletedRegistryEntry: class EntityRegistryStore(storage.Store[dict[str, list[dict[str, Any]]]]): """Store entity registry data.""" - async def _async_migrate_func( + async def _async_migrate_func( # noqa: C901 self, old_major_version: int, old_minor_version: int, @@ -429,6 +432,11 @@ class EntityRegistryStore(storage.Store[dict[str, list[dict[str, Any]]]]): for entity in data["entities"]: entity["previous_unique_id"] = None + if old_major_version == 1 and old_minor_version < 13: + # Version 1.13 adds labels + for entity in data["entities"]: + entity["labels"] = [] + if old_major_version > 1: raise NotImplementedError return data @@ -878,6 +886,7 @@ class EntityRegistry: hidden_by: RegistryEntryHider | None | UndefinedType = UNDEFINED, icon: str | None | UndefinedType = UNDEFINED, has_entity_name: bool | UndefinedType = UNDEFINED, + labels: set[str] | UndefinedType = UNDEFINED, name: str | None | UndefinedType = UNDEFINED, new_entity_id: str | UndefinedType = UNDEFINED, new_unique_id: str | UndefinedType = UNDEFINED, @@ -928,6 +937,7 @@ class EntityRegistry: ("hidden_by", hidden_by), ("icon", icon), ("has_entity_name", has_entity_name), + ("labels", labels), ("name", name), ("options", options), ("original_device_class", original_device_class), @@ -1005,6 +1015,7 @@ class EntityRegistry: hidden_by: RegistryEntryHider | None | UndefinedType = UNDEFINED, icon: str | None | UndefinedType = UNDEFINED, has_entity_name: bool | UndefinedType = UNDEFINED, + labels: set[str] | UndefinedType = UNDEFINED, name: str | None | UndefinedType = UNDEFINED, new_entity_id: str | UndefinedType = UNDEFINED, new_unique_id: str | UndefinedType = UNDEFINED, @@ -1029,6 +1040,7 @@ class EntityRegistry: hidden_by=hidden_by, icon=icon, has_entity_name=has_entity_name, + labels=labels, name=name, new_entity_id=new_entity_id, new_unique_id=new_unique_id, @@ -1126,6 +1138,7 @@ class EntityRegistry: icon=entity["icon"], id=entity["id"], has_entity_name=entity["has_entity_name"], + labels=set(entity["labels"]), name=entity["name"], options=entity["options"], original_device_class=entity["original_device_class"], @@ -1182,6 +1195,7 @@ class EntityRegistry: "icon": entry.icon, "id": entry.id, "has_entity_name": entry.has_entity_name, + "labels": list(entry.labels), "name": entry.name, "options": entry.options, "original_device_class": entry.original_device_class, @@ -1210,6 +1224,15 @@ class EntityRegistry: return data + @callback + def async_clear_label_id(self, label_id: str) -> None: + """Clear label from registry entries.""" + for entity_id, entry in self.entities.items(): + if label_id in entry.labels: + labels = entry.labels.copy() + labels.remove(label_id) + self.async_update_entity(entity_id, labels=labels) + @callback def async_clear_config_entry(self, config_entry_id: str) -> None: """Clear config entry from registry entries.""" @@ -1282,6 +1305,14 @@ def async_entries_for_area( return registry.entities.get_entries_for_area_id(area_id) +@callback +def async_entries_for_label( + registry: EntityRegistry, label_id: str +) -> list[RegistryEntry]: + """Return entries that match a label.""" + return [entry for entry in registry.entities.values() if label_id in entry.labels] + + @callback def async_entries_for_config_entry( registry: EntityRegistry, config_entry_id: str @@ -1323,7 +1354,26 @@ def async_config_entry_disabled_by_changed( @callback def _async_setup_cleanup(hass: HomeAssistant, registry: EntityRegistry) -> None: """Clean up device registry when entities removed.""" - from . import event # pylint: disable=import-outside-toplevel + # pylint: disable-next=import-outside-toplevel + from . import event, label_registry as lr + + @callback + def _label_removed_from_registry_filter( + event: lr.EventLabelRegistryUpdated, + ) -> bool: + """Filter all except for the remove action from label registry events.""" + return event.data["action"] == "remove" + + @callback + def _handle_label_registry_update(event: lr.EventLabelRegistryUpdated) -> None: + """Update entity that have a label that has been removed.""" + registry.async_clear_label_id(event.data["label_id"]) + + hass.bus.async_listen( + event_type=lr.EVENT_LABEL_REGISTRY_UPDATED, + event_filter=_label_removed_from_registry_filter, # type: ignore[arg-type] + listener=_handle_label_registry_update, # type: ignore[arg-type] + ) @callback def cleanup(_: datetime) -> None: diff --git a/homeassistant/helpers/label_registry.py b/homeassistant/helpers/label_registry.py new file mode 100644 index 00000000000..d0bc699b9f9 --- /dev/null +++ b/homeassistant/helpers/label_registry.py @@ -0,0 +1,283 @@ +"""Provide a way to label and group anything.""" +from __future__ import annotations + +from collections import UserDict +from collections.abc import Iterable, ValuesView +import dataclasses +from dataclasses import dataclass +from typing import Literal, TypedDict, cast + +from homeassistant.core import HomeAssistant, callback +from homeassistant.util import slugify + +from .typing import UNDEFINED, EventType, UndefinedType + +DATA_REGISTRY = "label_registry" +EVENT_LABEL_REGISTRY_UPDATED = "label_registry_updated" +STORAGE_KEY = "core.label_registry" +STORAGE_VERSION_MAJOR = 1 +SAVE_DELAY = 10 + + +class EventLabelRegistryUpdatedData(TypedDict): + """Event data for when the label registry is updated.""" + + action: Literal["create", "remove", "update"] + label_id: str + + +EventLabelRegistryUpdated = EventType[EventLabelRegistryUpdatedData] + + +@dataclass(slots=True, frozen=True) +class LabelEntry: + """Label Registry Entry.""" + + label_id: str + name: str + normalized_name: str + description: str | None = None + color: str | None = None + icon: str | None = None + + +class LabelRegistryItems(UserDict[str, LabelEntry]): + """Container for label registry items, maps label id -> entry. + + Maintains an additional index: + - normalized name -> entry + """ + + def __init__(self) -> None: + """Initialize the container.""" + super().__init__() + self._normalized_names: dict[str, LabelEntry] = {} + + def values(self) -> ValuesView[LabelEntry]: + """Return the underlying values to avoid __iter__ overhead.""" + return self.data.values() + + def __setitem__(self, key: str, entry: LabelEntry) -> None: + """Add an item.""" + data = self.data + normalized_name = _normalize_label_name(entry.name) + + if key in data: + old_entry = data[key] + if ( + normalized_name != old_entry.normalized_name + and normalized_name in self._normalized_names + ): + raise ValueError( + f"The name {entry.name} ({normalized_name}) is already in use" + ) + del self._normalized_names[old_entry.normalized_name] + data[key] = entry + self._normalized_names[normalized_name] = entry + + def __delitem__(self, key: str) -> None: + """Remove an item.""" + entry = self[key] + normalized_name = _normalize_label_name(entry.name) + del self._normalized_names[normalized_name] + super().__delitem__(key) + + def get_label_by_name(self, name: str) -> LabelEntry | None: + """Get label by name.""" + return self._normalized_names.get(_normalize_label_name(name)) + + +class LabelRegistry: + """Class to hold a registry of labels.""" + + labels: LabelRegistryItems + _label_data: dict[str, LabelEntry] + + def __init__(self, hass: HomeAssistant) -> None: + """Initialize the label registry.""" + self.hass = hass + self._store = hass.helpers.storage.Store( + STORAGE_VERSION_MAJOR, + STORAGE_KEY, + atomic_writes=True, + ) + + @callback + def async_get_label(self, label_id: str) -> LabelEntry | None: + """Get label by ID. + + We retrieve the LabelEntry from the underlying dict to avoid + the overhead of the UserDict __getitem__. + """ + return self._label_data.get(label_id) + + @callback + def async_get_label_by_name(self, name: str) -> LabelEntry | None: + """Get label by name.""" + return self.labels.get_label_by_name(name) + + @callback + def async_list_labels(self) -> Iterable[LabelEntry]: + """Get all labels.""" + return self.labels.values() + + @callback + def _generate_id(self, name: str) -> str: + """Initialize ID.""" + suggestion = suggestion_base = slugify(name) + tries = 1 + while suggestion in self.labels: + tries += 1 + suggestion = f"{suggestion_base}_{tries}" + return suggestion + + @callback + def async_create( + self, + name: str, + *, + color: str | None = None, + icon: str | None = None, + description: str | None = None, + ) -> LabelEntry: + """Create a new label.""" + if label := self.async_get_label_by_name(name): + raise ValueError( + f"The name {name} ({label.normalized_name}) is already in use" + ) + + normalized_name = _normalize_label_name(name) + + label = LabelEntry( + color=color, + description=description, + icon=icon, + label_id=self._generate_id(name), + name=name, + normalized_name=normalized_name, + ) + label_id = label.label_id + self.labels[label_id] = label + self.async_schedule_save() + self.hass.bus.async_fire( + EVENT_LABEL_REGISTRY_UPDATED, + EventLabelRegistryUpdatedData( + action="create", + label_id=label_id, + ), + ) + return label + + @callback + def async_delete(self, label_id: str) -> None: + """Delete label.""" + del self.labels[label_id] + self.hass.bus.async_fire( + EVENT_LABEL_REGISTRY_UPDATED, + EventLabelRegistryUpdatedData( + action="remove", + label_id=label_id, + ), + ) + self.async_schedule_save() + + @callback + def async_update( + self, + label_id: str, + *, + color: str | None | UndefinedType = UNDEFINED, + description: str | None | UndefinedType = UNDEFINED, + icon: str | None | UndefinedType = UNDEFINED, + name: str | UndefinedType = UNDEFINED, + ) -> LabelEntry: + """Update name of label.""" + old = self.labels[label_id] + changes = { + attr_name: value + for attr_name, value in ( + ("color", color), + ("description", description), + ("icon", icon), + ) + if value is not UNDEFINED and getattr(old, attr_name) != value + } + + if name is not UNDEFINED and name != old.name: + changes["name"] = name + changes["normalized_name"] = _normalize_label_name(name) + + if not changes: + return old + + new = self.labels[label_id] = dataclasses.replace(old, **changes) # type: ignore[arg-type] + + self.async_schedule_save() + self.hass.bus.async_fire( + EVENT_LABEL_REGISTRY_UPDATED, + EventLabelRegistryUpdatedData( + action="update", + label_id=label_id, + ), + ) + + return new + + async def async_load(self) -> None: + """Load the label registry.""" + data = await self._store.async_load() + labels = LabelRegistryItems() + + if data is not None: + for label in data["labels"]: + normalized_name = _normalize_label_name(label["name"]) + labels[label["label_id"]] = LabelEntry( + color=label["color"], + description=label["description"], + icon=label["icon"], + label_id=label["label_id"], + name=label["name"], + normalized_name=normalized_name, + ) + + self.labels = labels + self._label_data = labels.data + + @callback + def async_schedule_save(self) -> None: + """Schedule saving the label registry.""" + self._store.async_delay_save(self._data_to_save, SAVE_DELAY) + + @callback + def _data_to_save(self) -> dict[str, list[dict[str, str | None]]]: + """Return data of label registry to store in a file.""" + return { + "labels": [ + { + "color": entry.color, + "description": entry.description, + "icon": entry.icon, + "label_id": entry.label_id, + "name": entry.name, + } + for entry in self.labels.values() + ] + } + + +@callback +def async_get(hass: HomeAssistant) -> LabelRegistry: + """Get label registry.""" + return cast(LabelRegistry, hass.data[DATA_REGISTRY]) + + +async def async_load(hass: HomeAssistant) -> None: + """Load label registry.""" + assert DATA_REGISTRY not in hass.data + hass.data[DATA_REGISTRY] = LabelRegistry(hass) + await hass.data[DATA_REGISTRY].async_load() + + +def _normalize_label_name(label_name: str) -> str: + """Normalize a label name by removing whitespace and case folding.""" + return label_name.casefold().replace(" ", "") diff --git a/pyproject.toml b/pyproject.toml index bf7741ce328..6cef9b36ebf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -693,6 +693,7 @@ voluptuous = "vol" "homeassistant.helpers.entity_registry" = "er" "homeassistant.helpers.floor_registry" = "fr" "homeassistant.helpers.issue_registry" = "ir" +"homeassistant.helpers.label_registry" = "lr" "homeassistant.util.dt" = "dt_util" [tool.ruff.lint.flake8-pytest-style] diff --git a/tests/common.py b/tests/common.py index 18a9dadb66f..e7648bba303 100644 --- a/tests/common.py +++ b/tests/common.py @@ -66,6 +66,7 @@ from homeassistant.helpers import ( floor_registry as fr, intent, issue_registry as ir, + label_registry as lr, recorder as recorder_helper, restore_state, restore_state as rs, @@ -297,6 +298,7 @@ async def async_test_home_assistant( er.async_load(hass), fr.async_load(hass), ir.async_load(hass), + lr.async_load(hass), rs.async_load(hass), ) hass.data[bootstrap.DATA_REGISTRIES_LOADED] = None diff --git a/tests/components/airly/snapshots/test_sensor.ambr b/tests/components/airly/snapshots/test_sensor.ambr index 36ae402f4f4..83b90cab3a6 100644 --- a/tests/components/airly/snapshots/test_sensor.ambr +++ b/tests/components/airly/snapshots/test_sensor.ambr @@ -18,6 +18,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -69,6 +71,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -122,6 +126,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -174,6 +180,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -228,6 +236,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -282,6 +292,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -334,6 +346,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -388,6 +402,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -442,6 +458,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -494,6 +512,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -548,6 +568,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ diff --git a/tests/components/analytics_insights/snapshots/test_sensor.ambr b/tests/components/analytics_insights/snapshots/test_sensor.ambr index dc4c3d6d795..80e53d18e98 100644 --- a/tests/components/analytics_insights/snapshots/test_sensor.ambr +++ b/tests/components/analytics_insights/snapshots/test_sensor.ambr @@ -18,6 +18,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -65,6 +67,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -112,6 +116,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -159,6 +165,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/aosmith/snapshots/test_device.ambr b/tests/components/aosmith/snapshots/test_device.ambr index fb80dc06917..f6e2625afdb 100644 --- a/tests/components/aosmith/snapshots/test_device.ambr +++ b/tests/components/aosmith/snapshots/test_device.ambr @@ -17,6 +17,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'A. O. Smith', 'model': 'HPTS-50 200 202172000', 'name': 'My water heater', diff --git a/tests/components/ccm15/snapshots/test_climate.ambr b/tests/components/ccm15/snapshots/test_climate.ambr index 05ae0ef5f70..63f6612784b 100644 --- a/tests/components/ccm15/snapshots/test_climate.ambr +++ b/tests/components/ccm15/snapshots/test_climate.ambr @@ -37,6 +37,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -89,6 +91,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -217,6 +221,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -269,6 +275,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/co2signal/snapshots/test_sensor.ambr b/tests/components/co2signal/snapshots/test_sensor.ambr index d671640e316..0d0ae2cedb5 100644 --- a/tests/components/co2signal/snapshots/test_sensor.ambr +++ b/tests/components/co2signal/snapshots/test_sensor.ambr @@ -18,6 +18,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -67,6 +69,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/config/test_entity_registry.py b/tests/components/config/test_entity_registry.py index c2cd547d425..7069b22bf09 100644 --- a/tests/components/config/test_entity_registry.py +++ b/tests/components/config/test_entity_registry.py @@ -69,6 +69,7 @@ async def test_list_entities( "hidden_by": None, "icon": None, "id": ANY, + "labels": [], "name": "Hello World", "options": {}, "original_name": None, @@ -87,6 +88,7 @@ async def test_list_entities( "hidden_by": None, "icon": None, "id": ANY, + "labels": [], "name": None, "options": {}, "original_name": None, @@ -132,6 +134,7 @@ async def test_list_entities( "hidden_by": None, "icon": None, "id": ANY, + "labels": [], "name": "Hello World", "options": {}, "original_name": None, @@ -229,6 +232,7 @@ async def test_list_entities_for_display( "ei": "test_domain.test", "en": "Hello World", "ic": "mdi:icon", + "lb": [], "pl": "test_platform", "tk": "translations_galore", }, @@ -237,31 +241,37 @@ async def test_list_entities_for_display( "di": "device123", "ei": "test_domain.nameless", "en": None, + "lb": [], "pl": "test_platform", }, { "ai": "area52", "di": "device123", "ei": "test_domain.renamed", + "lb": [], "pl": "test_platform", }, { "ei": "test_domain.boring", + "lb": [], "pl": "test_platform", }, { "ei": "test_domain.hidden", + "lb": [], "hb": True, "pl": "test_platform", }, { "dp": 0, "ei": "sensor.default_precision", + "lb": [], "pl": "test_platform", }, { "dp": 0, "ei": "sensor.user_precision", + "lb": [], "pl": "test_platform", }, ], @@ -302,6 +312,7 @@ async def test_list_entities_for_display( "ai": "area52", "di": "device123", "ei": "test_domain.test", + "lb": [], "en": "Hello World", "pl": "test_platform", }, @@ -347,6 +358,7 @@ async def test_get_entity(hass: HomeAssistant, client: MockHAClientWebSocket) -> "hidden_by": None, "icon": None, "id": ANY, + "labels": [], "name": "Hello World", "options": {}, "original_device_class": None, @@ -379,6 +391,7 @@ async def test_get_entity(hass: HomeAssistant, client: MockHAClientWebSocket) -> "hidden_by": None, "icon": None, "id": ANY, + "labels": [], "name": None, "options": {}, "original_device_class": None, @@ -436,6 +449,7 @@ async def test_get_entities(hass: HomeAssistant, client: MockHAClientWebSocket) "hidden_by": None, "icon": None, "id": ANY, + "labels": [], "name": "Hello World", "options": {}, "original_device_class": None, @@ -459,6 +473,7 @@ async def test_get_entities(hass: HomeAssistant, client: MockHAClientWebSocket) "hidden_by": None, "icon": None, "id": ANY, + "labels": [], "name": None, "options": {}, "original_device_class": None, @@ -529,6 +544,7 @@ async def test_update_entity( "hidden_by": "user", # We exchange strings over the WS API, not enums "icon": "icon:after update", "id": ANY, + "labels": [], "name": "after update", "options": {}, "original_device_class": None, @@ -601,6 +617,7 @@ async def test_update_entity( "hidden_by": "user", # We exchange strings over the WS API, not enums "icon": "icon:after update", "id": ANY, + "labels": [], "name": "after update", "options": {}, "original_device_class": None, @@ -640,6 +657,7 @@ async def test_update_entity( "hidden_by": "user", # We exchange strings over the WS API, not enums "icon": "icon:after update", "id": ANY, + "labels": [], "name": "after update", "options": {"sensor": {"unit_of_measurement": "beard_second"}}, "original_device_class": None, @@ -693,6 +711,7 @@ async def test_update_entity_require_restart( "hidden_by": None, "icon": None, "id": ANY, + "labels": [], "name": None, "options": {}, "original_device_class": None, @@ -805,6 +824,7 @@ async def test_update_entity_no_changes( "hidden_by": None, "icon": None, "id": ANY, + "labels": [], "name": "name of entity", "options": {}, "original_device_class": None, @@ -893,6 +913,7 @@ async def test_update_entity_id( "hidden_by": None, "icon": None, "id": ANY, + "labels": [], "name": None, "options": {}, "original_device_class": None, diff --git a/tests/components/config/test_label_registry.py b/tests/components/config/test_label_registry.py new file mode 100644 index 00000000000..f65654462b9 --- /dev/null +++ b/tests/components/config/test_label_registry.py @@ -0,0 +1,235 @@ +"""Test label registry API.""" +import pytest + +from homeassistant.components.config import label_registry +from homeassistant.core import HomeAssistant +from homeassistant.helpers import label_registry as lr + +from tests.typing import MockHAClientWebSocket, WebSocketGenerator + + +@pytest.fixture(name="client") +async def client_fixture( + hass: HomeAssistant, hass_ws_client: WebSocketGenerator +) -> MockHAClientWebSocket: + """Fixture that can interact with the config manager API.""" + label_registry.async_setup(hass) + return await hass_ws_client(hass) + + +async def test_list_labels( + client: MockHAClientWebSocket, + label_registry: lr.LabelRegistry, +) -> None: + """Test list entries.""" + label_registry.async_create("mock 1") + label_registry.async_create( + name="mock 2", + color="#00FF00", + icon="mdi:two", + description="This is the second label", + ) + + assert len(label_registry.labels) == 2 + + await client.send_json_auto_id({"type": "config/label_registry/list"}) + + msg = await client.receive_json() + + assert len(msg["result"]) == len(label_registry.labels) + assert msg["result"][0] == { + "color": None, + "description": None, + "icon": None, + "label_id": "mock_1", + "name": "mock 1", + } + assert msg["result"][1] == { + "color": "#00FF00", + "description": "This is the second label", + "icon": "mdi:two", + "label_id": "mock_2", + "name": "mock 2", + } + + +async def test_create_label( + client: MockHAClientWebSocket, + label_registry: lr.LabelRegistry, +) -> None: + """Test create entry.""" + await client.send_json_auto_id( + { + "name": "MOCK", + "type": "config/label_registry/create", + } + ) + + msg = await client.receive_json() + + assert len(label_registry.labels) == 1 + assert msg["result"] == { + "color": None, + "description": None, + "icon": None, + "label_id": "mock", + "name": "MOCK", + } + + await client.send_json_auto_id( + { + "id": 2, + "name": "MOCKERY", + "type": "config/label_registry/create", + "color": "#00FF00", + "description": "This is the second label", + "icon": "mdi:two", + } + ) + + msg = await client.receive_json() + + assert len(label_registry.labels) == 2 + assert msg["result"] == { + "color": "#00FF00", + "description": "This is the second label", + "icon": "mdi:two", + "label_id": "mockery", + "name": "MOCKERY", + } + + +async def test_create_label_with_name_already_in_use( + client: MockHAClientWebSocket, + label_registry: lr.LabelRegistry, +) -> None: + """Test create entry that should fail.""" + label_registry.async_create("mock") + assert len(label_registry.labels) == 1 + + await client.send_json_auto_id( + {"name": "mock", "type": "config/label_registry/create"} + ) + + msg = await client.receive_json() + + assert not msg["success"] + assert msg["error"]["code"] == "invalid_info" + assert msg["error"]["message"] == "The name mock (mock) is already in use" + assert len(label_registry.labels) == 1 + + +async def test_delete_label( + client: MockHAClientWebSocket, + label_registry: lr.LabelRegistry, +) -> None: + """Test delete entry.""" + label = label_registry.async_create("mock") + assert len(label_registry.labels) == 1 + + await client.send_json_auto_id( + {"label_id": label.label_id, "type": "config/label_registry/delete"} + ) + + msg = await client.receive_json() + + assert msg["success"] + assert not label_registry.labels + + +async def test_delete_non_existing_label( + client: MockHAClientWebSocket, + label_registry: lr.LabelRegistry, +) -> None: + """Test delete entry that should fail.""" + label_registry.async_create("mock") + assert len(label_registry.labels) == 1 + + await client.send_json_auto_id( + {"label_id": "omg_puppies", "type": "config/label_registry/delete"} + ) + + msg = await client.receive_json() + + assert not msg["success"] + assert msg["error"]["code"] == "invalid_info" + assert msg["error"]["message"] == "Label ID doesn't exist" + assert len(label_registry.labels) == 1 + + +async def test_update_label( + client: MockHAClientWebSocket, + label_registry: lr.LabelRegistry, +) -> None: + """Test update entry.""" + label = label_registry.async_create("mock") + assert len(label_registry.labels) == 1 + + await client.send_json_auto_id( + { + "label_id": label.label_id, + "name": "UPDATED", + "icon": "mdi:test", + "color": "#00FF00", + "description": "This is a label description", + "type": "config/label_registry/update", + } + ) + + msg = await client.receive_json() + + assert len(label_registry.labels) == 1 + assert msg["result"] == { + "color": "#00FF00", + "description": "This is a label description", + "icon": "mdi:test", + "label_id": "mock", + "name": "UPDATED", + } + + await client.send_json_auto_id( + { + "label_id": label.label_id, + "name": "UPDATED AGAIN", + "icon": None, + "color": None, + "description": None, + "type": "config/label_registry/update", + } + ) + + msg = await client.receive_json() + + assert len(label_registry.labels) == 1 + assert msg["result"] == { + "color": None, + "description": None, + "icon": None, + "label_id": "mock", + "name": "UPDATED AGAIN", + } + + +async def test_update_with_name_already_in_use( + client: MockHAClientWebSocket, + label_registry: lr.LabelRegistry, +) -> None: + """Test update entry.""" + label = label_registry.async_create("mock 1") + label_registry.async_create("mock 2") + assert len(label_registry.labels) == 2 + + await client.send_json_auto_id( + { + "label_id": label.label_id, + "name": "mock 2", + "type": "config/label_registry/update", + } + ) + + msg = await client.receive_json() + + assert not msg["success"] + assert msg["error"]["code"] == "invalid_info" + assert msg["error"]["message"] == "The name mock 2 (mock2) is already in use" + assert len(label_registry.labels) == 2 diff --git a/tests/components/devolo_home_control/snapshots/test_binary_sensor.ambr b/tests/components/devolo_home_control/snapshots/test_binary_sensor.ambr index 58cfc407a77..851c1da4c62 100644 --- a/tests/components/devolo_home_control/snapshots/test_binary_sensor.ambr +++ b/tests/components/devolo_home_control/snapshots/test_binary_sensor.ambr @@ -29,6 +29,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -73,6 +75,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -116,6 +120,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/devolo_home_control/snapshots/test_climate.ambr b/tests/components/devolo_home_control/snapshots/test_climate.ambr index 0e7c5ba547e..bb6bd7d0f40 100644 --- a/tests/components/devolo_home_control/snapshots/test_climate.ambr +++ b/tests/components/devolo_home_control/snapshots/test_climate.ambr @@ -44,6 +44,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/devolo_home_control/snapshots/test_cover.ambr b/tests/components/devolo_home_control/snapshots/test_cover.ambr index 69d1eea4275..34a149c10c2 100644 --- a/tests/components/devolo_home_control/snapshots/test_cover.ambr +++ b/tests/components/devolo_home_control/snapshots/test_cover.ambr @@ -31,6 +31,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/devolo_home_control/snapshots/test_light.ambr b/tests/components/devolo_home_control/snapshots/test_light.ambr index cc02e0a680b..7b156dd894b 100644 --- a/tests/components/devolo_home_control/snapshots/test_light.ambr +++ b/tests/components/devolo_home_control/snapshots/test_light.ambr @@ -38,6 +38,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -91,6 +93,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/devolo_home_control/snapshots/test_sensor.ambr b/tests/components/devolo_home_control/snapshots/test_sensor.ambr index 0b7edcbd3ea..1f83877f14b 100644 --- a/tests/components/devolo_home_control/snapshots/test_sensor.ambr +++ b/tests/components/devolo_home_control/snapshots/test_sensor.ambr @@ -33,6 +33,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -81,6 +83,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -129,6 +133,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -177,6 +183,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/devolo_home_control/snapshots/test_siren.ambr b/tests/components/devolo_home_control/snapshots/test_siren.ambr index f699090c8cf..82422e7f37f 100644 --- a/tests/components/devolo_home_control/snapshots/test_siren.ambr +++ b/tests/components/devolo_home_control/snapshots/test_siren.ambr @@ -36,6 +36,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -87,6 +89,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -138,6 +142,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/devolo_home_control/snapshots/test_switch.ambr b/tests/components/devolo_home_control/snapshots/test_switch.ambr index fffe89337e7..e756fc26c9a 100644 --- a/tests/components/devolo_home_control/snapshots/test_switch.ambr +++ b/tests/components/devolo_home_control/snapshots/test_switch.ambr @@ -28,6 +28,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/devolo_home_network/snapshots/test_binary_sensor.ambr b/tests/components/devolo_home_network/snapshots/test_binary_sensor.ambr index 985fc64146f..517652c1d84 100644 --- a/tests/components/devolo_home_network/snapshots/test_binary_sensor.ambr +++ b/tests/components/devolo_home_network/snapshots/test_binary_sensor.ambr @@ -30,6 +30,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/devolo_home_network/snapshots/test_button.ambr b/tests/components/devolo_home_network/snapshots/test_button.ambr index f00bb345aeb..da8b1455271 100644 --- a/tests/components/devolo_home_network/snapshots/test_button.ambr +++ b/tests/components/devolo_home_network/snapshots/test_button.ambr @@ -72,6 +72,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -159,6 +161,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -246,6 +250,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -333,6 +339,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/devolo_home_network/snapshots/test_image.ambr b/tests/components/devolo_home_network/snapshots/test_image.ambr index e6ca9e4fad5..ad8ccf43c55 100644 --- a/tests/components/devolo_home_network/snapshots/test_image.ambr +++ b/tests/components/devolo_home_network/snapshots/test_image.ambr @@ -16,6 +16,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/devolo_home_network/snapshots/test_init.ambr b/tests/components/devolo_home_network/snapshots/test_init.ambr index 6ba4292c5de..b042dfec2f1 100644 --- a/tests/components/devolo_home_network/snapshots/test_init.ambr +++ b/tests/components/devolo_home_network/snapshots/test_init.ambr @@ -21,6 +21,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'devolo', 'model': 'dLAN pro 1200+ WiFi ac', 'name': 'Mock Title', diff --git a/tests/components/devolo_home_network/snapshots/test_sensor.ambr b/tests/components/devolo_home_network/snapshots/test_sensor.ambr index 4ab4635683c..40c6179fc3c 100644 --- a/tests/components/devolo_home_network/snapshots/test_sensor.ambr +++ b/tests/components/devolo_home_network/snapshots/test_sensor.ambr @@ -29,6 +29,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -76,6 +78,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -120,6 +124,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -165,6 +171,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -213,6 +221,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ diff --git a/tests/components/devolo_home_network/snapshots/test_switch.ambr b/tests/components/devolo_home_network/snapshots/test_switch.ambr index 4d268b21317..865b881a215 100644 --- a/tests/components/devolo_home_network/snapshots/test_switch.ambr +++ b/tests/components/devolo_home_network/snapshots/test_switch.ambr @@ -115,6 +115,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -159,6 +161,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/devolo_home_network/snapshots/test_update.ambr b/tests/components/devolo_home_network/snapshots/test_update.ambr index 6dfba2de9c1..106b8f9885c 100644 --- a/tests/components/devolo_home_network/snapshots/test_update.ambr +++ b/tests/components/devolo_home_network/snapshots/test_update.ambr @@ -39,6 +39,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/discovergy/snapshots/test_sensor.ambr b/tests/components/discovergy/snapshots/test_sensor.ambr index 2473af5012a..a107c44840d 100644 --- a/tests/components/discovergy/snapshots/test_sensor.ambr +++ b/tests/components/discovergy/snapshots/test_sensor.ambr @@ -16,6 +16,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -52,6 +54,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -103,6 +107,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -152,6 +158,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -188,6 +196,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ diff --git a/tests/components/drop_connect/snapshots/test_binary_sensor.ambr b/tests/components/drop_connect/snapshots/test_binary_sensor.ambr index f822cd5e252..045289f8c90 100644 --- a/tests/components/drop_connect/snapshots/test_binary_sensor.ambr +++ b/tests/components/drop_connect/snapshots/test_binary_sensor.ambr @@ -16,6 +16,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -61,6 +63,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -105,6 +109,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -150,6 +156,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -195,6 +203,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -240,6 +250,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -284,6 +296,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -329,6 +343,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/ecovacs/snapshots/test_binary_sensor.ambr b/tests/components/ecovacs/snapshots/test_binary_sensor.ambr index b42aeda6fcc..564323e91b2 100644 --- a/tests/components/ecovacs/snapshots/test_binary_sensor.ambr +++ b/tests/components/ecovacs/snapshots/test_binary_sensor.ambr @@ -16,6 +16,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -47,6 +49,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/ecovacs/snapshots/test_button.ambr b/tests/components/ecovacs/snapshots/test_button.ambr index 45b7ef1cc51..ce28500cb52 100644 --- a/tests/components/ecovacs/snapshots/test_button.ambr +++ b/tests/components/ecovacs/snapshots/test_button.ambr @@ -16,6 +16,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -59,6 +61,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -102,6 +106,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -145,6 +151,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/ecovacs/snapshots/test_init.ambr b/tests/components/ecovacs/snapshots/test_init.ambr index c5d34090204..f47e747b1cf 100644 --- a/tests/components/ecovacs/snapshots/test_init.ambr +++ b/tests/components/ecovacs/snapshots/test_init.ambr @@ -17,6 +17,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Ecovacs', 'model': 'DEEBOT OZMO 950 Series', 'name': 'Ozmo 950', diff --git a/tests/components/ecovacs/snapshots/test_number.ambr b/tests/components/ecovacs/snapshots/test_number.ambr index bb0d0b35f6a..be4234b86ec 100644 --- a/tests/components/ecovacs/snapshots/test_number.ambr +++ b/tests/components/ecovacs/snapshots/test_number.ambr @@ -21,6 +21,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/ecovacs/snapshots/test_select.ambr b/tests/components/ecovacs/snapshots/test_select.ambr index 4b01d448fd8..c9fb352da27 100644 --- a/tests/components/ecovacs/snapshots/test_select.ambr +++ b/tests/components/ecovacs/snapshots/test_select.ambr @@ -23,6 +23,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/ecovacs/snapshots/test_sensor.ambr b/tests/components/ecovacs/snapshots/test_sensor.ambr index f07722afb53..58961db3c25 100644 --- a/tests/components/ecovacs/snapshots/test_sensor.ambr +++ b/tests/components/ecovacs/snapshots/test_sensor.ambr @@ -16,6 +16,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -60,6 +62,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -105,6 +109,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor.private': dict({ @@ -153,6 +159,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -197,6 +205,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -241,6 +251,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -284,6 +296,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -328,6 +342,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -374,6 +390,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -421,6 +439,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor.private': dict({ @@ -472,6 +492,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -516,6 +538,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -559,6 +583,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/ecovacs/snapshots/test_switch.ambr b/tests/components/ecovacs/snapshots/test_switch.ambr index c645502a831..ddbcfed1347 100644 --- a/tests/components/ecovacs/snapshots/test_switch.ambr +++ b/tests/components/ecovacs/snapshots/test_switch.ambr @@ -16,6 +16,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -59,6 +61,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -102,6 +106,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/elgato/snapshots/test_button.ambr b/tests/components/elgato/snapshots/test_button.ambr index e145c0b82bc..36fcfb11801 100644 --- a/tests/components/elgato/snapshots/test_button.ambr +++ b/tests/components/elgato/snapshots/test_button.ambr @@ -29,6 +29,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -65,6 +67,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Elgato', 'model': 'Elgato Key Light Mini', 'name': 'Frenck', @@ -105,6 +109,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -141,6 +147,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Elgato', 'model': 'Elgato Key Light Mini', 'name': 'Frenck', diff --git a/tests/components/elgato/snapshots/test_light.ambr b/tests/components/elgato/snapshots/test_light.ambr index 727170128d1..a65f5c46b94 100644 --- a/tests/components/elgato/snapshots/test_light.ambr +++ b/tests/components/elgato/snapshots/test_light.ambr @@ -61,6 +61,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -97,6 +99,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Elgato', 'model': 'Elgato Key Light', 'name': 'Frenck', @@ -171,6 +175,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -207,6 +213,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Elgato', 'model': 'Elgato Key Light', 'name': 'Frenck', @@ -281,6 +289,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -317,6 +327,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Elgato', 'model': 'Elgato Key Light', 'name': 'Frenck', diff --git a/tests/components/elgato/snapshots/test_sensor.ambr b/tests/components/elgato/snapshots/test_sensor.ambr index 0322993ef99..0c6e593a2bc 100644 --- a/tests/components/elgato/snapshots/test_sensor.ambr +++ b/tests/components/elgato/snapshots/test_sensor.ambr @@ -33,6 +33,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -72,6 +74,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Elgato', 'model': 'Elgato Key Light Mini', 'name': 'Frenck', @@ -116,6 +120,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -158,6 +164,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Elgato', 'model': 'Elgato Key Light Mini', 'name': 'Frenck', @@ -202,6 +210,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -244,6 +254,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Elgato', 'model': 'Elgato Key Light Mini', 'name': 'Frenck', @@ -288,6 +300,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -327,6 +341,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Elgato', 'model': 'Elgato Key Light Mini', 'name': 'Frenck', @@ -371,6 +387,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -413,6 +431,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Elgato', 'model': 'Elgato Key Light Mini', 'name': 'Frenck', diff --git a/tests/components/elgato/snapshots/test_switch.ambr b/tests/components/elgato/snapshots/test_switch.ambr index d6b8896d5a2..962563599f6 100644 --- a/tests/components/elgato/snapshots/test_switch.ambr +++ b/tests/components/elgato/snapshots/test_switch.ambr @@ -29,6 +29,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -65,6 +67,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Elgato', 'model': 'Elgato Key Light Mini', 'name': 'Frenck', @@ -105,6 +109,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -141,6 +147,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Elgato', 'model': 'Elgato Key Light Mini', 'name': 'Frenck', diff --git a/tests/components/energyzero/snapshots/test_sensor.ambr b/tests/components/energyzero/snapshots/test_sensor.ambr index 00579ec7026..badbda7360b 100644 --- a/tests/components/energyzero/snapshots/test_sensor.ambr +++ b/tests/components/energyzero/snapshots/test_sensor.ambr @@ -487,6 +487,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -512,6 +514,8 @@ 'hw_version': None, 'id': , 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'EnergyZero', 'model': None, 'name': 'Energy market price', @@ -556,6 +560,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -581,6 +587,8 @@ 'hw_version': None, 'id': , 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'EnergyZero', 'model': None, 'name': 'Energy market price', @@ -622,6 +630,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -647,6 +657,8 @@ 'hw_version': None, 'id': , 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'EnergyZero', 'model': None, 'name': 'Energy market price', @@ -689,6 +701,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -714,6 +728,8 @@ 'hw_version': None, 'id': , 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'EnergyZero', 'model': None, 'name': 'Energy market price', @@ -755,6 +771,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -780,6 +798,8 @@ 'hw_version': None, 'id': , 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'EnergyZero', 'model': None, 'name': 'Energy market price', @@ -824,6 +844,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -849,6 +871,8 @@ 'hw_version': None, 'id': , 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'EnergyZero', 'model': None, 'name': 'Gas market price', diff --git a/tests/components/flexit_bacnet/snapshots/test_binary_sensor.ambr b/tests/components/flexit_bacnet/snapshots/test_binary_sensor.ambr index bf53de3569c..6d3ef4c1940 100644 --- a/tests/components/flexit_bacnet/snapshots/test_binary_sensor.ambr +++ b/tests/components/flexit_bacnet/snapshots/test_binary_sensor.ambr @@ -16,6 +16,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/flexit_bacnet/snapshots/test_climate.ambr b/tests/components/flexit_bacnet/snapshots/test_climate.ambr index f363c99f8f2..fc1d844e1ba 100644 --- a/tests/components/flexit_bacnet/snapshots/test_climate.ambr +++ b/tests/components/flexit_bacnet/snapshots/test_climate.ambr @@ -57,6 +57,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/flexit_bacnet/snapshots/test_number.ambr b/tests/components/flexit_bacnet/snapshots/test_number.ambr index 7808a62c6ac..1318166fb87 100644 --- a/tests/components/flexit_bacnet/snapshots/test_number.ambr +++ b/tests/components/flexit_bacnet/snapshots/test_number.ambr @@ -21,6 +21,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -75,6 +77,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -129,6 +133,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -183,6 +189,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -237,6 +245,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -291,6 +301,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -345,6 +357,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -399,6 +413,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -453,6 +469,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -507,6 +525,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -539,3 +559,563 @@ 'state': '60', }) # --- +# name: test_numbers[number.device_name_power_factor-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'max': 100, + 'min': 0, + 'mode': , + 'step': 1, + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'number', + 'entity_category': None, + 'entity_id': 'number.device_name_power_factor', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Power factor', + 'platform': 'flexit_bacnet', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'away_extract_fan_setpoint', + 'unique_id': '0000-0001-away_extract_fan_setpoint', + 'unit_of_measurement': '%', + }) +# --- +# name: test_numbers[number.device_name_power_factor-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power_factor', + 'friendly_name': 'Device Name Power factor', + 'max': 100, + 'min': 0, + 'mode': , + 'step': 1, + 'unit_of_measurement': '%', + }), + 'context': , + 'entity_id': 'number.device_name_power_factor', + 'last_changed': , + 'last_updated': , + 'state': '30', + }) +# --- +# name: test_numbers[number.device_name_power_factor_10-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'max': 100, + 'min': 0, + 'mode': , + 'step': 1, + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'number', + 'entity_category': None, + 'entity_id': 'number.device_name_power_factor_10', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Power factor', + 'platform': 'flexit_bacnet', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'home_supply_fan_setpoint', + 'unique_id': '0000-0001-home_supply_fan_setpoint', + 'unit_of_measurement': '%', + }) +# --- +# name: test_numbers[number.device_name_power_factor_10-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power_factor', + 'friendly_name': 'Device Name Power factor', + 'max': 100, + 'min': 0, + 'mode': , + 'step': 1, + 'unit_of_measurement': '%', + }), + 'context': , + 'entity_id': 'number.device_name_power_factor_10', + 'last_changed': , + 'last_updated': , + 'state': '60', + }) +# --- +# name: test_numbers[number.device_name_power_factor_2-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'max': 100, + 'min': 0, + 'mode': , + 'step': 1, + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'number', + 'entity_category': None, + 'entity_id': 'number.device_name_power_factor_2', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Power factor', + 'platform': 'flexit_bacnet', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'away_supply_fan_setpoint', + 'unique_id': '0000-0001-away_supply_fan_setpoint', + 'unit_of_measurement': '%', + }) +# --- +# name: test_numbers[number.device_name_power_factor_2-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power_factor', + 'friendly_name': 'Device Name Power factor', + 'max': 100, + 'min': 0, + 'mode': , + 'step': 1, + 'unit_of_measurement': '%', + }), + 'context': , + 'entity_id': 'number.device_name_power_factor_2', + 'last_changed': , + 'last_updated': , + 'state': '40', + }) +# --- +# name: test_numbers[number.device_name_power_factor_3-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'max': 100, + 'min': 0, + 'mode': , + 'step': 1, + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'number', + 'entity_category': None, + 'entity_id': 'number.device_name_power_factor_3', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Power factor', + 'platform': 'flexit_bacnet', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'cooker_hood_extract_fan_setpoint', + 'unique_id': '0000-0001-cooker_hood_extract_fan_setpoint', + 'unit_of_measurement': '%', + }) +# --- +# name: test_numbers[number.device_name_power_factor_3-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power_factor', + 'friendly_name': 'Device Name Power factor', + 'max': 100, + 'min': 0, + 'mode': , + 'step': 1, + 'unit_of_measurement': '%', + }), + 'context': , + 'entity_id': 'number.device_name_power_factor_3', + 'last_changed': , + 'last_updated': , + 'state': '90', + }) +# --- +# name: test_numbers[number.device_name_power_factor_4-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'max': 100, + 'min': 0, + 'mode': , + 'step': 1, + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'number', + 'entity_category': None, + 'entity_id': 'number.device_name_power_factor_4', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Power factor', + 'platform': 'flexit_bacnet', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'cooker_hood_supply_fan_setpoint', + 'unique_id': '0000-0001-cooker_hood_supply_fan_setpoint', + 'unit_of_measurement': '%', + }) +# --- +# name: test_numbers[number.device_name_power_factor_4-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power_factor', + 'friendly_name': 'Device Name Power factor', + 'max': 100, + 'min': 0, + 'mode': , + 'step': 1, + 'unit_of_measurement': '%', + }), + 'context': , + 'entity_id': 'number.device_name_power_factor_4', + 'last_changed': , + 'last_updated': , + 'state': '100', + }) +# --- +# name: test_numbers[number.device_name_power_factor_5-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'max': 100, + 'min': 0, + 'mode': , + 'step': 1, + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'number', + 'entity_category': None, + 'entity_id': 'number.device_name_power_factor_5', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Power factor', + 'platform': 'flexit_bacnet', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'fireplace_extract_fan_setpoint', + 'unique_id': '0000-0001-fireplace_extract_fan_setpoint', + 'unit_of_measurement': '%', + }) +# --- +# name: test_numbers[number.device_name_power_factor_5-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power_factor', + 'friendly_name': 'Device Name Power factor', + 'max': 100, + 'min': 0, + 'mode': , + 'step': 1, + 'unit_of_measurement': '%', + }), + 'context': , + 'entity_id': 'number.device_name_power_factor_5', + 'last_changed': , + 'last_updated': , + 'state': '10', + }) +# --- +# name: test_numbers[number.device_name_power_factor_6-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'max': 100, + 'min': 0, + 'mode': , + 'step': 1, + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'number', + 'entity_category': None, + 'entity_id': 'number.device_name_power_factor_6', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Power factor', + 'platform': 'flexit_bacnet', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'fireplace_supply_fan_setpoint', + 'unique_id': '0000-0001-fireplace_supply_fan_setpoint', + 'unit_of_measurement': '%', + }) +# --- +# name: test_numbers[number.device_name_power_factor_6-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power_factor', + 'friendly_name': 'Device Name Power factor', + 'max': 100, + 'min': 0, + 'mode': , + 'step': 1, + 'unit_of_measurement': '%', + }), + 'context': , + 'entity_id': 'number.device_name_power_factor_6', + 'last_changed': , + 'last_updated': , + 'state': '20', + }) +# --- +# name: test_numbers[number.device_name_power_factor_7-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'max': 100, + 'min': 0, + 'mode': , + 'step': 1, + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'number', + 'entity_category': None, + 'entity_id': 'number.device_name_power_factor_7', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Power factor', + 'platform': 'flexit_bacnet', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'high_extract_fan_setpoint', + 'unique_id': '0000-0001-high_extract_fan_setpoint', + 'unit_of_measurement': '%', + }) +# --- +# name: test_numbers[number.device_name_power_factor_7-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power_factor', + 'friendly_name': 'Device Name Power factor', + 'max': 100, + 'min': 0, + 'mode': , + 'step': 1, + 'unit_of_measurement': '%', + }), + 'context': , + 'entity_id': 'number.device_name_power_factor_7', + 'last_changed': , + 'last_updated': , + 'state': '70', + }) +# --- +# name: test_numbers[number.device_name_power_factor_8-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'max': 100, + 'min': 0, + 'mode': , + 'step': 1, + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'number', + 'entity_category': None, + 'entity_id': 'number.device_name_power_factor_8', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Power factor', + 'platform': 'flexit_bacnet', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'high_supply_fan_setpoint', + 'unique_id': '0000-0001-high_supply_fan_setpoint', + 'unit_of_measurement': '%', + }) +# --- +# name: test_numbers[number.device_name_power_factor_8-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power_factor', + 'friendly_name': 'Device Name Power factor', + 'max': 100, + 'min': 0, + 'mode': , + 'step': 1, + 'unit_of_measurement': '%', + }), + 'context': , + 'entity_id': 'number.device_name_power_factor_8', + 'last_changed': , + 'last_updated': , + 'state': '80', + }) +# --- +# name: test_numbers[number.device_name_power_factor_9-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'max': 100, + 'min': 0, + 'mode': , + 'step': 1, + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'number', + 'entity_category': None, + 'entity_id': 'number.device_name_power_factor_9', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Power factor', + 'platform': 'flexit_bacnet', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'home_extract_fan_setpoint', + 'unique_id': '0000-0001-home_extract_fan_setpoint', + 'unit_of_measurement': '%', + }) +# --- +# name: test_numbers[number.device_name_power_factor_9-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'power_factor', + 'friendly_name': 'Device Name Power factor', + 'max': 100, + 'min': 0, + 'mode': , + 'step': 1, + 'unit_of_measurement': '%', + }), + 'context': , + 'entity_id': 'number.device_name_power_factor_9', + 'last_changed': , + 'last_updated': , + 'state': '50', + }) +# --- diff --git a/tests/components/flexit_bacnet/snapshots/test_sensor.ambr b/tests/components/flexit_bacnet/snapshots/test_sensor.ambr index c1f8ad73eb1..55d1c525be6 100644 --- a/tests/components/flexit_bacnet/snapshots/test_sensor.ambr +++ b/tests/components/flexit_bacnet/snapshots/test_sensor.ambr @@ -18,6 +18,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -66,6 +68,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -116,6 +120,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -163,6 +169,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -208,6 +216,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -253,6 +263,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -300,6 +312,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -351,6 +365,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -398,6 +414,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -443,6 +461,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -490,6 +510,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -539,6 +561,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -586,6 +610,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -633,6 +659,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -678,6 +706,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/flexit_bacnet/snapshots/test_switch.ambr b/tests/components/flexit_bacnet/snapshots/test_switch.ambr index 73f069c8e26..5a7350f9728 100644 --- a/tests/components/flexit_bacnet/snapshots/test_switch.ambr +++ b/tests/components/flexit_bacnet/snapshots/test_switch.ambr @@ -16,6 +16,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/gardena_bluetooth/snapshots/test_init.ambr b/tests/components/gardena_bluetooth/snapshots/test_init.ambr index ae0bb9ace09..82e17896d60 100644 --- a/tests/components/gardena_bluetooth/snapshots/test_init.ambr +++ b/tests/components/gardena_bluetooth/snapshots/test_init.ambr @@ -17,6 +17,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': None, 'model': 'Mock Model', 'name': 'Mock Title', diff --git a/tests/components/glances/snapshots/test_sensor.ambr b/tests/components/glances/snapshots/test_sensor.ambr index d08064e8647..6918b8ccd13 100644 --- a/tests/components/glances/snapshots/test_sensor.ambr +++ b/tests/components/glances/snapshots/test_sensor.ambr @@ -18,6 +18,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -65,6 +67,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -113,6 +117,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -162,6 +168,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -210,6 +218,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -259,6 +269,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -307,6 +319,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -354,6 +368,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -401,6 +417,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -448,6 +466,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -495,6 +515,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -544,6 +566,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -592,6 +616,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -641,6 +667,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -690,6 +718,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -738,6 +768,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -786,6 +818,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -835,6 +869,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -883,6 +919,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/gree/snapshots/test_climate.ambr b/tests/components/gree/snapshots/test_climate.ambr index fa35b5c1111..e5d733bc6f0 100644 --- a/tests/components/gree/snapshots/test_climate.ambr +++ b/tests/components/gree/snapshots/test_climate.ambr @@ -102,6 +102,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/gree/snapshots/test_switch.ambr b/tests/components/gree/snapshots/test_switch.ambr index eff96ba1bd3..11ce7c5a060 100644 --- a/tests/components/gree/snapshots/test_switch.ambr +++ b/tests/components/gree/snapshots/test_switch.ambr @@ -78,6 +78,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -107,6 +109,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -136,6 +140,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -165,6 +171,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -194,6 +202,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/homekit_controller/snapshots/test_init.ambr b/tests/components/homekit_controller/snapshots/test_init.ambr index f4835ea77ff..2505f4de8e3 100644 --- a/tests/components/homekit_controller/snapshots/test_init.ambr +++ b/tests/components/homekit_controller/snapshots/test_init.ambr @@ -20,6 +20,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Sleekpoint Innovations', 'model': 'AP2', 'name': 'Airversa AP2 1808', @@ -44,6 +46,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -81,6 +85,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -119,6 +125,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -165,6 +173,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -211,6 +221,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -255,6 +267,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -295,6 +309,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -335,6 +351,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -383,6 +401,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -438,6 +458,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -484,6 +506,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -521,6 +545,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -558,6 +584,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -605,6 +633,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Anker', 'model': 'T8010', 'name': 'eufy HomeBase2-0AAA', @@ -629,6 +659,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -672,6 +704,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Anker', 'model': 'T8113', 'name': 'eufyCam2-0000', @@ -696,6 +730,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -733,6 +769,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -770,6 +808,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -809,6 +849,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -849,6 +891,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -892,6 +936,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Anker', 'model': 'T8113', 'name': 'eufyCam2-000A', @@ -916,6 +962,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -953,6 +1001,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -990,6 +1040,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1029,6 +1081,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1069,6 +1123,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1112,6 +1168,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Anker', 'model': 'T8113', 'name': 'eufyCam2-000A', @@ -1136,6 +1194,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1173,6 +1233,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1210,6 +1272,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1249,6 +1313,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1289,6 +1355,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1336,6 +1404,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Aqara', 'model': 'HE1-G01', 'name': 'Aqara-Hub-E1-00A0', @@ -1360,6 +1430,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1401,6 +1473,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1443,6 +1517,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1484,6 +1560,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1527,6 +1605,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Aqara', 'model': 'AS006', 'name': 'Contact Sensor', @@ -1551,6 +1631,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1588,6 +1670,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1627,6 +1711,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1677,6 +1763,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Aqara', 'model': 'ZHWA11LM', 'name': 'Aqara Hub-1563', @@ -1701,6 +1789,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1742,6 +1832,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1788,6 +1880,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1845,6 +1939,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1886,6 +1982,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1933,6 +2031,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Aqara', 'model': 'AR004', 'name': 'Programmable Switch', @@ -1957,6 +2057,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1996,6 +2098,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2046,6 +2150,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Netgear, Inc', 'model': 'ABC1000', 'name': 'ArloBabyA0', @@ -2070,6 +2176,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2107,6 +2215,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2144,6 +2254,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2190,6 +2302,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2244,6 +2358,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2284,6 +2400,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2326,6 +2444,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2367,6 +2487,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2406,6 +2528,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2443,6 +2567,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2490,6 +2616,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'ConnectSense', 'model': 'CS-IWO', 'name': 'InWall Outlet-0394DE', @@ -2514,6 +2642,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2553,6 +2683,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2594,6 +2726,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2635,6 +2769,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2676,6 +2812,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2717,6 +2855,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2758,6 +2898,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2797,6 +2939,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2834,6 +2978,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2881,6 +3027,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'ecobee Inc.', 'model': 'REMOTE SENSOR', 'name': 'Basement', @@ -2905,6 +3053,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2942,6 +3092,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2981,6 +3133,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3026,6 +3180,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'ecobee Inc.', 'model': 'ecobee3', 'name': 'HomeW', @@ -3050,6 +3206,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3087,6 +3245,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3124,6 +3284,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3160,6 +3322,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3208,6 +3372,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3268,6 +3434,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3314,6 +3482,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3357,6 +3527,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3398,6 +3570,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3443,6 +3617,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'ecobee Inc.', 'model': 'REMOTE SENSOR', 'name': 'Kitchen', @@ -3467,6 +3643,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3504,6 +3682,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3543,6 +3723,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3588,6 +3770,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'ecobee Inc.', 'model': 'REMOTE SENSOR', 'name': 'Porch', @@ -3612,6 +3796,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3649,6 +3835,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3688,6 +3876,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3737,6 +3927,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'ecobee Inc.', 'model': 'ecobee3', 'name': 'HomeW', @@ -3761,6 +3953,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3798,6 +3992,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3835,6 +4031,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3871,6 +4069,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3919,6 +4119,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3979,6 +4181,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4025,6 +4229,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4068,6 +4274,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4109,6 +4317,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4158,6 +4368,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'ecobee Inc.', 'model': 'REMOTE SENSOR', 'name': 'Basement', @@ -4182,6 +4394,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4219,6 +4433,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4262,6 +4478,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'ecobee Inc.', 'model': 'ecobee3', 'name': 'HomeW', @@ -4286,6 +4504,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4334,6 +4554,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4393,6 +4615,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4436,6 +4660,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4477,6 +4703,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4522,6 +4750,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'ecobee Inc.', 'model': 'REMOTE SENSOR', 'name': 'Kitchen', @@ -4546,6 +4776,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4583,6 +4815,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4622,6 +4856,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4667,6 +4903,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'ecobee Inc.', 'model': 'REMOTE SENSOR', 'name': 'Porch', @@ -4691,6 +4929,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4728,6 +4968,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4767,6 +5009,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4816,6 +5060,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'ecobee Inc.', 'model': 'ECB501', 'name': 'My ecobee', @@ -4840,6 +5086,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4877,6 +5125,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4914,6 +5164,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4950,6 +5202,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5002,6 +5256,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5067,6 +5323,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5113,6 +5371,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5156,6 +5416,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5197,6 +5459,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5246,6 +5510,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'ecobee Inc.', 'model': 'ecobee Switch+', 'name': 'Master Fan', @@ -5270,6 +5536,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5307,6 +5575,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5344,6 +5614,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5383,6 +5655,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5424,6 +5698,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5463,6 +5739,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5509,6 +5787,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Elgato', 'model': 'Eve Degree 00AAA0000', 'name': 'Eve Degree AA11', @@ -5533,6 +5813,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5575,6 +5857,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5621,6 +5905,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5664,6 +5950,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5705,6 +5993,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5747,6 +6037,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5788,6 +6080,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5837,6 +6131,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Elgato', 'model': 'Eve Energy 20EAO8601', 'name': 'Eve Energy 50FF', @@ -5861,6 +6157,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5900,6 +6198,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5941,6 +6241,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5982,6 +6284,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6023,6 +6327,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6062,6 +6368,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6099,6 +6407,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6146,6 +6456,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'José A. Jiménez Campos', 'model': 'RavenSystem HAA', 'name': 'HAA-C718B3', @@ -6170,6 +6482,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6207,6 +6521,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6244,6 +6560,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6283,6 +6601,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6330,6 +6650,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'José A. Jiménez Campos', 'model': 'RavenSystem HAA', 'name': 'HAA-C718B3', @@ -6354,6 +6676,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6391,6 +6715,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6437,6 +6763,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'RYSE Inc.', 'model': 'RYSE Shade', 'name': 'Family Room North', @@ -6461,6 +6789,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6498,6 +6828,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6538,6 +6870,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6584,6 +6918,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Home Assistant', 'model': 'Bridge', 'name': 'HASS Bridge S6', @@ -6608,6 +6944,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6651,6 +6989,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'RYSE Inc.', 'model': 'RYSE Shade', 'name': 'Kitchen Window', @@ -6675,6 +7015,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6712,6 +7054,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6752,6 +7096,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6802,6 +7148,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Home Assistant', 'model': 'Fan', 'name': 'Ceiling Fan', @@ -6826,6 +7174,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6865,6 +7215,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6912,6 +7264,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Home Assistant', 'model': 'Bridge', 'name': 'Home Assistant Bridge', @@ -6936,6 +7290,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6979,6 +7335,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Home Assistant', 'model': 'Fan', 'name': 'Living Room Fan', @@ -7003,6 +7361,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -7042,6 +7402,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -7094,6 +7456,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Lookin', 'model': 'Climate Control', 'name': '89 Living Room', @@ -7118,6 +7482,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -7165,6 +7531,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -7215,6 +7583,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -7262,6 +7632,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -7305,6 +7677,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -7346,6 +7720,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -7391,6 +7767,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Home Assistant', 'model': 'Bridge', 'name': 'HASS Bridge S6', @@ -7415,6 +7793,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -7462,6 +7842,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Home Assistant', 'model': 'Bridge', 'name': 'HASS Bridge S6', @@ -7486,6 +7868,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -7529,6 +7913,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'FirstAlert', 'model': '1039102', 'name': 'Laundry Smoke ED78', @@ -7553,6 +7939,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -7594,6 +7982,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -7638,6 +8028,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -7688,6 +8080,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'RYSE Inc.', 'model': 'RYSE Shade', 'name': 'Family Room North', @@ -7712,6 +8106,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -7749,6 +8145,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -7789,6 +8187,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -7835,6 +8235,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Home Assistant', 'model': 'Bridge', 'name': 'HASS Bridge S6', @@ -7859,6 +8261,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -7902,6 +8306,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'RYSE Inc.', 'model': 'RYSE Shade', 'name': 'Kitchen Window', @@ -7926,6 +8332,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -7963,6 +8371,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -8003,6 +8413,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -8053,6 +8465,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Home Assistant', 'model': 'Fan', 'name': 'Ceiling Fan', @@ -8077,6 +8491,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -8116,6 +8532,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -8163,6 +8581,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Home Assistant', 'model': 'Bridge', 'name': 'Home Assistant Bridge', @@ -8187,6 +8607,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -8230,6 +8652,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Home Assistant', 'model': 'Fan', 'name': 'Living Room Fan', @@ -8254,6 +8678,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -8293,6 +8719,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -8346,6 +8774,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Home Assistant', 'model': 'Bridge', 'name': 'Home Assistant Bridge', @@ -8370,6 +8800,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -8413,6 +8845,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Home Assistant', 'model': 'Fan', 'name': 'Living Room Fan', @@ -8437,6 +8871,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -8476,6 +8912,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -8529,6 +8967,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Lookin', 'model': 'Climate Control', 'name': '89 Living Room', @@ -8553,6 +8993,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -8604,6 +9046,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -8659,6 +9103,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -8706,6 +9152,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -8749,6 +9197,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -8790,6 +9240,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -8835,6 +9287,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Home Assistant', 'model': 'Bridge', 'name': 'HASS Bridge S6', @@ -8859,6 +9313,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -8906,6 +9362,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Home Assistant', 'model': 'Bridge', 'name': 'HASS Bridge S6', @@ -8930,6 +9388,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -8973,6 +9433,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'switchbot', 'model': 'WoHumi', 'name': 'Humidifier 182A', @@ -8997,6 +9459,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9041,6 +9505,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9090,6 +9556,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9139,6 +9607,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Home Assistant', 'model': 'Bridge', 'name': 'HASS Bridge S6', @@ -9163,6 +9633,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9206,6 +9678,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'switchbot', 'model': 'WoHumi', 'name': 'Humidifier 182A', @@ -9230,6 +9704,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9274,6 +9750,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9323,6 +9801,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9372,6 +9852,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Home Assistant', 'model': 'Bridge', 'name': 'HASS Bridge S6', @@ -9396,6 +9878,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9439,6 +9923,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'FirstAlert', 'model': '1039102', 'name': 'Laundry Smoke ED78', @@ -9463,6 +9949,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9509,6 +9997,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9563,6 +10053,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9613,6 +10105,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Garzola Marco', 'model': 'Daikin-fwec3a-esp32-homekit-bridge', 'name': 'Air Conditioner', @@ -9637,6 +10131,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9690,6 +10186,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9748,6 +10246,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9797,6 +10297,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LTW012', 'name': 'Hue ambiance candle', @@ -9821,6 +10323,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9866,6 +10370,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9923,6 +10429,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LTW012', 'name': 'Hue ambiance candle', @@ -9947,6 +10455,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9992,6 +10502,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10049,6 +10561,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LTW012', 'name': 'Hue ambiance candle', @@ -10073,6 +10587,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10118,6 +10634,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10175,6 +10693,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LTW012', 'name': 'Hue ambiance candle', @@ -10199,6 +10719,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10244,6 +10766,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10301,6 +10825,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LTW013', 'name': 'Hue ambiance spot', @@ -10325,6 +10851,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10370,6 +10898,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10437,6 +10967,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LTW013', 'name': 'Hue ambiance spot', @@ -10461,6 +10993,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10506,6 +11040,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10573,6 +11109,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'RWL021', 'name': 'Hue dimmer switch', @@ -10597,6 +11135,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10638,6 +11178,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10683,6 +11225,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10728,6 +11272,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10773,6 +11319,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10816,6 +11364,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10862,6 +11412,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LWB010', 'name': 'Hue white lamp', @@ -10886,6 +11438,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10927,6 +11481,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10975,6 +11531,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LWB010', 'name': 'Hue white lamp', @@ -10999,6 +11557,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11040,6 +11600,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11088,6 +11650,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LWB010', 'name': 'Hue white lamp', @@ -11112,6 +11676,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11153,6 +11719,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11201,6 +11769,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LWB010', 'name': 'Hue white lamp', @@ -11225,6 +11795,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11266,6 +11838,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11314,6 +11888,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LWB010', 'name': 'Hue white lamp', @@ -11338,6 +11914,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11379,6 +11957,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11427,6 +12007,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LWB010', 'name': 'Hue white lamp', @@ -11451,6 +12033,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11492,6 +12076,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11540,6 +12126,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LWB010', 'name': 'Hue white lamp', @@ -11564,6 +12152,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11605,6 +12195,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11653,6 +12245,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips Lighting', 'model': 'BSB002', 'name': 'Philips hue - 482544', @@ -11677,6 +12271,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11724,6 +12320,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Koogeek', 'model': 'LS1', 'name': 'Koogeek-LS1-20833F', @@ -11748,6 +12346,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11794,6 +12394,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11856,6 +12458,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Koogeek', 'model': 'P1EU', 'name': 'Koogeek-P1-A00AA0', @@ -11880,6 +12484,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11919,6 +12525,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11958,6 +12566,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12005,6 +12615,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Koogeek', 'model': 'KH02CN', 'name': 'Koogeek-SW2-187A91', @@ -12029,6 +12641,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12068,6 +12682,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12107,6 +12723,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12143,6 +12761,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12189,6 +12809,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Lennox', 'model': 'E30 2B', 'name': 'Lennox', @@ -12213,6 +12835,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12259,6 +12883,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12315,6 +12941,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12358,6 +12986,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12399,6 +13029,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12448,6 +13080,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'LG Electronics', 'model': 'OLED55B9PUA', 'name': 'LG webOS TV AF80', @@ -12472,6 +13106,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12519,6 +13155,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12567,6 +13205,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12614,6 +13254,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Lutron Electronics Co., Inc', 'model': 'PD-FSQN-XX', 'name': 'Caséta® Wireless Fan Speed Control', @@ -12638,6 +13280,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12677,6 +13321,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12724,6 +13370,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Lutron Electronics Co., Inc', 'model': 'L-BDG2-WH', 'name': 'Smart Bridge 2', @@ -12748,6 +13396,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12795,6 +13445,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Meross', 'model': 'MSS425F', 'name': 'MSS425F-15cc', @@ -12819,6 +13471,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12856,6 +13510,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12892,6 +13548,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12928,6 +13586,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12964,6 +13624,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13000,6 +13662,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13046,6 +13710,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Meross', 'model': 'MSS565', 'name': 'MSS565-28da', @@ -13070,6 +13736,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13111,6 +13779,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13163,6 +13833,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Empowered Homes Inc.', 'model': 'v1', 'name': 'Mysa-85dda9', @@ -13187,6 +13859,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13233,6 +13907,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13286,6 +13962,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13333,6 +14011,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13376,6 +14056,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13417,6 +14099,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13466,6 +14150,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Nanoleaf', 'model': 'NL55', 'name': 'Nanoleaf Strip 3B32', @@ -13490,6 +14176,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13527,6 +14215,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13572,6 +14262,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13643,6 +14335,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13698,6 +14392,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13754,6 +14450,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Netatmo', 'model': 'Netatmo Doorbell', 'name': 'Netatmo-Doorbell-g738658', @@ -13778,6 +14476,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13815,6 +14515,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13852,6 +14554,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13895,6 +14599,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13938,6 +14644,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13975,6 +14683,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14022,6 +14732,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Netatmo', 'model': 'Smart CO Alarm', 'name': 'Smart CO Alarm', @@ -14046,6 +14758,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14083,6 +14797,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14120,6 +14836,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14167,6 +14885,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Netatmo', 'model': 'Healthy Home Coach', 'name': 'Healthy Home Coach', @@ -14191,6 +14911,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14230,6 +14952,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14270,6 +14994,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14311,6 +15037,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14352,6 +15080,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14393,6 +15123,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14442,6 +15174,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Green Electronics LLC', 'model': 'SPK5 Pro', 'name': 'RainMachine-00ce4a', @@ -14466,6 +15200,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14503,6 +15239,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14543,6 +15281,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14583,6 +15323,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14623,6 +15365,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14663,6 +15407,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14703,6 +15449,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14743,6 +15491,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14783,6 +15533,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14833,6 +15585,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'RYSE Inc.', 'model': 'RYSE Shade', 'name': 'Master Bath South', @@ -14857,6 +15611,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14894,6 +15650,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14934,6 +15692,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14980,6 +15740,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'RYSE Inc.', 'model': 'RYSE SmartBridge', 'name': 'RYSE SmartBridge', @@ -15004,6 +15766,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15047,6 +15811,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'RYSE Inc.', 'model': 'RYSE Shade', 'name': 'RYSE SmartShade', @@ -15071,6 +15837,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15108,6 +15876,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15148,6 +15918,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15198,6 +15970,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'RYSE Inc.', 'model': 'RYSE Shade', 'name': 'BR Left', @@ -15222,6 +15996,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15259,6 +16035,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15299,6 +16077,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15345,6 +16125,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'RYSE Inc.', 'model': 'RYSE Shade', 'name': 'LR Left', @@ -15369,6 +16151,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15406,6 +16190,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15446,6 +16232,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15492,6 +16280,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'RYSE Inc.', 'model': 'RYSE Shade', 'name': 'LR Right', @@ -15516,6 +16306,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15553,6 +16345,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15593,6 +16387,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15639,6 +16435,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'RYSE Inc.', 'model': 'RYSE SmartBridge', 'name': 'RYSE SmartBridge', @@ -15663,6 +16461,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15706,6 +16506,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'RYSE Inc.', 'model': 'RYSE Shade', 'name': 'RZSS', @@ -15730,6 +16532,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15767,6 +16571,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15807,6 +16613,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15857,6 +16665,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Schlage ', 'model': 'BE479CAM619', 'name': 'SENSE ', @@ -15881,6 +16691,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15918,6 +16730,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15965,6 +16779,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Hunter Fan', 'model': 'SIMPLEconnect', 'name': 'SIMPLEconnect Fan-06F674', @@ -15989,6 +16805,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16028,6 +16846,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16074,6 +16894,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16126,6 +16948,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'VELUX', 'model': 'VELUX Gateway', 'name': 'VELUX Gateway', @@ -16150,6 +16974,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16193,6 +17019,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'VELUX', 'model': 'VELUX Sensor', 'name': 'VELUX Sensor', @@ -16217,6 +17045,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16256,6 +17086,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16297,6 +17129,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16338,6 +17172,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16383,6 +17219,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'VELUX', 'model': 'VELUX Window', 'name': 'VELUX Window', @@ -16407,6 +17245,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16444,6 +17284,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16493,6 +17335,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'VOCOlinc', 'model': 'Flowerbud', 'name': 'VOCOlinc-Flowerbud-0d324b', @@ -16517,6 +17361,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16561,6 +17407,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16617,6 +17465,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16684,6 +17534,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16727,6 +17579,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16776,6 +17630,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'VOCOlinc', 'model': 'VP3', 'name': 'VOCOlinc-VP3-123456', @@ -16800,6 +17656,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16839,6 +17697,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16878,6 +17738,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), diff --git a/tests/components/homewizard/snapshots/test_button.ambr b/tests/components/homewizard/snapshots/test_button.ambr index 2e6422f7a2d..4bcda8f38ac 100644 --- a/tests/components/homewizard/snapshots/test_button.ambr +++ b/tests/components/homewizard/snapshots/test_button.ambr @@ -29,6 +29,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -65,6 +67,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', diff --git a/tests/components/homewizard/snapshots/test_number.ambr b/tests/components/homewizard/snapshots/test_number.ambr index fc1c3c74a03..4ac6525dd72 100644 --- a/tests/components/homewizard/snapshots/test_number.ambr +++ b/tests/components/homewizard/snapshots/test_number.ambr @@ -38,6 +38,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -74,6 +76,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-SKT', 'name': 'Device', diff --git a/tests/components/homewizard/snapshots/test_sensor.ambr b/tests/components/homewizard/snapshots/test_sensor.ambr index f3a78d14d5b..967b4e5fda7 100644 --- a/tests/components/homewizard/snapshots/test_sensor.ambr +++ b/tests/components/homewizard/snapshots/test_sensor.ambr @@ -202,6 +202,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -238,6 +240,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH1', 'name': 'Device', @@ -267,6 +271,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -318,6 +324,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH1', 'name': 'Device', @@ -347,6 +355,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -398,6 +408,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH1', 'name': 'Device', @@ -427,6 +439,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -478,6 +492,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH1', 'name': 'Device', @@ -507,6 +523,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -558,6 +576,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH1', 'name': 'Device', @@ -587,6 +607,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -638,6 +660,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH1', 'name': 'Device', @@ -667,6 +691,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -721,6 +747,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH1', 'name': 'Device', @@ -750,6 +778,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -801,6 +831,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH1', 'name': 'Device', @@ -830,6 +862,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -881,6 +915,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH1', 'name': 'Device', @@ -910,6 +946,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -961,6 +999,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH1', 'name': 'Device', @@ -988,6 +1028,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1036,6 +1078,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH1', 'name': 'Device', @@ -1065,6 +1109,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1115,6 +1161,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -1144,6 +1192,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1195,6 +1245,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -1224,6 +1276,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1275,6 +1329,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -1304,6 +1360,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1355,6 +1413,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -1384,6 +1444,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1435,6 +1497,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -1464,6 +1528,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1515,6 +1581,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -1544,6 +1612,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1595,6 +1665,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -1624,6 +1696,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1675,6 +1749,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -1704,6 +1780,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1755,6 +1833,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -1784,6 +1864,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1835,6 +1917,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -1864,6 +1948,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1915,6 +2001,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -1944,6 +2032,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1995,6 +2085,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -2024,6 +2116,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -2078,6 +2172,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -2107,6 +2203,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2158,6 +2256,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -2187,6 +2287,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2238,6 +2340,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -2267,6 +2371,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2318,6 +2424,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -2347,6 +2455,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -2401,6 +2511,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -2430,6 +2542,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -2484,6 +2598,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -2513,6 +2629,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -2567,6 +2685,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -2596,6 +2716,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2647,6 +2769,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -2676,6 +2800,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2727,6 +2853,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -2756,6 +2884,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2807,6 +2937,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -2836,6 +2968,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2887,6 +3021,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -2916,6 +3052,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2967,6 +3105,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -2996,6 +3136,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3047,6 +3189,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -3076,6 +3220,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3127,6 +3273,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -3154,6 +3302,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3202,6 +3352,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -3231,6 +3383,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4418,6 +4572,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -4445,6 +4601,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4495,6 +4653,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -4524,6 +4684,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4575,6 +4737,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -4604,6 +4768,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4655,6 +4821,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -4684,6 +4852,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4735,6 +4905,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -4762,6 +4934,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4810,6 +4984,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -4839,6 +5015,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4890,6 +5068,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -4919,6 +5099,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4970,6 +5152,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -4999,6 +5183,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5050,6 +5236,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -5079,6 +5267,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5130,6 +5320,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -5159,6 +5351,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5210,6 +5404,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -5239,6 +5435,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5290,6 +5488,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -5319,6 +5519,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5370,6 +5572,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -5399,6 +5603,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5450,6 +5656,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -5479,6 +5687,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5530,6 +5740,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -5559,6 +5771,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5610,6 +5824,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -5639,6 +5855,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5765,6 +5983,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -5792,6 +6012,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5840,6 +6062,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -5867,6 +6091,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5917,6 +6143,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -5946,6 +6174,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -6000,6 +6230,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -6027,6 +6259,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -6075,6 +6309,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -6104,6 +6340,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -6158,6 +6396,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -6187,6 +6427,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -6241,6 +6483,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -6270,6 +6514,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -6324,6 +6570,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -6351,6 +6599,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -6399,6 +6649,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -6426,6 +6678,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -6474,6 +6728,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -6508,6 +6764,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -7443,6 +7701,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -7472,6 +7732,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -7523,6 +7785,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -7552,6 +7816,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -7603,6 +7869,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -7632,6 +7900,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -7683,6 +7953,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -7712,6 +7984,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -7763,6 +8037,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -7790,6 +8066,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -7838,6 +8116,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -7865,6 +8145,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -7913,6 +8195,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -7940,6 +8224,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -7988,6 +8274,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -8015,6 +8303,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -8063,6 +8353,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -8090,6 +8382,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -8138,6 +8432,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -8165,6 +8461,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -8213,6 +8511,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -8242,6 +8542,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -8292,6 +8594,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -8319,6 +8623,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -8367,6 +8673,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -8396,6 +8704,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -8514,6 +8824,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Gas meter', @@ -8543,6 +8855,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -8738,6 +9052,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Heat meter', @@ -8767,6 +9083,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -8962,6 +9280,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Inlet heat meter', @@ -8991,6 +9311,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -9260,6 +9582,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Warm water meter', @@ -9289,6 +9613,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -9484,6 +9810,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Water meter', @@ -9513,6 +9841,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -10612,6 +10942,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -10639,6 +10971,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -10689,6 +11023,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -10718,6 +11054,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -10769,6 +11107,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -10798,6 +11138,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -10849,6 +11191,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -10878,6 +11222,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -10929,6 +11275,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -10958,6 +11306,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -11009,6 +11359,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -11038,6 +11390,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -11089,6 +11443,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -11118,6 +11474,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -11169,6 +11527,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -11198,6 +11558,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -11249,6 +11611,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -11278,6 +11642,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -11329,6 +11695,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -11358,6 +11726,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -11409,6 +11779,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -11438,6 +11810,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -11489,6 +11863,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -11518,6 +11894,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -11569,6 +11947,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -11598,6 +11978,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -11649,6 +12031,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -11678,6 +12062,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -11729,6 +12115,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -11758,6 +12146,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -11809,6 +12199,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -11836,6 +12228,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -11961,6 +12355,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -11990,6 +12386,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -12044,6 +12442,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -12071,6 +12471,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -12119,6 +12521,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -12148,6 +12552,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -12202,6 +12608,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -12231,6 +12639,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -12285,6 +12695,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -12314,6 +12726,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -13248,6 +13662,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -13277,6 +13693,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -13328,6 +13746,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -13357,6 +13777,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -13408,6 +13830,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -13437,6 +13861,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -13488,6 +13914,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -13517,6 +13945,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -13568,6 +13998,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -13595,6 +14027,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -13643,6 +14077,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -13670,6 +14106,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -13718,6 +14156,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -13745,6 +14185,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -13793,6 +14235,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -13820,6 +14264,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -13868,6 +14314,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -13895,6 +14343,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -13943,6 +14393,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -13970,6 +14422,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -14018,6 +14472,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -14047,6 +14503,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -14263,6 +14721,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-SKT', 'name': 'Device', @@ -14292,6 +14752,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -14343,6 +14805,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-SKT', 'name': 'Device', @@ -14372,6 +14836,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -14423,6 +14889,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-SKT', 'name': 'Device', @@ -14452,6 +14920,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -14506,6 +14976,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-SKT', 'name': 'Device', @@ -14535,6 +15007,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -14749,6 +15223,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-SKT', 'name': 'Device', @@ -14776,6 +15252,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -14824,6 +15302,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-SKT', 'name': 'Device', @@ -14853,6 +15333,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -14982,6 +15464,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-WTR', 'name': 'Device', @@ -15011,6 +15495,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -15062,6 +15548,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-WTR', 'name': 'Device', @@ -15091,6 +15579,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -15141,6 +15631,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-WTR', 'name': 'Device', @@ -15168,6 +15660,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -15216,6 +15710,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-WTR', 'name': 'Device', @@ -15245,6 +15741,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -15942,6 +16440,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM230-wifi', 'name': 'Device', @@ -15971,6 +16471,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -16022,6 +16524,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM230-wifi', 'name': 'Device', @@ -16051,6 +16555,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -16102,6 +16608,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM230-wifi', 'name': 'Device', @@ -16131,6 +16639,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -16182,6 +16692,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM230-wifi', 'name': 'Device', @@ -16211,6 +16723,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -16262,6 +16776,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM230-wifi', 'name': 'Device', @@ -16291,6 +16807,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -16342,6 +16860,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM230-wifi', 'name': 'Device', @@ -16371,6 +16891,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -16425,6 +16947,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM230-wifi', 'name': 'Device', @@ -16454,6 +16978,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -16588,6 +17114,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM230-wifi', 'name': 'Device', @@ -16617,6 +17145,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -16828,6 +17358,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM230-wifi', 'name': 'Device', @@ -16857,6 +17389,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -16908,6 +17442,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM230-wifi', 'name': 'Device', @@ -16935,6 +17471,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -16983,6 +17521,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM230-wifi', 'name': 'Device', @@ -17012,6 +17552,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -18917,6 +19459,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -18946,6 +19490,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -18997,6 +19543,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19026,6 +19574,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -19077,6 +19627,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19106,6 +19658,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -19157,6 +19711,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19186,6 +19742,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -19237,6 +19795,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19266,6 +19826,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -19317,6 +19879,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19346,6 +19910,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -19397,6 +19963,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19426,6 +19994,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -19477,6 +20047,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19506,6 +20078,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -19557,6 +20131,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19586,6 +20162,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -19637,6 +20215,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19666,6 +20246,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -19717,6 +20299,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19746,6 +20330,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -19797,6 +20383,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19826,6 +20414,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -19880,6 +20470,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19909,6 +20501,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -19960,6 +20554,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19989,6 +20585,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -20040,6 +20638,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -20069,6 +20669,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -20120,6 +20722,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -20149,6 +20753,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -20203,6 +20809,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -20232,6 +20840,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -20286,6 +20896,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -20315,6 +20927,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -20369,6 +20983,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -20398,6 +21014,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -20449,6 +21067,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -20478,6 +21098,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -20529,6 +21151,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -20558,6 +21182,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -20609,6 +21235,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -20638,6 +21266,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -20849,6 +21479,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -20878,6 +21510,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -20929,6 +21563,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -20958,6 +21594,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -21009,6 +21647,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -21038,6 +21678,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -21089,6 +21731,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -21116,6 +21760,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -21164,6 +21810,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -21193,6 +21841,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/homewizard/snapshots/test_switch.ambr b/tests/components/homewizard/snapshots/test_switch.ambr index c8591b1f1d9..55d327c2244 100644 --- a/tests/components/homewizard/snapshots/test_switch.ambr +++ b/tests/components/homewizard/snapshots/test_switch.ambr @@ -28,6 +28,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -64,6 +66,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH1', 'name': 'Device', @@ -103,6 +107,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -139,6 +145,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-KWH3', 'name': 'Device', @@ -179,6 +187,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -215,6 +225,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-SKT', 'name': 'Device', @@ -254,6 +266,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -290,6 +304,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-SKT', 'name': 'Device', @@ -329,6 +345,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -365,6 +383,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-SKT', 'name': 'Device', @@ -404,6 +424,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -440,6 +462,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM230-wifi', 'name': 'Device', @@ -479,6 +503,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -515,6 +541,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', diff --git a/tests/components/kitchen_sink/snapshots/test_switch.ambr b/tests/components/kitchen_sink/snapshots/test_switch.ambr index 099309c8f88..b95bc551a56 100644 --- a/tests/components/kitchen_sink/snapshots/test_switch.ambr +++ b/tests/components/kitchen_sink/snapshots/test_switch.ambr @@ -28,6 +28,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -60,6 +62,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': None, 'model': None, 'name': 'Outlet 1', @@ -88,6 +92,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': None, 'model': None, 'name': '2CH Power strip', @@ -127,6 +133,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -159,6 +167,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': None, 'model': None, 'name': 'Outlet 2', @@ -187,6 +197,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': None, 'model': None, 'name': '2CH Power strip', diff --git a/tests/components/lamarzocco/snapshots/test_binary_sensor.ambr b/tests/components/lamarzocco/snapshots/test_binary_sensor.ambr index 12acc6757e2..c05610a47a2 100644 --- a/tests/components/lamarzocco/snapshots/test_binary_sensor.ambr +++ b/tests/components/lamarzocco/snapshots/test_binary_sensor.ambr @@ -29,6 +29,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -73,6 +75,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/lamarzocco/snapshots/test_button.ambr b/tests/components/lamarzocco/snapshots/test_button.ambr index 2f15c70c8cc..5cd38d914b7 100644 --- a/tests/components/lamarzocco/snapshots/test_button.ambr +++ b/tests/components/lamarzocco/snapshots/test_button.ambr @@ -28,6 +28,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/lamarzocco/snapshots/test_number.ambr b/tests/components/lamarzocco/snapshots/test_number.ambr index f7f5b2191cf..2ff24c4d5bf 100644 --- a/tests/components/lamarzocco/snapshots/test_number.ambr +++ b/tests/components/lamarzocco/snapshots/test_number.ambr @@ -39,6 +39,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -93,6 +95,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -147,6 +151,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -201,6 +207,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -255,6 +263,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -593,6 +603,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -647,6 +659,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -701,6 +715,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -755,6 +771,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -809,6 +827,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -863,6 +883,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/lamarzocco/snapshots/test_select.ambr b/tests/components/lamarzocco/snapshots/test_select.ambr index 4f64eafb855..e592d25c85c 100644 --- a/tests/components/lamarzocco/snapshots/test_select.ambr +++ b/tests/components/lamarzocco/snapshots/test_select.ambr @@ -39,6 +39,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -93,6 +95,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -147,6 +151,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -201,6 +207,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/lamarzocco/snapshots/test_sensor.ambr b/tests/components/lamarzocco/snapshots/test_sensor.ambr index e0b04289f7c..a97244f5472 100644 --- a/tests/components/lamarzocco/snapshots/test_sensor.ambr +++ b/tests/components/lamarzocco/snapshots/test_sensor.ambr @@ -18,6 +18,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -69,6 +71,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -120,6 +124,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -168,6 +174,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -215,6 +223,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/lamarzocco/snapshots/test_switch.ambr b/tests/components/lamarzocco/snapshots/test_switch.ambr index 789e979894e..7e6edb148b2 100644 --- a/tests/components/lamarzocco/snapshots/test_switch.ambr +++ b/tests/components/lamarzocco/snapshots/test_switch.ambr @@ -17,6 +17,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'La Marzocco', 'model': 'GS3 AV', 'name': 'GS01234', @@ -56,6 +58,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -99,6 +103,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -142,6 +148,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/lamarzocco/snapshots/test_update.ambr b/tests/components/lamarzocco/snapshots/test_update.ambr index a1ee4de2c4b..bd7ccc2cf59 100644 --- a/tests/components/lamarzocco/snapshots/test_update.ambr +++ b/tests/components/lamarzocco/snapshots/test_update.ambr @@ -39,6 +39,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -93,6 +95,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/netatmo/snapshots/test_camera.ambr b/tests/components/netatmo/snapshots/test_camera.ambr index bf77abeb151..d989d029aa8 100644 --- a/tests/components/netatmo/snapshots/test_camera.ambr +++ b/tests/components/netatmo/snapshots/test_camera.ambr @@ -16,6 +16,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -74,6 +76,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -132,6 +136,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/netatmo/snapshots/test_climate.ambr b/tests/components/netatmo/snapshots/test_climate.ambr index db02a4300cd..32f9209c3c2 100644 --- a/tests/components/netatmo/snapshots/test_climate.ambr +++ b/tests/components/netatmo/snapshots/test_climate.ambr @@ -30,6 +30,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -102,6 +104,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -180,6 +184,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -257,6 +263,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -336,6 +344,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/netatmo/snapshots/test_cover.ambr b/tests/components/netatmo/snapshots/test_cover.ambr index c83ae61b4c2..c05e246c02c 100644 --- a/tests/components/netatmo/snapshots/test_cover.ambr +++ b/tests/components/netatmo/snapshots/test_cover.ambr @@ -16,6 +16,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -63,6 +65,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/netatmo/snapshots/test_fan.ambr b/tests/components/netatmo/snapshots/test_fan.ambr index 3b94257d983..d750dffb1fe 100644 --- a/tests/components/netatmo/snapshots/test_fan.ambr +++ b/tests/components/netatmo/snapshots/test_fan.ambr @@ -21,6 +21,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/netatmo/snapshots/test_init.ambr b/tests/components/netatmo/snapshots/test_init.ambr index 589d888936b..febc6f95bc6 100644 --- a/tests/components/netatmo/snapshots/test_init.ambr +++ b/tests/components/netatmo/snapshots/test_init.ambr @@ -17,6 +17,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Bubbendorf', 'model': 'Roller Shutter', 'name': 'Entrance Blinds', @@ -45,6 +47,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Bubbendorf', 'model': 'Orientable Shutter', 'name': 'Bubendorff blind', @@ -73,6 +77,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Legrand', 'model': '2 wire light switch/dimmer', 'name': 'Unknown 00:11:22:33:00:11:45:fe', @@ -101,6 +107,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Smarther', 'model': 'Smarther with Netatmo', 'name': '', @@ -129,6 +137,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Legrand', 'model': 'Connected Energy Meter', 'name': '', @@ -157,6 +167,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Legrand', 'model': 'Light switch/dimmer with neutral', 'name': 'Bathroom light', @@ -185,6 +197,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Legrand', 'model': 'Connected Ecometer', 'name': '', @@ -213,6 +227,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Legrand', 'model': 'Connected Ecometer', 'name': '', @@ -241,6 +257,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Legrand', 'model': 'Connected Ecometer', 'name': '', @@ -269,6 +287,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Legrand', 'model': 'Connected Ecometer', 'name': '', @@ -297,6 +317,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Legrand', 'model': 'Connected Ecometer', 'name': '', @@ -325,6 +347,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Legrand', 'model': 'Connected Ecometer', 'name': '', @@ -353,6 +377,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Legrand', 'model': 'Connected Ecometer', 'name': '', @@ -381,6 +407,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Legrand', 'model': 'Connected Ecometer', 'name': '', @@ -409,6 +437,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Legrand', 'model': 'Connected Ecometer', 'name': '', @@ -437,6 +467,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Legrand', 'model': 'Connected Ecometer', 'name': '', @@ -465,6 +497,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Netatmo', 'model': 'Smart Indoor Camera', 'name': 'Hall', @@ -493,6 +527,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Netatmo', 'model': 'Smart Anemometer', 'name': 'Villa Garden', @@ -521,6 +557,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Netatmo', 'model': 'Smart Outdoor Camera', 'name': 'Front', @@ -549,6 +587,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Netatmo', 'model': 'Smart Video Doorbell', 'name': 'Netatmo-Doorbell', @@ -577,6 +617,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Netatmo', 'model': 'Smart Indoor Air Quality Monitor', 'name': 'Kitchen', @@ -605,6 +647,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Netatmo', 'model': 'Smart Indoor Air Quality Monitor', 'name': 'Livingroom', @@ -633,6 +677,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Netatmo', 'model': 'Smart Indoor Air Quality Monitor', 'name': 'Baby Bedroom', @@ -661,6 +707,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Netatmo', 'model': 'Smart Indoor Air Quality Monitor', 'name': 'Bedroom', @@ -689,6 +737,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Netatmo', 'model': 'Smart Indoor Air Quality Monitor', 'name': 'Parents Bedroom', @@ -717,6 +767,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Legrand', 'model': 'Plug', 'name': '', @@ -745,6 +797,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Netatmo', 'model': 'Smart Outdoor Module', 'name': 'Villa Outdoor', @@ -773,6 +827,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Netatmo', 'model': 'Smart Indoor Module', 'name': 'Villa Bedroom', @@ -801,6 +857,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Netatmo', 'model': 'Smart Indoor Module', 'name': 'Villa Bathroom', @@ -829,6 +887,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Netatmo', 'model': 'Smart Home Weather station', 'name': 'Villa', @@ -857,6 +917,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Netatmo', 'model': 'Smart Rain Gauge', 'name': 'Villa Rain', @@ -885,6 +947,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Netatmo', 'model': 'OpenTherm Modulating Thermostat', 'name': '', @@ -913,6 +977,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Netatmo', 'model': 'Smart Thermostat', 'name': '', @@ -941,6 +1007,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Netatmo', 'model': 'Smart Valve', 'name': '', @@ -969,6 +1037,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Netatmo', 'model': 'Smart Valve', 'name': '', @@ -997,6 +1067,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Netatmo', 'model': 'Public Weather station', 'name': 'Home avg', @@ -1025,6 +1097,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Netatmo', 'model': 'Public Weather station', 'name': 'Home max', @@ -1053,6 +1127,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Netatmo', 'model': 'Smart Thermostat', 'name': 'MYHOME', diff --git a/tests/components/netatmo/snapshots/test_light.ambr b/tests/components/netatmo/snapshots/test_light.ambr index a116c6a3e08..ed628e4fd7a 100644 --- a/tests/components/netatmo/snapshots/test_light.ambr +++ b/tests/components/netatmo/snapshots/test_light.ambr @@ -20,6 +20,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -73,6 +75,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -125,6 +129,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/netatmo/snapshots/test_select.ambr b/tests/components/netatmo/snapshots/test_select.ambr index 44886451b42..65c98ec29f5 100644 --- a/tests/components/netatmo/snapshots/test_select.ambr +++ b/tests/components/netatmo/snapshots/test_select.ambr @@ -21,6 +21,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/netatmo/snapshots/test_sensor.ambr b/tests/components/netatmo/snapshots/test_sensor.ambr index 6447f09fdba..8983a1ecf13 100644 --- a/tests/components/netatmo/snapshots/test_sensor.ambr +++ b/tests/components/netatmo/snapshots/test_sensor.ambr @@ -18,6 +18,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -67,6 +69,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -116,6 +120,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -167,6 +173,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -218,6 +226,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor.private': dict({ @@ -270,6 +280,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -304,6 +316,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -340,6 +354,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -389,6 +405,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -423,6 +441,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -459,6 +479,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -506,6 +528,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -553,6 +577,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -602,6 +628,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -651,6 +679,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor.private': dict({ @@ -701,6 +731,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -735,6 +767,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -771,6 +805,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -818,6 +854,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -852,6 +890,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -888,6 +928,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -937,6 +979,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -984,6 +1028,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1020,6 +1066,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1067,6 +1115,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1103,6 +1153,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1152,6 +1204,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1199,6 +1253,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1235,6 +1291,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1282,6 +1340,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1318,6 +1378,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1354,6 +1416,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1390,6 +1454,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1426,6 +1492,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1477,6 +1545,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor.private': dict({ @@ -1531,6 +1601,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1582,6 +1654,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1618,6 +1692,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1669,6 +1745,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1720,6 +1798,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1771,6 +1851,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1807,6 +1889,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1843,6 +1927,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1879,6 +1965,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1930,6 +2018,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor.private': dict({ @@ -1984,6 +2074,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2035,6 +2127,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2071,6 +2165,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2122,6 +2218,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2173,6 +2271,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2224,6 +2324,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2271,6 +2373,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2307,6 +2411,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2354,6 +2460,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2401,6 +2509,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2450,6 +2560,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2499,6 +2611,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor.private': dict({ @@ -2549,6 +2663,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2583,6 +2699,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2619,6 +2737,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2666,6 +2786,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2700,6 +2822,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2736,6 +2860,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2783,6 +2909,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2819,6 +2947,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2866,6 +2996,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2902,6 +3034,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2949,6 +3083,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2985,6 +3121,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3032,6 +3170,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3068,6 +3208,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3115,6 +3257,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3151,6 +3295,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3200,6 +3346,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3247,6 +3395,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3294,6 +3444,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3343,6 +3495,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3392,6 +3546,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor.private': dict({ @@ -3442,6 +3598,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3476,6 +3634,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3512,6 +3672,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3559,6 +3721,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3593,6 +3757,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3629,6 +3795,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3678,6 +3846,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3727,6 +3897,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3778,6 +3950,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3829,6 +4003,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor.private': dict({ @@ -3881,6 +4057,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3915,6 +4093,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3951,6 +4131,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4000,6 +4182,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4034,6 +4218,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4070,6 +4256,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4117,6 +4305,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4153,6 +4343,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4200,6 +4392,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4236,6 +4430,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4285,6 +4481,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4334,6 +4532,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4383,6 +4583,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4432,6 +4634,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4479,6 +4683,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4513,6 +4719,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4549,6 +4757,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4596,6 +4806,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4632,6 +4844,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4681,6 +4895,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4730,6 +4946,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4777,6 +4995,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4811,6 +5031,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4847,6 +5069,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4894,6 +5118,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4930,6 +5156,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4981,6 +5209,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5017,6 +5247,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5064,6 +5296,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5111,6 +5345,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5145,6 +5381,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5181,6 +5419,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5215,6 +5455,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5249,6 +5491,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5285,6 +5529,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5334,6 +5580,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5385,6 +5633,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5436,6 +5686,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5485,6 +5737,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5532,6 +5786,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5566,6 +5822,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5602,6 +5860,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5649,6 +5909,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5685,6 +5947,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor.private': dict({ @@ -5737,6 +6001,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5773,6 +6039,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5820,6 +6088,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5856,6 +6126,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5905,6 +6177,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5941,6 +6215,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5988,6 +6264,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -6022,6 +6300,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -6058,6 +6338,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -6107,6 +6389,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -6141,6 +6425,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/netatmo/snapshots/test_switch.ambr b/tests/components/netatmo/snapshots/test_switch.ambr index 6069bf60c1f..06f40bcd379 100644 --- a/tests/components/netatmo/snapshots/test_switch.ambr +++ b/tests/components/netatmo/snapshots/test_switch.ambr @@ -16,6 +16,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/netgear_lte/snapshots/test_init.ambr b/tests/components/netgear_lte/snapshots/test_init.ambr index 2eb2fff89ef..8af22f98e02 100644 --- a/tests/components/netgear_lte/snapshots/test_init.ambr +++ b/tests/components/netgear_lte/snapshots/test_init.ambr @@ -17,6 +17,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Netgear', 'model': 'LM1200', 'name': 'Netgear LM1200', diff --git a/tests/components/onewire/snapshots/test_binary_sensor.ambr b/tests/components/onewire/snapshots/test_binary_sensor.ambr index 8ca1e476820..2aa415f0345 100644 --- a/tests/components/onewire/snapshots/test_binary_sensor.ambr +++ b/tests/components/onewire/snapshots/test_binary_sensor.ambr @@ -30,6 +30,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2405', 'name': '05.111111111111', @@ -68,6 +70,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS18S20', 'name': '10.111111111111', @@ -106,6 +110,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2406', 'name': '12.111111111111', @@ -135,6 +141,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -164,6 +172,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -226,6 +236,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2423', 'name': '1D.111111111111', @@ -264,6 +276,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2409', 'name': '1F.111111111111', @@ -290,6 +304,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2423', 'name': '1D.111111111111', @@ -328,6 +344,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS1822', 'name': '22.111111111111', @@ -366,6 +384,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2438', 'name': '26.111111111111', @@ -404,6 +424,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS18B20', 'name': '28.111111111111', @@ -442,6 +464,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS18B20', 'name': '28.222222222222', @@ -480,6 +504,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS18B20', 'name': '28.222222222223', @@ -518,6 +544,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2408', 'name': '29.111111111111', @@ -547,6 +575,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -576,6 +606,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -605,6 +637,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -634,6 +668,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -663,6 +699,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -692,6 +730,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -721,6 +761,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -750,6 +792,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -884,6 +928,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2760', 'name': '30.111111111111', @@ -922,6 +968,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2413', 'name': '3A.111111111111', @@ -951,6 +999,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -980,6 +1030,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1042,6 +1094,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS1825', 'name': '3B.111111111111', @@ -1080,6 +1134,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS28EA00', 'name': '42.111111111111', @@ -1118,6 +1174,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Embedded Data Systems', 'model': 'EDS0068', 'name': '7E.111111111111', @@ -1156,6 +1214,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Embedded Data Systems', 'model': 'EDS0066', 'name': '7E.222222222222', @@ -1194,6 +1254,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Hobby Boards', 'model': 'HobbyBoards_EF', 'name': 'EF.111111111111', @@ -1232,6 +1294,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Hobby Boards', 'model': 'HB_MOISTURE_METER', 'name': 'EF.111111111112', @@ -1270,6 +1334,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Hobby Boards', 'model': 'HB_HUB', 'name': 'EF.111111111113', @@ -1299,6 +1365,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1328,6 +1396,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1357,6 +1427,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1386,6 +1458,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/onewire/snapshots/test_sensor.ambr b/tests/components/onewire/snapshots/test_sensor.ambr index 936018a48c4..970d63f4dac 100644 --- a/tests/components/onewire/snapshots/test_sensor.ambr +++ b/tests/components/onewire/snapshots/test_sensor.ambr @@ -30,6 +30,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2405', 'name': '05.111111111111', @@ -68,6 +70,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS18S20', 'name': '10.111111111111', @@ -99,6 +103,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -152,6 +158,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2406', 'name': '12.111111111111', @@ -183,6 +191,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -214,6 +224,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -282,6 +294,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2423', 'name': '1D.111111111111', @@ -313,6 +327,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -344,6 +360,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -410,6 +428,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2409', 'name': '1F.111111111111', @@ -436,6 +456,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2423', 'name': '1D.111111111111', @@ -467,6 +489,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -498,6 +522,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -564,6 +590,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS1822', 'name': '22.111111111111', @@ -595,6 +623,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -648,6 +678,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2438', 'name': '26.111111111111', @@ -679,6 +711,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -710,6 +744,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -741,6 +777,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -772,6 +810,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -803,6 +843,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -834,6 +876,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -865,6 +909,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -896,6 +942,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -927,6 +975,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -958,6 +1008,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -989,6 +1041,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1192,6 +1246,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS18B20', 'name': '28.111111111111', @@ -1223,6 +1279,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1276,6 +1334,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS18B20', 'name': '28.222222222222', @@ -1307,6 +1367,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1360,6 +1422,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS18B20', 'name': '28.222222222223', @@ -1391,6 +1455,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1444,6 +1510,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2408', 'name': '29.111111111111', @@ -1482,6 +1550,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2760', 'name': '30.111111111111', @@ -1513,6 +1583,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1544,6 +1616,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1575,6 +1649,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1606,6 +1682,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1704,6 +1782,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2413', 'name': '3A.111111111111', @@ -1742,6 +1822,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS1825', 'name': '3B.111111111111', @@ -1773,6 +1855,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1826,6 +1910,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS28EA00', 'name': '42.111111111111', @@ -1857,6 +1943,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1910,6 +1998,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Embedded Data Systems', 'model': 'EDS0068', 'name': '7E.111111111111', @@ -1941,6 +2031,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1972,6 +2064,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2003,6 +2097,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2034,6 +2130,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2132,6 +2230,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Embedded Data Systems', 'model': 'EDS0066', 'name': '7E.222222222222', @@ -2163,6 +2263,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2194,6 +2296,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2262,6 +2366,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Hobby Boards', 'model': 'HobbyBoards_EF', 'name': 'EF.111111111111', @@ -2293,6 +2399,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2324,6 +2432,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2355,6 +2465,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2438,6 +2550,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Hobby Boards', 'model': 'HB_MOISTURE_METER', 'name': 'EF.111111111112', @@ -2469,6 +2583,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2500,6 +2616,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2531,6 +2649,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2562,6 +2682,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2660,6 +2782,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Hobby Boards', 'model': 'HB_HUB', 'name': 'EF.111111111113', diff --git a/tests/components/onewire/snapshots/test_switch.ambr b/tests/components/onewire/snapshots/test_switch.ambr index 24c985a311e..8fbb977948b 100644 --- a/tests/components/onewire/snapshots/test_switch.ambr +++ b/tests/components/onewire/snapshots/test_switch.ambr @@ -30,6 +30,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2405', 'name': '05.111111111111', @@ -59,6 +61,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -109,6 +113,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS18S20', 'name': '10.111111111111', @@ -147,6 +153,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2406', 'name': '12.111111111111', @@ -176,6 +184,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -205,6 +215,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -234,6 +246,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -263,6 +277,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -349,6 +365,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2423', 'name': '1D.111111111111', @@ -387,6 +405,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2409', 'name': '1F.111111111111', @@ -413,6 +433,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2423', 'name': '1D.111111111111', @@ -451,6 +473,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS1822', 'name': '22.111111111111', @@ -489,6 +513,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2438', 'name': '26.111111111111', @@ -518,6 +544,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -568,6 +596,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS18B20', 'name': '28.111111111111', @@ -606,6 +636,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS18B20', 'name': '28.222222222222', @@ -644,6 +676,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS18B20', 'name': '28.222222222223', @@ -682,6 +716,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2408', 'name': '29.111111111111', @@ -711,6 +747,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -740,6 +778,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -769,6 +809,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -798,6 +840,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -827,6 +871,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -856,6 +902,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -885,6 +933,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -914,6 +964,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -943,6 +995,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -972,6 +1026,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1001,6 +1057,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1030,6 +1088,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1059,6 +1119,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1088,6 +1150,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1117,6 +1181,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1146,6 +1212,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1376,6 +1444,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2760', 'name': '30.111111111111', @@ -1414,6 +1484,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS2413', 'name': '3A.111111111111', @@ -1443,6 +1515,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1472,6 +1546,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1534,6 +1610,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS1825', 'name': '3B.111111111111', @@ -1572,6 +1650,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Maxim Integrated', 'model': 'DS28EA00', 'name': '42.111111111111', @@ -1610,6 +1690,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Embedded Data Systems', 'model': 'EDS0068', 'name': '7E.111111111111', @@ -1648,6 +1730,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Embedded Data Systems', 'model': 'EDS0066', 'name': '7E.222222222222', @@ -1686,6 +1770,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Hobby Boards', 'model': 'HobbyBoards_EF', 'name': 'EF.111111111111', @@ -1724,6 +1810,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Hobby Boards', 'model': 'HB_MOISTURE_METER', 'name': 'EF.111111111112', @@ -1753,6 +1841,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1782,6 +1872,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1811,6 +1903,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1840,6 +1934,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1869,6 +1965,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1898,6 +1996,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1927,6 +2027,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1956,6 +2058,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2090,6 +2194,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Hobby Boards', 'model': 'HB_HUB', 'name': 'EF.111111111113', @@ -2119,6 +2225,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2148,6 +2256,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2177,6 +2287,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2206,6 +2318,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/ping/snapshots/test_binary_sensor.ambr b/tests/components/ping/snapshots/test_binary_sensor.ambr index 2ce320d561b..0924c383fc2 100644 --- a/tests/components/ping/snapshots/test_binary_sensor.ambr +++ b/tests/components/ping/snapshots/test_binary_sensor.ambr @@ -76,6 +76,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/renault/snapshots/test_binary_sensor.ambr b/tests/components/renault/snapshots/test_binary_sensor.ambr index fbde0470cac..8adbf1e9d02 100644 --- a/tests/components/renault/snapshots/test_binary_sensor.ambr +++ b/tests/components/renault/snapshots/test_binary_sensor.ambr @@ -18,6 +18,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Captur ii', 'name': 'REG-NUMBER', @@ -47,6 +49,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -76,6 +80,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -105,6 +111,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -134,6 +142,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -163,6 +173,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -192,6 +204,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -296,6 +310,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Captur ii', 'name': 'REG-NUMBER', @@ -325,6 +341,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -354,6 +372,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -383,6 +403,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -412,6 +434,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -441,6 +465,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -470,6 +496,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -499,6 +527,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -528,6 +558,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -654,6 +686,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Zoe', 'name': 'REG-NUMBER', @@ -683,6 +717,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -712,6 +748,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -741,6 +779,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -812,6 +852,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Zoe', 'name': 'REG-NUMBER', @@ -841,6 +883,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -870,6 +914,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -899,6 +945,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -928,6 +976,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -957,6 +1007,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -986,6 +1038,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1015,6 +1069,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1044,6 +1100,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1073,6 +1131,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1210,6 +1270,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Captur ii', 'name': 'REG-NUMBER', @@ -1239,6 +1301,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1268,6 +1332,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1297,6 +1363,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1326,6 +1394,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1355,6 +1425,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1384,6 +1456,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1488,6 +1562,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Captur ii', 'name': 'REG-NUMBER', @@ -1517,6 +1593,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1546,6 +1624,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1575,6 +1655,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1604,6 +1686,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1633,6 +1717,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1662,6 +1748,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1691,6 +1779,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1720,6 +1810,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1846,6 +1938,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Zoe', 'name': 'REG-NUMBER', @@ -1875,6 +1969,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1904,6 +2000,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1933,6 +2031,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2004,6 +2104,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Zoe', 'name': 'REG-NUMBER', @@ -2033,6 +2135,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2062,6 +2166,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2091,6 +2197,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2120,6 +2228,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2149,6 +2259,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2178,6 +2290,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2207,6 +2321,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2236,6 +2352,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2265,6 +2383,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/renault/snapshots/test_button.ambr b/tests/components/renault/snapshots/test_button.ambr index 90715cb56c2..58903962a2e 100644 --- a/tests/components/renault/snapshots/test_button.ambr +++ b/tests/components/renault/snapshots/test_button.ambr @@ -18,6 +18,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Captur ii', 'name': 'REG-NUMBER', @@ -47,6 +49,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -96,6 +100,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Captur ii', 'name': 'REG-NUMBER', @@ -125,6 +131,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -154,6 +162,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -183,6 +193,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -254,6 +266,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Zoe', 'name': 'REG-NUMBER', @@ -283,6 +297,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -312,6 +328,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -341,6 +359,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -412,6 +432,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Zoe', 'name': 'REG-NUMBER', @@ -441,6 +463,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -470,6 +494,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -499,6 +525,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -570,6 +598,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Captur ii', 'name': 'REG-NUMBER', @@ -599,6 +629,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -648,6 +680,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Captur ii', 'name': 'REG-NUMBER', @@ -677,6 +711,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -706,6 +742,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -735,6 +773,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -806,6 +846,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Zoe', 'name': 'REG-NUMBER', @@ -835,6 +877,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -864,6 +908,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -893,6 +939,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -964,6 +1012,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Zoe', 'name': 'REG-NUMBER', @@ -993,6 +1043,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1022,6 +1074,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1051,6 +1105,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/renault/snapshots/test_device_tracker.ambr b/tests/components/renault/snapshots/test_device_tracker.ambr index 0f901c8ce4c..2dd61ce6ace 100644 --- a/tests/components/renault/snapshots/test_device_tracker.ambr +++ b/tests/components/renault/snapshots/test_device_tracker.ambr @@ -18,6 +18,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Captur ii', 'name': 'REG-NUMBER', @@ -47,6 +49,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -97,6 +101,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Captur ii', 'name': 'REG-NUMBER', @@ -126,6 +132,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -176,6 +184,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Zoe', 'name': 'REG-NUMBER', @@ -214,6 +224,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Zoe', 'name': 'REG-NUMBER', @@ -243,6 +255,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -293,6 +307,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Captur ii', 'name': 'REG-NUMBER', @@ -322,6 +338,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -375,6 +393,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Captur ii', 'name': 'REG-NUMBER', @@ -404,6 +424,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -457,6 +479,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Zoe', 'name': 'REG-NUMBER', @@ -495,6 +519,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Zoe', 'name': 'REG-NUMBER', @@ -524,6 +550,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/renault/snapshots/test_select.ambr b/tests/components/renault/snapshots/test_select.ambr index 932a302e5f7..173afa6bdb9 100644 --- a/tests/components/renault/snapshots/test_select.ambr +++ b/tests/components/renault/snapshots/test_select.ambr @@ -18,6 +18,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Captur ii', 'name': 'REG-NUMBER', @@ -56,6 +58,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Captur ii', 'name': 'REG-NUMBER', @@ -91,6 +95,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -145,6 +151,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Zoe', 'name': 'REG-NUMBER', @@ -180,6 +188,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -234,6 +244,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Zoe', 'name': 'REG-NUMBER', @@ -269,6 +281,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -323,6 +337,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Captur ii', 'name': 'REG-NUMBER', @@ -361,6 +377,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Captur ii', 'name': 'REG-NUMBER', @@ -396,6 +414,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -450,6 +470,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Zoe', 'name': 'REG-NUMBER', @@ -485,6 +507,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -539,6 +563,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Zoe', 'name': 'REG-NUMBER', @@ -574,6 +600,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/renault/snapshots/test_sensor.ambr b/tests/components/renault/snapshots/test_sensor.ambr index 9fb302a1108..866728eb09b 100644 --- a/tests/components/renault/snapshots/test_sensor.ambr +++ b/tests/components/renault/snapshots/test_sensor.ambr @@ -18,6 +18,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Captur ii', 'name': 'REG-NUMBER', @@ -49,6 +51,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -80,6 +84,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -111,6 +117,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -140,6 +148,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -169,6 +179,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -198,6 +210,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -309,6 +323,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Captur ii', 'name': 'REG-NUMBER', @@ -340,6 +356,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -380,6 +398,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -411,6 +431,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -442,6 +464,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -478,6 +502,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -509,6 +535,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -540,6 +568,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -571,6 +601,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -600,6 +632,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -631,6 +665,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -662,6 +698,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -693,6 +731,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -722,6 +762,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -751,6 +793,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -780,6 +824,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1022,6 +1068,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Zoe', 'name': 'REG-NUMBER', @@ -1053,6 +1101,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1093,6 +1143,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1124,6 +1176,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1155,6 +1209,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1191,6 +1247,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1222,6 +1280,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1253,6 +1313,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1284,6 +1346,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1313,6 +1377,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1344,6 +1410,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1375,6 +1443,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1404,6 +1474,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1433,6 +1505,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1462,6 +1536,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1491,6 +1567,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1729,6 +1807,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Zoe', 'name': 'REG-NUMBER', @@ -1760,6 +1840,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1800,6 +1882,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1831,6 +1915,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1862,6 +1948,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1898,6 +1986,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1929,6 +2019,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1960,6 +2052,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1991,6 +2085,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2020,6 +2116,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2051,6 +2149,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2082,6 +2182,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2111,6 +2213,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2140,6 +2244,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2169,6 +2275,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2198,6 +2306,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2227,6 +2337,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2476,6 +2588,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Captur ii', 'name': 'REG-NUMBER', @@ -2507,6 +2621,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2538,6 +2654,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2569,6 +2687,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2598,6 +2718,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2627,6 +2749,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2656,6 +2780,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2767,6 +2893,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Captur ii', 'name': 'REG-NUMBER', @@ -2798,6 +2926,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2838,6 +2968,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2869,6 +3001,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2900,6 +3034,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2936,6 +3072,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2967,6 +3105,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2998,6 +3138,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3029,6 +3171,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3058,6 +3202,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3089,6 +3235,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3120,6 +3268,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3151,6 +3301,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3180,6 +3332,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3209,6 +3363,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3238,6 +3394,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3480,6 +3638,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Zoe', 'name': 'REG-NUMBER', @@ -3511,6 +3671,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3551,6 +3713,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3582,6 +3746,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3613,6 +3779,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3649,6 +3817,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3680,6 +3850,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3711,6 +3883,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3742,6 +3916,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3771,6 +3947,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3802,6 +3980,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3833,6 +4013,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3862,6 +4044,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3891,6 +4075,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3920,6 +4106,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3949,6 +4137,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4187,6 +4377,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Renault', 'model': 'Zoe', 'name': 'REG-NUMBER', @@ -4218,6 +4410,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4258,6 +4452,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4289,6 +4485,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4320,6 +4518,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4356,6 +4556,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4387,6 +4589,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4418,6 +4622,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4449,6 +4655,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4478,6 +4686,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4509,6 +4719,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4540,6 +4752,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4569,6 +4783,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4598,6 +4814,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4627,6 +4845,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4656,6 +4876,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4685,6 +4907,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/samsungtv/snapshots/test_init.ambr b/tests/components/samsungtv/snapshots/test_init.ambr index 181cf8de17b..9087c1d95f9 100644 --- a/tests/components/samsungtv/snapshots/test_init.ambr +++ b/tests/components/samsungtv/snapshots/test_init.ambr @@ -40,6 +40,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/sfr_box/snapshots/test_binary_sensor.ambr b/tests/components/sfr_box/snapshots/test_binary_sensor.ambr index 4eee1208a12..1333121df87 100644 --- a/tests/components/sfr_box/snapshots/test_binary_sensor.ambr +++ b/tests/components/sfr_box/snapshots/test_binary_sensor.ambr @@ -18,6 +18,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': None, 'model': 'NB6VAC-FXC-r0', 'name': 'SFR Box', @@ -47,6 +49,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -76,6 +80,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -136,6 +142,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': None, 'model': 'NB6VAC-FXC-r0', 'name': 'SFR Box', @@ -165,6 +173,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -194,6 +204,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/sfr_box/snapshots/test_button.ambr b/tests/components/sfr_box/snapshots/test_button.ambr index 846da8d41cf..0ca62e8caed 100644 --- a/tests/components/sfr_box/snapshots/test_button.ambr +++ b/tests/components/sfr_box/snapshots/test_button.ambr @@ -18,6 +18,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': None, 'model': 'NB6VAC-FXC-r0', 'name': 'SFR Box', @@ -47,6 +49,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/sfr_box/snapshots/test_sensor.ambr b/tests/components/sfr_box/snapshots/test_sensor.ambr index 2b1825a40b4..be2ee848029 100644 --- a/tests/components/sfr_box/snapshots/test_sensor.ambr +++ b/tests/components/sfr_box/snapshots/test_sensor.ambr @@ -18,6 +18,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': None, 'model': 'NB6VAC-FXC-r0', 'name': 'SFR Box', @@ -54,6 +56,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -83,6 +87,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -112,6 +118,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -149,6 +157,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -178,6 +188,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -207,6 +219,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -236,6 +250,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -267,6 +283,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -298,6 +316,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -329,6 +349,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -360,6 +382,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -391,6 +415,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -422,6 +448,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -460,6 +488,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -502,6 +532,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/streamlabswater/snapshots/test_binary_sensor.ambr b/tests/components/streamlabswater/snapshots/test_binary_sensor.ambr index 2ca9b802bf5..6c117a18d75 100644 --- a/tests/components/streamlabswater/snapshots/test_binary_sensor.ambr +++ b/tests/components/streamlabswater/snapshots/test_binary_sensor.ambr @@ -16,6 +16,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/streamlabswater/snapshots/test_sensor.ambr b/tests/components/streamlabswater/snapshots/test_sensor.ambr index 9d8ca3a99e6..cb11852447c 100644 --- a/tests/components/streamlabswater/snapshots/test_sensor.ambr +++ b/tests/components/streamlabswater/snapshots/test_sensor.ambr @@ -16,6 +16,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -64,6 +66,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -112,6 +116,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ diff --git a/tests/components/tailwind/snapshots/test_binary_sensor.ambr b/tests/components/tailwind/snapshots/test_binary_sensor.ambr index aafd15501ee..3f6f2baf26b 100644 --- a/tests/components/tailwind/snapshots/test_binary_sensor.ambr +++ b/tests/components/tailwind/snapshots/test_binary_sensor.ambr @@ -30,6 +30,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -62,6 +64,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Tailwind', 'model': 'iQ3', 'name': 'Door 1', @@ -103,6 +107,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -135,6 +141,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Tailwind', 'model': 'iQ3', 'name': 'Door 2', diff --git a/tests/components/tailwind/snapshots/test_button.ambr b/tests/components/tailwind/snapshots/test_button.ambr index b92b482e23d..f293b508808 100644 --- a/tests/components/tailwind/snapshots/test_button.ambr +++ b/tests/components/tailwind/snapshots/test_button.ambr @@ -29,6 +29,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -65,6 +67,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Tailwind', 'model': 'iQ3', 'name': 'Tailwind iQ3', diff --git a/tests/components/tailwind/snapshots/test_cover.ambr b/tests/components/tailwind/snapshots/test_cover.ambr index e5d6306778f..d349c555945 100644 --- a/tests/components/tailwind/snapshots/test_cover.ambr +++ b/tests/components/tailwind/snapshots/test_cover.ambr @@ -30,6 +30,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -62,6 +64,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Tailwind', 'model': 'iQ3', 'name': 'Door 1', @@ -103,6 +107,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -135,6 +141,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Tailwind', 'model': 'iQ3', 'name': 'Door 2', diff --git a/tests/components/tailwind/snapshots/test_number.ambr b/tests/components/tailwind/snapshots/test_number.ambr index 1d1444461ff..95237f82522 100644 --- a/tests/components/tailwind/snapshots/test_number.ambr +++ b/tests/components/tailwind/snapshots/test_number.ambr @@ -39,6 +39,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -75,6 +77,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Tailwind', 'model': 'iQ3', 'name': 'Tailwind iQ3', diff --git a/tests/components/technove/snapshots/test_binary_sensor.ambr b/tests/components/technove/snapshots/test_binary_sensor.ambr index 1b54bdda2ce..f90e6e7b442 100644 --- a/tests/components/technove/snapshots/test_binary_sensor.ambr +++ b/tests/components/technove/snapshots/test_binary_sensor.ambr @@ -16,6 +16,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -59,6 +61,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -103,6 +107,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -146,6 +152,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -189,6 +197,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -232,6 +242,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/technove/snapshots/test_sensor.ambr b/tests/components/technove/snapshots/test_sensor.ambr index cbaf8813604..941d93107df 100644 --- a/tests/components/technove/snapshots/test_sensor.ambr +++ b/tests/components/technove/snapshots/test_sensor.ambr @@ -18,6 +18,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -66,6 +68,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -114,6 +118,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -162,6 +168,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -210,6 +218,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -258,6 +268,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -312,6 +324,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -365,6 +379,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -411,6 +427,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/tedee/snapshots/test_binary_sensor.ambr b/tests/components/tedee/snapshots/test_binary_sensor.ambr index a632ea3d57b..32820496d9f 100644 --- a/tests/components/tedee/snapshots/test_binary_sensor.ambr +++ b/tests/components/tedee/snapshots/test_binary_sensor.ambr @@ -16,6 +16,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -47,6 +49,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -78,6 +82,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -128,4 +134,4 @@ 'last_updated': , 'state': 'off', }) -# --- \ No newline at end of file +# --- diff --git a/tests/components/tedee/snapshots/test_init.ambr b/tests/components/tedee/snapshots/test_init.ambr index 2a89b1fe7ef..83ab032dfb4 100644 --- a/tests/components/tedee/snapshots/test_init.ambr +++ b/tests/components/tedee/snapshots/test_init.ambr @@ -17,6 +17,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Tedee', 'model': 'Bridge', 'name': 'Bridge-AB1C', @@ -26,4 +28,4 @@ 'sw_version': None, 'via_device_id': None, }) -# --- \ No newline at end of file +# --- diff --git a/tests/components/tedee/snapshots/test_lock.ambr b/tests/components/tedee/snapshots/test_lock.ambr index dd0eab46c90..d232ab243d9 100644 --- a/tests/components/tedee/snapshots/test_lock.ambr +++ b/tests/components/tedee/snapshots/test_lock.ambr @@ -29,6 +29,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -61,6 +63,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Tedee', 'model': 'Tedee PRO', 'name': 'Lock-1A2B', @@ -101,6 +105,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -133,6 +139,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Tedee', 'model': 'Tedee GO', 'name': 'Lock-2C3D', diff --git a/tests/components/tedee/snapshots/test_sensor.ambr b/tests/components/tedee/snapshots/test_sensor.ambr index a31ccea4578..d1be2839826 100644 --- a/tests/components/tedee/snapshots/test_sensor.ambr +++ b/tests/components/tedee/snapshots/test_sensor.ambr @@ -18,6 +18,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -51,6 +53,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/teslemetry/snapshots/test_climate.ambr b/tests/components/teslemetry/snapshots/test_climate.ambr index cba5b05eff2..f0027273ece 100644 --- a/tests/components/teslemetry/snapshots/test_climate.ambr +++ b/tests/components/teslemetry/snapshots/test_climate.ambr @@ -29,6 +29,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/tessie/snapshots/test_binary_sensors.ambr b/tests/components/tessie/snapshots/test_binary_sensors.ambr index aacaad1d7e4..7499cbe332b 100644 --- a/tests/components/tessie/snapshots/test_binary_sensors.ambr +++ b/tests/components/tessie/snapshots/test_binary_sensors.ambr @@ -16,6 +16,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -59,6 +61,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -102,6 +106,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -145,6 +151,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -189,6 +197,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -233,6 +243,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -277,6 +289,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -321,6 +335,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -365,6 +381,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -409,6 +427,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -453,6 +473,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -497,6 +519,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -541,6 +565,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -585,6 +611,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -628,6 +656,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -672,6 +702,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -716,6 +748,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -760,6 +794,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -804,6 +840,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -847,6 +885,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -891,6 +931,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -935,6 +977,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -979,6 +1023,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1023,6 +1069,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1067,6 +1115,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1110,6 +1160,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/tessie/snapshots/test_button.ambr b/tests/components/tessie/snapshots/test_button.ambr index 5c3938eaddb..fad022d513d 100644 --- a/tests/components/tessie/snapshots/test_button.ambr +++ b/tests/components/tessie/snapshots/test_button.ambr @@ -16,6 +16,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -60,6 +62,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -104,6 +108,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -148,6 +154,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -192,6 +200,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -236,6 +246,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/tessie/snapshots/test_climate.ambr b/tests/components/tessie/snapshots/test_climate.ambr index 0205df15705..acefc953d3c 100644 --- a/tests/components/tessie/snapshots/test_climate.ambr +++ b/tests/components/tessie/snapshots/test_climate.ambr @@ -29,6 +29,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/tessie/snapshots/test_cover.ambr b/tests/components/tessie/snapshots/test_cover.ambr index e95da1df3b9..29930677396 100644 --- a/tests/components/tessie/snapshots/test_cover.ambr +++ b/tests/components/tessie/snapshots/test_cover.ambr @@ -16,6 +16,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -61,6 +63,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -106,6 +110,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -151,6 +157,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/tessie/snapshots/test_device_tracker.ambr b/tests/components/tessie/snapshots/test_device_tracker.ambr index ff47c73e8cd..640b91627d5 100644 --- a/tests/components/tessie/snapshots/test_device_tracker.ambr +++ b/tests/components/tessie/snapshots/test_device_tracker.ambr @@ -16,6 +16,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -65,6 +67,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/tessie/snapshots/test_lock.ambr b/tests/components/tessie/snapshots/test_lock.ambr index 026e02603c9..a01b14bf00a 100644 --- a/tests/components/tessie/snapshots/test_lock.ambr +++ b/tests/components/tessie/snapshots/test_lock.ambr @@ -16,6 +16,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -60,6 +62,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -104,6 +108,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/tessie/snapshots/test_media_player.ambr b/tests/components/tessie/snapshots/test_media_player.ambr index c3747174a4a..b8bf84c726c 100644 --- a/tests/components/tessie/snapshots/test_media_player.ambr +++ b/tests/components/tessie/snapshots/test_media_player.ambr @@ -17,6 +17,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/tessie/snapshots/test_number.ambr b/tests/components/tessie/snapshots/test_number.ambr index 23ecbbfabbe..33abf438128 100644 --- a/tests/components/tessie/snapshots/test_number.ambr +++ b/tests/components/tessie/snapshots/test_number.ambr @@ -21,6 +21,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -75,6 +77,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -129,6 +133,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/tessie/snapshots/test_select.ambr b/tests/components/tessie/snapshots/test_select.ambr index 7a6978e3aef..758bb1c91d8 100644 --- a/tests/components/tessie/snapshots/test_select.ambr +++ b/tests/components/tessie/snapshots/test_select.ambr @@ -23,6 +23,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -79,6 +81,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -135,6 +139,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -191,6 +197,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -247,6 +255,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/tessie/snapshots/test_sensor.ambr b/tests/components/tessie/snapshots/test_sensor.ambr index b9a423bfa9a..bc09e491727 100644 --- a/tests/components/tessie/snapshots/test_sensor.ambr +++ b/tests/components/tessie/snapshots/test_sensor.ambr @@ -18,6 +18,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -66,6 +68,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -120,6 +124,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -171,6 +177,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor.private': dict({ @@ -222,6 +230,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -270,6 +280,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -318,6 +330,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -373,6 +387,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -426,6 +442,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -471,6 +489,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor.private': dict({ @@ -522,6 +542,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -573,6 +595,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -624,6 +648,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -678,6 +704,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -729,6 +757,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -780,6 +810,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -833,6 +865,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -885,6 +919,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor.private': dict({ @@ -936,6 +972,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -982,6 +1020,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1026,6 +1066,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1072,6 +1114,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -1126,6 +1170,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -1180,6 +1226,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -1234,6 +1282,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -1288,6 +1338,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/tessie/snapshots/test_switch.ambr b/tests/components/tessie/snapshots/test_switch.ambr index 686542feacd..607c11f7ce5 100644 --- a/tests/components/tessie/snapshots/test_switch.ambr +++ b/tests/components/tessie/snapshots/test_switch.ambr @@ -16,6 +16,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -61,6 +63,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -106,6 +110,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -151,6 +157,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -196,6 +204,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/tessie/snapshots/test_update.ambr b/tests/components/tessie/snapshots/test_update.ambr index b47cc78ef6e..6690bbf8651 100644 --- a/tests/components/tessie/snapshots/test_update.ambr +++ b/tests/components/tessie/snapshots/test_update.ambr @@ -16,6 +16,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/tplink_omada/snapshots/test_switch.ambr b/tests/components/tplink_omada/snapshots/test_switch.ambr index 99f49e44bf2..ee87a061a3c 100644 --- a/tests/components/tplink_omada/snapshots/test_switch.ambr +++ b/tests/components/tplink_omada/snapshots/test_switch.ambr @@ -29,6 +29,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -73,6 +75,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -117,6 +121,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -161,6 +167,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -205,6 +213,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -249,6 +259,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -293,6 +305,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -337,6 +351,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/twentemilieu/snapshots/test_calendar.ambr b/tests/components/twentemilieu/snapshots/test_calendar.ambr index 40b9f818f52..5399e6f547a 100644 --- a/tests/components/twentemilieu/snapshots/test_calendar.ambr +++ b/tests/components/twentemilieu/snapshots/test_calendar.ambr @@ -61,6 +61,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -93,6 +95,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Twente Milieu', 'model': None, 'name': 'Twente Milieu', diff --git a/tests/components/twentemilieu/snapshots/test_sensor.ambr b/tests/components/twentemilieu/snapshots/test_sensor.ambr index 5c9a1e54098..0a1be9f4455 100644 --- a/tests/components/twentemilieu/snapshots/test_sensor.ambr +++ b/tests/components/twentemilieu/snapshots/test_sensor.ambr @@ -30,6 +30,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -62,6 +64,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Twente Milieu', 'model': None, 'name': 'Twente Milieu', @@ -103,6 +107,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -135,6 +141,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Twente Milieu', 'model': None, 'name': 'Twente Milieu', @@ -176,6 +184,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -208,6 +218,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Twente Milieu', 'model': None, 'name': 'Twente Milieu', @@ -249,6 +261,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -281,6 +295,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Twente Milieu', 'model': None, 'name': 'Twente Milieu', @@ -322,6 +338,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -354,6 +372,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'Twente Milieu', 'model': None, 'name': 'Twente Milieu', diff --git a/tests/components/uptime/snapshots/test_sensor.ambr b/tests/components/uptime/snapshots/test_sensor.ambr index a078d82ba9f..d44108c2151 100644 --- a/tests/components/uptime/snapshots/test_sensor.ambr +++ b/tests/components/uptime/snapshots/test_sensor.ambr @@ -29,6 +29,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -54,6 +56,8 @@ 'hw_version': None, 'id': , 'is_new': False, + 'labels': set({ + }), 'manufacturer': None, 'model': None, 'name': 'Uptime', diff --git a/tests/components/vesync/snapshots/test_fan.ambr b/tests/components/vesync/snapshots/test_fan.ambr index fa60aec2422..74c9a916880 100644 --- a/tests/components/vesync/snapshots/test_fan.ambr +++ b/tests/components/vesync/snapshots/test_fan.ambr @@ -18,6 +18,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'LV-PUR131S', 'name': 'Air Purifier 131s', @@ -52,6 +54,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -103,6 +107,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'Core200S', 'name': 'Air Purifier 200s', @@ -136,6 +142,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -193,6 +201,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'LAP-C401S-WJP', 'name': 'Air Purifier 400s', @@ -227,6 +237,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -285,6 +297,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'LAP-C601S-WUS', 'name': 'Air Purifier 600s', @@ -319,6 +333,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -377,6 +393,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'ESL100', 'name': 'Dimmable Light', @@ -411,6 +429,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'ESWD16', 'name': 'Dimmer Switch', @@ -461,6 +481,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'wifi-switch-1.3', 'name': 'Outlet', @@ -495,6 +517,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'ESL100CW', 'name': 'Temperature Light', @@ -529,6 +553,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'ESWL01', 'name': 'Wall Switch', diff --git a/tests/components/vesync/snapshots/test_light.ambr b/tests/components/vesync/snapshots/test_light.ambr index 0ccc169a4ce..d3a26d5cece 100644 --- a/tests/components/vesync/snapshots/test_light.ambr +++ b/tests/components/vesync/snapshots/test_light.ambr @@ -18,6 +18,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'LV-PUR131S', 'name': 'Air Purifier 131s', @@ -52,6 +54,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'Core200S', 'name': 'Air Purifier 200s', @@ -86,6 +90,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'LAP-C401S-WJP', 'name': 'Air Purifier 400s', @@ -120,6 +126,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'LAP-C601S-WUS', 'name': 'Air Purifier 600s', @@ -154,6 +162,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'ESL100', 'name': 'Dimmable Light', @@ -187,6 +197,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -237,6 +249,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'ESWD16', 'name': 'Dimmer Switch', @@ -270,6 +284,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -338,6 +354,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'wifi-switch-1.3', 'name': 'Outlet', @@ -372,6 +390,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'ESL100CW', 'name': 'Temperature Light', @@ -409,6 +429,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -470,6 +492,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'ESWL01', 'name': 'Wall Switch', diff --git a/tests/components/vesync/snapshots/test_sensor.ambr b/tests/components/vesync/snapshots/test_sensor.ambr index bbfc9390634..4caa2220760 100644 --- a/tests/components/vesync/snapshots/test_sensor.ambr +++ b/tests/components/vesync/snapshots/test_sensor.ambr @@ -18,6 +18,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'LV-PUR131S', 'name': 'Air Purifier 131s', @@ -49,6 +51,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -78,6 +82,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -138,6 +144,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'Core200S', 'name': 'Air Purifier 200s', @@ -169,6 +177,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -217,6 +227,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'LAP-C401S-WJP', 'name': 'Air Purifier 400s', @@ -248,6 +260,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -277,6 +291,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -308,6 +324,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -383,6 +401,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'LAP-C601S-WUS', 'name': 'Air Purifier 600s', @@ -414,6 +434,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -443,6 +465,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -474,6 +498,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -549,6 +575,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'ESL100', 'name': 'Dimmable Light', @@ -583,6 +611,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'ESWD16', 'name': 'Dimmer Switch', @@ -633,6 +663,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'wifi-switch-1.3', 'name': 'Outlet', @@ -664,6 +696,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -695,6 +729,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -726,6 +762,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -757,6 +795,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -788,6 +828,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -819,6 +861,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -943,6 +987,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'ESL100CW', 'name': 'Temperature Light', @@ -977,6 +1023,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'ESWL01', 'name': 'Wall Switch', diff --git a/tests/components/vesync/snapshots/test_switch.ambr b/tests/components/vesync/snapshots/test_switch.ambr index 6333356f26a..eb23f749152 100644 --- a/tests/components/vesync/snapshots/test_switch.ambr +++ b/tests/components/vesync/snapshots/test_switch.ambr @@ -18,6 +18,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'LV-PUR131S', 'name': 'Air Purifier 131s', @@ -52,6 +54,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'Core200S', 'name': 'Air Purifier 200s', @@ -86,6 +90,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'LAP-C401S-WJP', 'name': 'Air Purifier 400s', @@ -120,6 +126,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'LAP-C601S-WUS', 'name': 'Air Purifier 600s', @@ -154,6 +162,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'ESL100', 'name': 'Dimmable Light', @@ -188,6 +198,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'ESWD16', 'name': 'Dimmer Switch', @@ -238,6 +250,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'wifi-switch-1.3', 'name': 'Outlet', @@ -267,6 +281,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -313,6 +329,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'ESL100CW', 'name': 'Temperature Light', @@ -347,6 +365,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'VeSync', 'model': 'ESWL01', 'name': 'Wall Switch', @@ -376,6 +396,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/whois/snapshots/test_sensor.ambr b/tests/components/whois/snapshots/test_sensor.ambr index 83ac2908089..99299ae36da 100644 --- a/tests/components/whois/snapshots/test_sensor.ambr +++ b/tests/components/whois/snapshots/test_sensor.ambr @@ -29,6 +29,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -61,6 +63,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': None, 'model': None, 'name': 'home-assistant.io', @@ -101,6 +105,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -133,6 +139,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': None, 'model': None, 'name': 'home-assistant.io', @@ -178,6 +186,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -210,6 +220,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': None, 'model': None, 'name': 'home-assistant.io', @@ -250,6 +262,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -282,6 +296,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': None, 'model': None, 'name': 'home-assistant.io', @@ -322,6 +338,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -354,6 +372,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': None, 'model': None, 'name': 'home-assistant.io', @@ -394,6 +414,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -426,6 +448,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': None, 'model': None, 'name': 'home-assistant.io', @@ -466,6 +490,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -498,6 +524,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': None, 'model': None, 'name': 'home-assistant.io', @@ -538,6 +566,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -570,6 +600,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': None, 'model': None, 'name': 'home-assistant.io', @@ -610,6 +642,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -642,6 +676,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': None, 'model': None, 'name': 'home-assistant.io', @@ -682,6 +718,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/withings/snapshots/test_sensor.ambr b/tests/components/withings/snapshots/test_sensor.ambr index f84fe05bb78..aeaa371b0e5 100644 --- a/tests/components/withings/snapshots/test_sensor.ambr +++ b/tests/components/withings/snapshots/test_sensor.ambr @@ -18,6 +18,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -69,6 +71,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor.private': dict({ @@ -121,6 +125,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -168,6 +174,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -215,6 +223,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -263,6 +273,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -314,6 +326,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -358,6 +372,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -407,6 +423,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -455,6 +473,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -500,6 +520,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -550,6 +572,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -600,6 +624,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -644,6 +670,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -688,6 +716,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -732,6 +762,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -779,6 +811,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -828,6 +862,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -876,6 +912,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -927,6 +965,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -978,6 +1018,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -1028,6 +1070,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1075,6 +1119,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -1126,6 +1172,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1174,6 +1222,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor.private': dict({ @@ -1226,6 +1276,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1272,6 +1324,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor.private': dict({ @@ -1320,6 +1374,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1415,6 +1471,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1512,6 +1570,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1560,6 +1620,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1607,6 +1669,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1654,6 +1718,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1701,6 +1767,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1748,6 +1816,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor.private': dict({ @@ -1800,6 +1870,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -1849,6 +1921,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor.private': dict({ @@ -1899,6 +1973,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1947,6 +2023,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -1995,6 +2073,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2043,6 +2123,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor.private': dict({ @@ -2094,6 +2176,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2141,6 +2225,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2187,6 +2273,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2233,6 +2321,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor.private': dict({ @@ -2285,6 +2375,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2332,6 +2424,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2379,6 +2473,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2427,6 +2523,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2474,6 +2572,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2522,6 +2622,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2570,6 +2672,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2618,6 +2722,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -2667,6 +2773,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2710,6 +2818,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2755,6 +2865,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2802,6 +2914,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2849,6 +2963,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -2897,6 +3013,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -2948,6 +3066,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), diff --git a/tests/components/wled/snapshots/test_binary_sensor.ambr b/tests/components/wled/snapshots/test_binary_sensor.ambr index 03d1d4f61dc..a2d3176cec7 100644 --- a/tests/components/wled/snapshots/test_binary_sensor.ambr +++ b/tests/components/wled/snapshots/test_binary_sensor.ambr @@ -29,6 +29,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -65,6 +67,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'WLED', 'model': 'DIY light', 'name': 'WLED RGB Light', diff --git a/tests/components/wled/snapshots/test_button.ambr b/tests/components/wled/snapshots/test_button.ambr index 1c65a094662..e004db77e25 100644 --- a/tests/components/wled/snapshots/test_button.ambr +++ b/tests/components/wled/snapshots/test_button.ambr @@ -29,6 +29,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -65,6 +67,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'WLED', 'model': 'DIY light', 'name': 'WLED RGB Light', diff --git a/tests/components/wled/snapshots/test_number.ambr b/tests/components/wled/snapshots/test_number.ambr index 7c05390a04e..97555c7e850 100644 --- a/tests/components/wled/snapshots/test_number.ambr +++ b/tests/components/wled/snapshots/test_number.ambr @@ -37,6 +37,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -73,6 +75,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'WLED', 'model': 'DIY light', 'name': 'WLED RGB Light', @@ -121,6 +125,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -157,6 +163,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'WLED', 'model': 'DIY light', 'name': 'WLED RGB Light', diff --git a/tests/components/wled/snapshots/test_select.ambr b/tests/components/wled/snapshots/test_select.ambr index 3c96e063738..9881b8f0a00 100644 --- a/tests/components/wled/snapshots/test_select.ambr +++ b/tests/components/wled/snapshots/test_select.ambr @@ -39,6 +39,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -75,6 +77,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'WLED', 'model': 'DIY light', 'name': 'WLED RGB Light', @@ -219,6 +223,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -255,6 +261,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'WLED', 'model': 'DIY light', 'name': 'WLED RGB Light', @@ -303,6 +311,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -339,6 +349,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'WLED', 'model': 'DIY light', 'name': 'WLED RGBW Light', @@ -387,6 +399,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -423,6 +437,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'WLED', 'model': 'DIY light', 'name': 'WLED RGBW Light', diff --git a/tests/components/wled/snapshots/test_switch.ambr b/tests/components/wled/snapshots/test_switch.ambr index 1184f1842ac..fa2e004f994 100644 --- a/tests/components/wled/snapshots/test_switch.ambr +++ b/tests/components/wled/snapshots/test_switch.ambr @@ -31,6 +31,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -67,6 +69,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'WLED', 'model': 'DIY light', 'name': 'WLED RGB Light', @@ -106,6 +110,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -142,6 +148,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'WLED', 'model': 'DIY light', 'name': 'WLED RGB Light', @@ -182,6 +190,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -218,6 +228,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'WLED', 'model': 'DIY light', 'name': 'WLED RGB Light', @@ -258,6 +270,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -294,6 +308,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'WLED', 'model': 'DIY light', 'name': 'WLED RGB Light', diff --git a/tests/conftest.py b/tests/conftest.py index 014c4fae1c7..c8ca143094a 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -57,6 +57,7 @@ from homeassistant.helpers import ( entity_registry as er, floor_registry as fr, issue_registry as ir, + label_registry as lr, recorder as recorder_helper, ) from homeassistant.helpers.typing import ConfigType @@ -1614,6 +1615,12 @@ def issue_registry(hass: HomeAssistant) -> ir.IssueRegistry: return ir.async_get(hass) +@pytest.fixture +def label_registry(hass: HomeAssistant) -> lr.LabelRegistry: + """Return the label registry from the current hass instance.""" + return lr.async_get(hass) + + @pytest.fixture def snapshot(snapshot: SnapshotAssertion) -> SnapshotAssertion: """Return snapshot assertion fixture with the Home Assistant extension.""" diff --git a/tests/helpers/test_area_registry.py b/tests/helpers/test_area_registry.py index a15bb25ef27..a1c18d41ec9 100644 --- a/tests/helpers/test_area_registry.py +++ b/tests/helpers/test_area_registry.py @@ -4,7 +4,11 @@ from typing import Any import pytest from homeassistant.core import HomeAssistant -from homeassistant.helpers import area_registry as ar, floor_registry as fr +from homeassistant.helpers import ( + area_registry as ar, + floor_registry as fr, + label_registry as lr, +) from tests.common import ANY, async_capture_events, flush_store @@ -30,6 +34,7 @@ async def test_create_area(hass: HomeAssistant, area_registry: ar.AreaRegistry) floor_id=None, icon=None, id=ANY, + labels=set(), name="mock", normalized_name=ANY, picture=None, @@ -46,7 +51,10 @@ async def test_create_area(hass: HomeAssistant, area_registry: ar.AreaRegistry) # Create area with all parameters area = area_registry.async_create( - "mock 2", aliases={"alias_1", "alias_2"}, picture="/image/example.png" + "mock 2", + aliases={"alias_1", "alias_2"}, + labels={"label1", "label2"}, + picture="/image/example.png", ) assert area == ar.AreaEntry( @@ -54,6 +62,7 @@ async def test_create_area(hass: HomeAssistant, area_registry: ar.AreaRegistry) floor_id=None, icon=None, id=ANY, + labels={"label1", "label2"}, name="mock 2", normalized_name=ANY, picture="/image/example.png", @@ -139,6 +148,7 @@ async def test_update_area( hass: HomeAssistant, area_registry: ar.AreaRegistry, floor_registry: fr.FloorRegistry, + label_registry: lr.LabelRegistry, ) -> None: """Make sure that we can read areas.""" update_events = async_capture_events(hass, ar.EVENT_AREA_REGISTRY_UPDATED) @@ -150,6 +160,7 @@ async def test_update_area( aliases={"alias_1", "alias_2"}, floor_id="first", icon="mdi:garage", + labels={"label1", "label2"}, name="mock1", picture="/image/example.png", ) @@ -160,6 +171,7 @@ async def test_update_area( floor_id="first", icon="mdi:garage", id=ANY, + labels={"label1", "label2"}, name="mock1", normalized_name=ANY, picture="/image/example.png", @@ -269,6 +281,7 @@ async def test_loading_area_from_storage( "floor_id": "first_floor", "id": "12345A", "icon": "mdi:garage", + "labels": ["mock-label1", "mock-label2"], "name": "mock", "picture": "blah", } @@ -312,6 +325,7 @@ async def test_migration_from_1_1( "floor_id": None, "icon": None, "id": "12345A", + "labels": [], "name": "mock", "picture": None, } @@ -411,3 +425,68 @@ async def test_entries_for_floor( assert not ar.async_entries_for_floor(area_registry, "unknown") assert not ar.async_entries_for_floor(area_registry, "") + + +async def test_removing_labels( + hass: HomeAssistant, + area_registry: ar.AreaRegistry, + label_registry: lr.LabelRegistry, +) -> None: + """Make sure we can clear labels.""" + label1 = label_registry.async_create("Label 1") + label2 = label_registry.async_create("Label 2") + + kitchen = area_registry.async_create("Kitchen") + kitchen = area_registry.async_update( + kitchen.id, labels={label1.label_id, label2.label_id} + ) + + bedroom = area_registry.async_create("Bedroom") + bedroom = area_registry.async_update(bedroom.id, labels={label2.label_id}) + + assert area_registry.async_get_area(kitchen.id).labels == { + label1.label_id, + label2.label_id, + } + assert area_registry.async_get_area(bedroom.id).labels == {label2.label_id} + + label_registry.async_delete(label1.label_id) + await hass.async_block_till_done() + + assert area_registry.async_get_area(kitchen.id).labels == {label2.label_id} + assert area_registry.async_get_area(bedroom.id).labels == {label2.label_id} + + label_registry.async_delete(label2.label_id) + await hass.async_block_till_done() + + assert not area_registry.async_get_area(kitchen.id).labels + assert not area_registry.async_get_area(bedroom.id).labels + + +@pytest.mark.usefixtures("hass") +async def test_entries_for_label( + area_registry: ar.AreaRegistry, label_registry: lr.LabelRegistry +) -> None: + """Test getting area entries by label.""" + label1 = label_registry.async_create("Label 1") + label2 = label_registry.async_create("Label 2") + + kitchen = area_registry.async_create("Kitchen") + kitchen = area_registry.async_update( + kitchen.id, labels={label1.label_id, label2.label_id} + ) + living_room = area_registry.async_create("Living room") + living_room = area_registry.async_update(living_room.id, labels={label1.label_id}) + bedroom = area_registry.async_create("Bedroom") + bedroom = area_registry.async_update(bedroom.id, labels={label2.label_id}) + + entries = ar.async_entries_for_label(area_registry, label1.label_id) + assert len(entries) == 2 + assert entries == [kitchen, living_room] + + entries = ar.async_entries_for_label(area_registry, label2.label_id) + assert len(entries) == 2 + assert entries == [kitchen, bedroom] + + assert not ar.async_entries_for_label(area_registry, "unknown") + assert not ar.async_entries_for_label(area_registry, "") diff --git a/tests/helpers/test_device_registry.py b/tests/helpers/test_device_registry.py index e83dec3ae99..5af0f6e9075 100644 --- a/tests/helpers/test_device_registry.py +++ b/tests/helpers/test_device_registry.py @@ -192,6 +192,7 @@ async def test_loading_from_storage( "hw_version": "hw_version", "id": "abcdefghijklm", "identifiers": [["serial", "123456ABCDEF"]], + "labels": {"label1", "label2"}, "manufacturer": "manufacturer", "model": "model", "name_by_user": "Test Friendly Name", @@ -235,6 +236,7 @@ async def test_loading_from_storage( hw_version="hw_version", id="abcdefghijklm", identifiers={("serial", "123456ABCDEF")}, + labels={"label1", "label2"}, manufacturer="manufacturer", model="model", name_by_user="Test Friendly Name", @@ -270,12 +272,12 @@ async def test_loading_from_storage( @pytest.mark.parametrize("load_registries", [False]) -async def test_migration_1_1_to_1_4( +async def test_migration_1_1_to_1_5( hass: HomeAssistant, hass_storage: dict[str, Any], mock_config_entry: MockConfigEntry, ) -> None: - """Test migration from version 1.1 to 1.4.""" + """Test migration from version 1.1 to 1.5.""" hass_storage[dr.STORAGE_KEY] = { "version": 1, "minor_version": 1, @@ -359,6 +361,7 @@ async def test_migration_1_1_to_1_4( "hw_version": None, "id": "abcdefghijklm", "identifiers": [["serial", "123456ABCDEF"]], + "labels": [], "manufacturer": "manufacturer", "model": "model", "name": "name", @@ -377,6 +380,7 @@ async def test_migration_1_1_to_1_4( "hw_version": None, "id": "invalid-entry-type", "identifiers": [["serial", "mock-id-invalid-entry"]], + "labels": [], "manufacturer": None, "model": None, "name_by_user": None, @@ -400,12 +404,12 @@ async def test_migration_1_1_to_1_4( @pytest.mark.parametrize("load_registries", [False]) -async def test_migration_1_2_to_1_4( +async def test_migration_1_2_to_1_5( hass: HomeAssistant, hass_storage: dict[str, Any], mock_config_entry: MockConfigEntry, ) -> None: - """Test migration from version 1.2 to 1.3.""" + """Test migration from version 1.2 to 1.5.""" hass_storage[dr.STORAGE_KEY] = { "version": 1, "minor_version": 2, @@ -488,6 +492,7 @@ async def test_migration_1_2_to_1_4( "hw_version": None, "id": "abcdefghijklm", "identifiers": [["serial", "123456ABCDEF"]], + "labels": [], "manufacturer": "manufacturer", "model": "model", "name": "name", @@ -506,6 +511,7 @@ async def test_migration_1_2_to_1_4( "hw_version": None, "id": "invalid-entry-type", "identifiers": [["serial", "mock-id-invalid-entry"]], + "labels": [], "manufacturer": None, "model": None, "name_by_user": None, @@ -521,12 +527,12 @@ async def test_migration_1_2_to_1_4( @pytest.mark.parametrize("load_registries", [False]) -async def test_migration_1_3_to_1_4( +async def test_migration_1_3_to_1_5( hass: HomeAssistant, hass_storage: dict[str, Any], mock_config_entry: MockConfigEntry, ): - """Test migration from version 1.3 to 1.4.""" + """Test migration from version 1.3 to 1.5.""" hass_storage[dr.STORAGE_KEY] = { "version": 1, "minor_version": 3, @@ -611,6 +617,7 @@ async def test_migration_1_3_to_1_4( "hw_version": "hw_version", "id": "abcdefghijklm", "identifiers": [["serial", "123456ABCDEF"]], + "labels": [], "manufacturer": "manufacturer", "model": "model", "name": "name", @@ -629,6 +636,134 @@ async def test_migration_1_3_to_1_4( "hw_version": None, "id": "invalid-entry-type", "identifiers": [["serial", "mock-id-invalid-entry"]], + "labels": [], + "manufacturer": None, + "model": None, + "name_by_user": None, + "name": None, + "serial_number": None, + "sw_version": None, + "via_device_id": None, + }, + ], + "deleted_devices": [], + }, + } + + +@pytest.mark.parametrize("load_registries", [False]) +async def test_migration_1_4_to_1_5( + hass: HomeAssistant, + hass_storage: dict[str, Any], + mock_config_entry: MockConfigEntry, +): + """Test migration from version 1.4 to 1.5.""" + hass_storage[dr.STORAGE_KEY] = { + "version": 1, + "minor_version": 4, + "key": dr.STORAGE_KEY, + "data": { + "devices": [ + { + "area_id": None, + "config_entries": [mock_config_entry.entry_id], + "configuration_url": None, + "connections": [["Zigbee", "01.23.45.67.89"]], + "disabled_by": None, + "entry_type": "service", + "hw_version": "hw_version", + "id": "abcdefghijklm", + "identifiers": [["serial", "123456ABCDEF"]], + "manufacturer": "manufacturer", + "model": "model", + "name": "name", + "name_by_user": None, + "serial_number": None, + "sw_version": "new_version", + "via_device_id": None, + }, + { + "area_id": None, + "config_entries": [None], + "configuration_url": None, + "connections": [], + "disabled_by": None, + "entry_type": None, + "hw_version": None, + "id": "invalid-entry-type", + "identifiers": [["serial", "mock-id-invalid-entry"]], + "manufacturer": None, + "model": None, + "name_by_user": None, + "name": None, + "serial_number": None, + "sw_version": None, + "via_device_id": None, + }, + ], + "deleted_devices": [], + }, + } + + await dr.async_load(hass) + registry = dr.async_get(hass) + + # Test data was loaded + entry = registry.async_get_or_create( + config_entry_id=mock_config_entry.entry_id, + connections={("Zigbee", "01.23.45.67.89")}, + identifiers={("serial", "123456ABCDEF")}, + ) + assert entry.id == "abcdefghijklm" + + # Update to trigger a store + entry = registry.async_get_or_create( + config_entry_id=mock_config_entry.entry_id, + connections={("Zigbee", "01.23.45.67.89")}, + identifiers={("serial", "123456ABCDEF")}, + sw_version="new_version", + ) + assert entry.id == "abcdefghijklm" + + # Check we store migrated data + await flush_store(registry._store) + + assert hass_storage[dr.STORAGE_KEY] == { + "version": dr.STORAGE_VERSION_MAJOR, + "minor_version": dr.STORAGE_VERSION_MINOR, + "key": dr.STORAGE_KEY, + "data": { + "devices": [ + { + "area_id": None, + "config_entries": [mock_config_entry.entry_id], + "configuration_url": None, + "connections": [["Zigbee", "01.23.45.67.89"]], + "disabled_by": None, + "entry_type": "service", + "hw_version": "hw_version", + "id": "abcdefghijklm", + "identifiers": [["serial", "123456ABCDEF"]], + "labels": [], + "manufacturer": "manufacturer", + "model": "model", + "name": "name", + "name_by_user": None, + "serial_number": None, + "sw_version": "new_version", + "via_device_id": None, + }, + { + "area_id": None, + "config_entries": [None], + "configuration_url": None, + "connections": [], + "disabled_by": None, + "entry_type": None, + "hw_version": None, + "id": "invalid-entry-type", + "identifiers": [["serial", "mock-id-invalid-entry"]], + "labels": [], "manufacturer": None, "model": None, "name_by_user": None, @@ -1010,7 +1145,10 @@ async def test_loading_saving_data( assert len(device_registry.deleted_devices) == 1 orig_via = device_registry.async_update_device( - orig_via.id, area_id="mock-area-id", name_by_user="mock-name-by-user" + orig_via.id, + area_id="mock-area-id", + name_by_user="mock-name-by-user", + labels={"mock-label1", "mock-label2"}, ) # Now load written data in new registry @@ -1118,6 +1256,7 @@ async def test_update( ) new_identifiers = {("hue", "654"), ("bla", "321")} assert not entry.area_id + assert not entry.labels assert not entry.name_by_user with patch.object(device_registry, "async_schedule_save") as mock_save: @@ -1128,6 +1267,7 @@ async def test_update( disabled_by=dr.DeviceEntryDisabler.USER, entry_type=dr.DeviceEntryType.SERVICE, hw_version="hw_version", + labels={"label1", "label2"}, manufacturer="Test Producer", model="Test Model", name_by_user="Test Friendly Name", @@ -1151,6 +1291,7 @@ async def test_update( hw_version="hw_version", id=entry.id, identifiers={("bla", "321"), ("hue", "654")}, + labels={"label1", "label2"}, manufacturer="Test Producer", model="Test Model", name_by_user="Test Friendly Name", @@ -1197,6 +1338,7 @@ async def test_update( "entry_type": None, "hw_version": None, "identifiers": {("bla", "123"), ("hue", "456")}, + "labels": set(), "manufacturer": None, "model": None, "name": None, @@ -2031,6 +2173,7 @@ async def test_loading_invalid_configuration_url_from_storage( "hw_version": None, "id": "abcdefghijklm", "identifiers": [["serial", "123456ABCDEF"]], + "labels": [], "manufacturer": None, "model": None, "name_by_user": None, @@ -2066,3 +2209,87 @@ def test_deprecated_constants( ) -> None: """Test deprecated constants.""" import_and_test_deprecated_constant_enum(caplog, dr, enum, "DISABLED_", "2025.1") + + +async def test_removing_labels( + hass: HomeAssistant, device_registry: dr.DeviceRegistry +) -> None: + """Make sure we can clear labels.""" + config_entry = MockConfigEntry() + config_entry.add_to_hass(hass) + entry = device_registry.async_get_or_create( + config_entry_id=config_entry.entry_id, + connections={(dr.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:EF")}, + identifiers={("bridgeid", "0123")}, + manufacturer="manufacturer", + model="model", + ) + entry = device_registry.async_update_device(entry.id, labels={"label1", "label2"}) + + device_registry.async_clear_label_id("label1") + entry_cleared_label1 = device_registry.async_get_device({("bridgeid", "0123")}) + + device_registry.async_clear_label_id("label2") + entry_cleared_label2 = device_registry.async_get_device({("bridgeid", "0123")}) + + assert entry_cleared_label1 + assert entry_cleared_label2 + assert entry != entry_cleared_label1 + assert entry != entry_cleared_label2 + assert entry_cleared_label1 != entry_cleared_label2 + assert entry.labels == {"label1", "label2"} + assert entry_cleared_label1.labels == {"label2"} + assert not entry_cleared_label2.labels + + +async def test_entries_for_label( + hass: HomeAssistant, device_registry: dr.DeviceRegistry +) -> None: + """Test getting device entries by label.""" + config_entry = MockConfigEntry() + config_entry.add_to_hass(hass) + + device_registry.async_get_or_create( + config_entry_id=config_entry.entry_id, + connections={(dr.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:00")}, + identifiers={("bridgeid", "0000")}, + manufacturer="manufacturer", + model="model", + ) + entry_1 = device_registry.async_get_or_create( + config_entry_id=config_entry.entry_id, + connections={(dr.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:23")}, + identifiers={("bridgeid", "0123")}, + manufacturer="manufacturer", + model="model", + ) + entry_1 = device_registry.async_update_device(entry_1.id, labels={"label1"}) + entry_2 = device_registry.async_get_or_create( + config_entry_id=config_entry.entry_id, + connections={(dr.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:56")}, + identifiers={("bridgeid", "0456")}, + manufacturer="manufacturer", + model="model", + ) + entry_2 = device_registry.async_update_device(entry_2.id, labels={"label2"}) + entry_1_and_2 = device_registry.async_get_or_create( + config_entry_id=config_entry.entry_id, + connections={(dr.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:89")}, + identifiers={("bridgeid", "0789")}, + manufacturer="manufacturer", + model="model", + ) + entry_1_and_2 = device_registry.async_update_device( + entry_1_and_2.id, labels={"label1", "label2"} + ) + + entries = dr.async_entries_for_label(device_registry, "label1") + assert len(entries) == 2 + assert entries == [entry_1, entry_1_and_2] + + entries = dr.async_entries_for_label(device_registry, "label2") + assert len(entries) == 2 + assert entries == [entry_2, entry_1_and_2] + + assert not dr.async_entries_for_label(device_registry, "unknown") + assert not dr.async_entries_for_label(device_registry, "") diff --git a/tests/helpers/test_entity_registry.py b/tests/helpers/test_entity_registry.py index 542fe46968d..0178e4fcd11 100644 --- a/tests/helpers/test_entity_registry.py +++ b/tests/helpers/test_entity_registry.py @@ -272,6 +272,9 @@ async def test_loading_saving_data( entity_registry.async_update_entity_options( orig_entry2.entity_id, "light", {"minimum_brightness": 20} ) + entity_registry.async_update_entity( + orig_entry2.entity_id, labels={"label1", "label2"} + ) orig_entry2 = entity_registry.async_get(orig_entry2.entity_id) orig_entry3 = entity_registry.async_get_or_create("light", "hue", "ABCD") orig_entry4 = entity_registry.async_get_or_create("light", "hue", "EFGH") @@ -309,6 +312,7 @@ async def test_loading_saving_data( assert new_entry2.icon == "hass:user-icon" assert new_entry2.hidden_by == er.RegistryEntryHider.INTEGRATION assert new_entry2.has_entity_name is True + assert new_entry2.labels == {"label1", "label2"} assert new_entry2.name == "User Name" assert new_entry2.options == {"light": {"minimum_brightness": 20}} assert new_entry2.original_device_class == "mock-device-class" @@ -1769,3 +1773,70 @@ async def test_async_migrate_entry_delete_other( await er.async_migrate_entries(hass, config_entry1.entry_id, _async_migrator) assert entries == {entry1.entity_id} assert not entity_registry.async_is_registered(entry2.entity_id) + + +async def test_removing_labels(entity_registry: er.EntityRegistry) -> None: + """Make sure we can clear labels.""" + entry = entity_registry.async_get_or_create( + domain="light", + platform="hue", + unique_id="5678", + ) + entry = entity_registry.async_update_entity( + entry.entity_id, labels={"label1", "label2"} + ) + + entity_registry.async_clear_label_id("label1") + entry_cleared_label1 = entity_registry.async_get(entry.entity_id) + + entity_registry.async_clear_label_id("label2") + entry_cleared_label2 = entity_registry.async_get(entry.entity_id) + + assert entry_cleared_label1 + assert entry_cleared_label2 + assert entry != entry_cleared_label1 + assert entry != entry_cleared_label2 + assert entry_cleared_label1 != entry_cleared_label2 + assert entry.labels == {"label1", "label2"} + assert entry_cleared_label1.labels == {"label2"} + assert not entry_cleared_label2.labels + + +async def test_entries_for_label(entity_registry: er.EntityRegistry) -> None: + """Test getting entity entries by label.""" + entity_registry.async_get_or_create( + domain="light", + platform="hue", + unique_id="000", + ) + entry = entity_registry.async_get_or_create( + domain="light", + platform="hue", + unique_id="123", + ) + label_1 = entity_registry.async_update_entity(entry.entity_id, labels={"label1"}) + entry = entity_registry.async_get_or_create( + domain="light", + platform="hue", + unique_id="456", + ) + label_2 = entity_registry.async_update_entity(entry.entity_id, labels={"label2"}) + entry = entity_registry.async_get_or_create( + domain="light", + platform="hue", + unique_id="789", + ) + label_1_and_2 = entity_registry.async_update_entity( + entry.entity_id, labels={"label1", "label2"} + ) + + entries = er.async_entries_for_label(entity_registry, "label1") + assert len(entries) == 2 + assert entries == [label_1, label_1_and_2] + + entries = er.async_entries_for_label(entity_registry, "label2") + assert len(entries) == 2 + assert entries == [label_2, label_1_and_2] + + assert not er.async_entries_for_label(entity_registry, "unknown") + assert not er.async_entries_for_label(entity_registry, "") diff --git a/tests/helpers/test_label_registry.py b/tests/helpers/test_label_registry.py new file mode 100644 index 00000000000..13f3837737b --- /dev/null +++ b/tests/helpers/test_label_registry.py @@ -0,0 +1,455 @@ +"""Tests for the Label Registry.""" +import re +from typing import Any + +import pytest + +from homeassistant.core import HomeAssistant +from homeassistant.helpers import ( + device_registry as dr, + entity_registry as er, + label_registry as lr, +) +from homeassistant.helpers.label_registry import ( + EVENT_LABEL_REGISTRY_UPDATED, + STORAGE_KEY, + STORAGE_VERSION_MAJOR, + LabelRegistry, + async_get, + async_load, +) + +from tests.common import MockConfigEntry, async_capture_events, flush_store + + +async def test_list_labels(label_registry: lr.LabelRegistry) -> None: + """Make sure that we can read label.""" + labels = label_registry.async_list_labels() + assert len(list(labels)) == len(label_registry.labels) + + +async def test_create_label( + hass: HomeAssistant, label_registry: lr.LabelRegistry +) -> None: + """Make sure that we can create labels.""" + update_events = async_capture_events(hass, EVENT_LABEL_REGISTRY_UPDATED) + label = label_registry.async_create( + name="My Label", + color="#FF0000", + icon="mdi:test", + description="This label is for testing", + ) + + assert label.label_id == "my_label" + assert label.name == "My Label" + assert label.color == "#FF0000" + assert label.icon == "mdi:test" + assert label.description == "This label is for testing" + + assert len(label_registry.labels) == 1 + + await hass.async_block_till_done() + + assert len(update_events) == 1 + assert update_events[0].data == { + "action": "create", + "label_id": label.label_id, + } + + +async def test_create_label_with_name_already_in_use( + hass: HomeAssistant, label_registry: lr.LabelRegistry +) -> None: + """Make sure that we can't create a label with a ID already in use.""" + update_events = async_capture_events(hass, EVENT_LABEL_REGISTRY_UPDATED) + label_registry.async_create("mock") + + with pytest.raises( + ValueError, match=re.escape("The name mock (mock) is already in use") + ): + label_registry.async_create("mock") + + await hass.async_block_till_done() + + assert len(label_registry.labels) == 1 + assert len(update_events) == 1 + + +async def test_create_label_with_id_already_in_use( + label_registry: lr.LabelRegistry, +) -> None: + """Make sure that we can't create a label with a name already in use.""" + label = label_registry.async_create("Label") + + updated_label = label_registry.async_update(label.label_id, name="Renamed Label") + assert updated_label.label_id == label.label_id + + second_label = label_registry.async_create("Label") + assert label.label_id != second_label.label_id + assert second_label.label_id == "label_2" + + +async def test_delete_label( + hass: HomeAssistant, label_registry: lr.LabelRegistry +) -> None: + """Make sure that we can delete a label.""" + update_events = async_capture_events(hass, EVENT_LABEL_REGISTRY_UPDATED) + label = label_registry.async_create("Label") + assert len(label_registry.labels) == 1 + + label_registry.async_delete(label.label_id) + + assert not label_registry.labels + + await hass.async_block_till_done() + + assert len(update_events) == 2 + assert update_events[0].data == { + "action": "create", + "label_id": label.label_id, + } + assert update_events[1].data == { + "action": "remove", + "label_id": label.label_id, + } + + +async def test_delete_non_existing_label(label_registry: lr.LabelRegistry) -> None: + """Make sure that we can't delete a label that doesn't exist.""" + label_registry.async_create("mock") + + with pytest.raises(KeyError): + label_registry.async_delete("") + + assert len(label_registry.labels) == 1 + + +async def test_update_label( + hass: HomeAssistant, label_registry: lr.LabelRegistry +) -> None: + """Make sure that we can update labels.""" + update_events = async_capture_events(hass, EVENT_LABEL_REGISTRY_UPDATED) + label = label_registry.async_create("Mock") + + assert len(label_registry.labels) == 1 + assert label.label_id == "mock" + assert label.name == "Mock" + assert label.color is None + assert label.icon is None + assert label.description is None + + updated_label = label_registry.async_update( + label.label_id, + name="Updated", + color="#FFFFFF", + icon="mdi:update", + description="Updated description", + ) + + assert updated_label != label + assert updated_label.label_id == "mock" + assert updated_label.name == "Updated" + assert updated_label.color == "#FFFFFF" + assert updated_label.icon == "mdi:update" + assert updated_label.description == "Updated description" + + assert len(label_registry.labels) == 1 + + await hass.async_block_till_done() + + assert len(update_events) == 2 + assert update_events[0].data == { + "action": "create", + "label_id": label.label_id, + } + assert update_events[1].data == { + "action": "update", + "label_id": label.label_id, + } + + +async def test_update_label_with_same_data( + hass: HomeAssistant, label_registry: lr.LabelRegistry +) -> None: + """Make sure that we can reapply the same data to the label and it won't update.""" + update_events = async_capture_events(hass, EVENT_LABEL_REGISTRY_UPDATED) + label = label_registry.async_create( + "mock", + color="#FFFFFF", + icon="mdi:test", + description="Description", + ) + + udpated_label = label_registry.async_update( + label_id=label.label_id, + name="mock", + color="#FFFFFF", + icon="mdi:test", + description="Description", + ) + assert label == udpated_label + + await hass.async_block_till_done() + + # No update event + assert len(update_events) == 1 + assert update_events[0].data == { + "action": "create", + "label_id": label.label_id, + } + + +async def test_update_label_with_same_name_change_case( + hass: HomeAssistant, label_registry: lr.LabelRegistry +) -> None: + """Make sure that we can reapply the same name with a different case to the label.""" + label = label_registry.async_create("mock") + + updated_label = label_registry.async_update(label.label_id, name="Mock") + + assert updated_label.name == "Mock" + assert updated_label.label_id == label.label_id + assert updated_label.normalized_name == label.normalized_name + assert len(label_registry.labels) == 1 + + +async def test_update_label_with_name_already_in_use( + label_registry: lr.LabelRegistry, +) -> None: + """Make sure that we can't update a label with a name already in use.""" + label1 = label_registry.async_create("mock1") + label2 = label_registry.async_create("mock2") + + with pytest.raises( + ValueError, match=re.escape("The name mock2 (mock2) is already in use") + ): + label_registry.async_update(label1.label_id, name="mock2") + + assert label1.name == "mock1" + assert label2.name == "mock2" + assert len(label_registry.labels) == 2 + + +async def test_update_label_with_normalized_name_already_in_use( + label_registry: lr.LabelRegistry, +) -> None: + """Make sure that we can't update a label with a normalized name already in use.""" + label1 = label_registry.async_create("mock1") + label2 = label_registry.async_create("M O C K 2") + + with pytest.raises( + ValueError, match=re.escape("The name mock2 (mock2) is already in use") + ): + label_registry.async_update(label1.label_id, name="mock2") + + assert label1.name == "mock1" + assert label2.name == "M O C K 2" + assert len(label_registry.labels) == 2 + + +async def test_load_labels( + hass: HomeAssistant, label_registry: lr.LabelRegistry +) -> None: + """Make sure that we can load/save data correctly.""" + label1 = label_registry.async_create( + "Label One", + color="#FF000", + icon="mdi:one", + description="This label is label one", + ) + label2 = label_registry.async_create( + "Label Two", + color="#000FF", + icon="mdi:two", + description="This label is label two", + ) + + assert len(label_registry.labels) == 2 + + registry2 = LabelRegistry(hass) + await flush_store(label_registry._store) + await registry2.async_load() + + assert len(registry2.labels) == 2 + assert list(label_registry.labels) == list(registry2.labels) + + label1_registry2 = registry2.async_get_label_by_name("Label One") + assert label1_registry2.label_id == label1.label_id + assert label1_registry2.name == label1.name + assert label1_registry2.color == label1.color + assert label1_registry2.description == label1.description + assert label1_registry2.icon == label1.icon + assert label1_registry2.normalized_name == label1.normalized_name + + label2_registry2 = registry2.async_get_label_by_name("Label Two") + assert label2_registry2.name == label2.name + assert label2_registry2.color == label2.color + assert label2_registry2.description == label2.description + assert label2_registry2.icon == label2.icon + assert label2_registry2.normalized_name == label2.normalized_name + + +@pytest.mark.parametrize("load_registries", [False]) +async def test_loading_label_from_storage( + hass: HomeAssistant, hass_storage: Any +) -> None: + """Test loading stored labels on start.""" + hass_storage[STORAGE_KEY] = { + "version": STORAGE_VERSION_MAJOR, + "data": { + "labels": [ + { + "color": "#FFFFFF", + "description": None, + "icon": "mdi:test", + "label_id": "one", + "name": "One", + } + ] + }, + } + + await async_load(hass) + registry = async_get(hass) + + assert len(registry.labels) == 1 + + +async def test_getting_label(label_registry: lr.LabelRegistry) -> None: + """Make sure we can get the labels by name.""" + label = label_registry.async_create("Mock1") + label2 = label_registry.async_get_label_by_name("mock1") + label3 = label_registry.async_get_label_by_name("mock 1") + + assert label == label2 + assert label == label3 + assert label2 == label3 + + get_label = label_registry.async_get_label(label.label_id) + assert get_label == label + + +async def test_async_get_label_by_name_not_found( + label_registry: lr.LabelRegistry, +) -> None: + """Make sure we return None for non-existent labels.""" + label_registry.async_create("Mock1") + + assert len(label_registry.labels) == 1 + + assert label_registry.async_get_label_by_name("non_exist") is None + + +async def test_labels_removed_from_devices( + hass: HomeAssistant, + device_registry: dr.DeviceRegistry, + label_registry: lr.LabelRegistry, +) -> None: + """Test if label gets removed from devices when the label is removed.""" + config_entry = MockConfigEntry() + config_entry.add_to_hass(hass) + + label1 = label_registry.async_create("label1") + label2 = label_registry.async_create("label2") + assert len(label_registry.labels) == 2 + + entry = device_registry.async_get_or_create( + config_entry_id=config_entry.entry_id, + connections={(dr.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:23")}, + identifiers={("bridgeid", "0123")}, + manufacturer="manufacturer", + model="model", + ) + device_registry.async_update_device(entry.id, labels={label1.label_id}) + entry = device_registry.async_get_or_create( + config_entry_id=config_entry.entry_id, + connections={(dr.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:56")}, + identifiers={("bridgeid", "0456")}, + manufacturer="manufacturer", + model="model", + ) + device_registry.async_update_device(entry.id, labels={label2.label_id}) + entry = device_registry.async_get_or_create( + config_entry_id=config_entry.entry_id, + connections={(dr.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:89")}, + identifiers={("bridgeid", "0789")}, + manufacturer="manufacturer", + model="model", + ) + device_registry.async_update_device( + entry.id, labels={label1.label_id, label2.label_id} + ) + + entries = dr.async_entries_for_label(device_registry, label1.label_id) + assert len(entries) == 2 + entries = dr.async_entries_for_label(device_registry, label2.label_id) + assert len(entries) == 2 + + label_registry.async_delete(label1.label_id) + await hass.async_block_till_done() + + entries = dr.async_entries_for_label(device_registry, label1.label_id) + assert len(entries) == 0 + entries = dr.async_entries_for_label(device_registry, label2.label_id) + assert len(entries) == 2 + + label_registry.async_delete(label2.label_id) + await hass.async_block_till_done() + + entries = dr.async_entries_for_label(device_registry, label1.label_id) + assert len(entries) == 0 + entries = dr.async_entries_for_label(device_registry, label2.label_id) + assert len(entries) == 0 + + +async def test_labels_removed_from_entities( + hass: HomeAssistant, + entity_registry: er.EntityRegistry, + label_registry: lr.LabelRegistry, +) -> None: + """Test if label gets removed from entity when the label is removed.""" + label1 = label_registry.async_create("label1") + label2 = label_registry.async_create("label2") + assert len(label_registry.labels) == 2 + + entry = entity_registry.async_get_or_create( + domain="light", + platform="hue", + unique_id="123", + ) + entity_registry.async_update_entity(entry.entity_id, labels={label1.label_id}) + entry = entity_registry.async_get_or_create( + domain="light", + platform="hue", + unique_id="456", + ) + entity_registry.async_update_entity(entry.entity_id, labels={label2.label_id}) + entry = entity_registry.async_get_or_create( + domain="light", + platform="hue", + unique_id="789", + ) + entity_registry.async_update_entity( + entry.entity_id, labels={label1.label_id, label2.label_id} + ) + + entries = er.async_entries_for_label(entity_registry, label1.label_id) + assert len(entries) == 2 + entries = er.async_entries_for_label(entity_registry, label2.label_id) + assert len(entries) == 2 + + label_registry.async_delete(label1.label_id) + await hass.async_block_till_done() + + entries = er.async_entries_for_label(entity_registry, label1.label_id) + assert len(entries) == 0 + entries = er.async_entries_for_label(entity_registry, label2.label_id) + assert len(entries) == 2 + + label_registry.async_delete(label2.label_id) + await hass.async_block_till_done() + + entries = er.async_entries_for_label(entity_registry, label1.label_id) + assert len(entries) == 0 + entries = er.async_entries_for_label(entity_registry, label2.label_id) + assert len(entries) == 0