diff --git a/homeassistant/bootstrap.py b/homeassistant/bootstrap.py index cc3d87319d078d..ffa715be81251a 100644 --- a/homeassistant/bootstrap.py +++ b/homeassistant/bootstrap.py @@ -32,6 +32,7 @@ entity, entity_registry, issue_registry, + label_registry, recorder, restore_state, template, @@ -298,6 +299,7 @@ def _cache_uname_processor() -> None: device_registry.async_load(hass), entity_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 05e5d3b9a2de9e..2e9bd9501cbafa 100644 --- a/homeassistant/components/config/__init__.py +++ b/homeassistant/components/config/__init__.py @@ -35,6 +35,7 @@ "core", "device_registry", "entity_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 00000000000000..c453f1c26e1a77 --- /dev/null +++ b/homeassistant/components/config/label_registry.py @@ -0,0 +1,128 @@ +"""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.label_registry import LabelEntry, async_get + + +async 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(str, None), + vol.Optional("description"): vol.Any(str, None), + vol.Optional("icon"): vol.Any(str, 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_message(websocket_api.result_message(msg["id"], "success")) + + +@websocket_api.websocket_command( + { + vol.Required("type"): "config/label_registry/update", + vol.Required("label_id"): str, + vol.Optional("color"): vol.Any(str, None), + vol.Optional("description"): vol.Any(str, None), + vol.Optional("icon"): vol.Any(str, 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/const.py b/homeassistant/const.py index cd68b98b2e3278..222d6ab15627f6 100644 --- a/homeassistant/const.py +++ b/homeassistant/const.py @@ -509,6 +509,10 @@ class Platform(StrEnum): # Contains one string, the device ID ATTR_DEVICE_ID: Final = "device_id" +# Label identifier. Also used as service calls target parameter in which case +# it contains one string or a list of strings, each being an label id. +ATTR_LABEL_ID: Final = "label_id" + # String with a friendly name for the entity ATTR_FRIENDLY_NAME: Final = "friendly_name" diff --git a/homeassistant/helpers/config_validation.py b/homeassistant/helpers/config_validation.py index 7d63fb4a7b4e1b..db2234bb480cb3 100644 --- a/homeassistant/helpers/config_validation.py +++ b/homeassistant/helpers/config_validation.py @@ -29,6 +29,7 @@ ATTR_AREA_ID, ATTR_DEVICE_ID, ATTR_ENTITY_ID, + ATTR_LABEL_ID, CONF_ABOVE, CONF_ALIAS, CONF_ATTRIBUTE, @@ -1229,6 +1230,9 @@ def platform_only_config_schema(domain: str) -> Callable[[dict], dict]: vol.Optional(ATTR_AREA_ID): vol.Any( ENTITY_MATCH_NONE, vol.All(ensure_list, [vol.Any(dynamic_template, str)]) ), + vol.Optional(ATTR_LABEL_ID): vol.Any( + ENTITY_MATCH_NONE, vol.All(ensure_list, [vol.Any(dynamic_template, str)]) + ), } TARGET_SERVICE_FIELDS = { @@ -1246,6 +1250,9 @@ def platform_only_config_schema(domain: str) -> Callable[[dict], dict]: vol.Optional(ATTR_AREA_ID): vol.Any( ENTITY_MATCH_NONE, vol.All(ensure_list, [vol.Any(dynamic_template, str)]) ), + vol.Optional(ATTR_LABEL_ID): vol.Any( + ENTITY_MATCH_NONE, vol.All(ensure_list, [vol.Any(dynamic_template, str)]) + ), } diff --git a/homeassistant/helpers/device_registry.py b/homeassistant/helpers/device_registry.py index 52e779a3608ed0..59723de2b162dc 100644 --- a/homeassistant/helpers/device_registry.py +++ b/homeassistant/helpers/device_registry.py @@ -43,7 +43,7 @@ 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 @@ async def _async_migrate_func( # 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 @@ def async_update_device( 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,11 +734,12 @@ def async_update_device( ("disabled_by", disabled_by), ("entry_type", entry_type), ("hw_version", hw_version), + ("labels", labels), ("manufacturer", manufacturer), ("model", model), - ("name", name), ("name_by_user", name_by_user), ("serial_number", serial_number), + ("name", name), ("suggested_area", suggested_area), ("sw_version", sw_version), ("via_device_id", via_device_id), @@ -822,6 +829,7 @@ async def async_load(self) -> None: 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 @@ def _data_to_save(self) -> dict[str, list[dict[str, Any]]]: "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 @@ def async_clear_area_id(self, area_id: str) -> None: 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 an 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 diff --git a/homeassistant/helpers/entity_registry.py b/homeassistant/helpers/entity_registry.py index b6790ff0dc3e4f..cf7e378170954a 100644 --- a/homeassistant/helpers/entity_registry.py +++ b/homeassistant/helpers/entity_registry.py @@ -65,7 +65,7 @@ _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 @@ class _EventEntityRegistryUpdatedData_Update(TypedDict): 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 @@ -268,6 +270,7 @@ def as_partial_dict(self) -> dict[str, Any]: "platform": self.platform, "translation_key": self.translation_key, "unique_id": self.unique_id, + "labels": self.labels, } @cached_property @@ -348,7 +351,7 @@ def _domain_default(self) -> str: 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 @@ async def _async_migrate_func( 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 @@ -853,9 +861,10 @@ def _async_update_entity( device_id: str | None | UndefinedType = UNDEFINED, disabled_by: RegistryEntryDisabler | None | UndefinedType = UNDEFINED, entity_category: EntityCategory | None | UndefinedType = UNDEFINED, + has_entity_name: bool | UndefinedType = UNDEFINED, 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, @@ -903,9 +912,10 @@ def _async_update_entity( ("device_id", device_id), ("disabled_by", disabled_by), ("entity_category", entity_category), + ("has_entity_name", has_entity_name), ("hidden_by", hidden_by), ("icon", icon), - ("has_entity_name", has_entity_name), + ("labels", labels), ("name", name), ("options", options), ("original_device_class", original_device_class), @@ -980,9 +990,10 @@ def async_update_entity( device_id: str | None | UndefinedType = UNDEFINED, disabled_by: RegistryEntryDisabler | None | UndefinedType = UNDEFINED, entity_category: EntityCategory | None | UndefinedType = UNDEFINED, + has_entity_name: bool | UndefinedType = UNDEFINED, 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, @@ -1004,9 +1015,10 @@ def async_update_entity( device_id=device_id, disabled_by=disabled_by, entity_category=entity_category, + has_entity_name=has_entity_name, 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, @@ -1098,12 +1110,13 @@ async def async_load(self) -> None: if entity["entity_category"] else None, entity_id=entity["entity_id"], + has_entity_name=entity["has_entity_name"], hidden_by=RegistryEntryHider(entity["hidden_by"]) if entity["hidden_by"] else None, 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"], @@ -1156,10 +1169,11 @@ def _data_to_save(self) -> dict[str, Any]: "disabled_by": entry.disabled_by, "entity_category": entry.entity_category, "entity_id": entry.entity_id, + "has_entity_name": entry.has_entity_name, "hidden_by": entry.hidden_by, "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, @@ -1230,6 +1244,15 @@ def async_clear_area_id(self, area_id: str) -> None: if area_id == entry.area_id: self.async_update_entity(entity_id, area_id=None) + @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_get(hass: HomeAssistant) -> EntityRegistry: @@ -1264,6 +1287,14 @@ def async_entries_for_area( return [entry for entry in registry.entities.values() if entry.area_id == area_id] +@callback +def async_entries_for_label( + registry: EntityRegistry, label_id: str +) -> list[RegistryEntry]: + """Return entries that match an 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 diff --git a/homeassistant/helpers/label_registry.py b/homeassistant/helpers/label_registry.py new file mode 100644 index 00000000000000..ccf02839cf327e --- /dev/null +++ b/homeassistant/helpers/label_registry.py @@ -0,0 +1,242 @@ +"""Provide a way to label and categorize anything.""" +from __future__ import annotations + +from collections.abc import Iterable, MutableMapping +import dataclasses +from dataclasses import dataclass +from typing import cast + +from homeassistant.core import HomeAssistant, callback +from homeassistant.util import slugify + +from . import device_registry as dr, entity_registry as er +from .typing import UNDEFINED, UndefinedType + +DATA_REGISTRY = "label_registry" +EVENT_LABEL_REGISTRY_UPDATED = "label_registry_updated" +STORAGE_KEY = "core.label_registry" +STORAGE_VERSION_MAJOR = 1 +SAVE_DELAY = 10 + + +@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 LabelRegistry: + """Class to hold a registry of labels.""" + + def __init__(self, hass: HomeAssistant) -> None: + """Initialize the label registry.""" + self.hass = hass + self.labels: MutableMapping[str, LabelEntry] = {} + self._store = hass.helpers.storage.Store( + STORAGE_VERSION_MAJOR, + STORAGE_KEY, + atomic_writes=True, + ) + self._normalized_name_label_idx: dict[str, str] = {} + self.children: dict[str, set[str]] = {} + + @callback + def async_get_label(self, label_id: str) -> LabelEntry | None: + """Get label by id.""" + return self.labels.get(label_id) + + @callback + def async_get_label_by_name(self, name: str) -> LabelEntry | None: + """Get label by name.""" + normalized_name = normalize_label_name(name) + if normalized_name not in self._normalized_name_label_idx: + return None + return self.labels[self._normalized_name_label_idx[normalized_name]] + + @callback + def async_list_labels(self) -> Iterable[LabelEntry]: + """Get all labels.""" + return self.labels.values() + + @callback + def async_get_or_create(self, name: str) -> LabelEntry: + """Get or create an label.""" + if label := self.async_get_label_by_name(name): + return label + return self.async_create(name) + + @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.""" + normalized_name = normalize_label_name(name) + + if self.async_get_label_by_name(name): + raise ValueError(f"The name {name} ({normalized_name}) is already in use") + + label = LabelEntry( + color=color, + description=description, + icon=icon, + label_id=self._generate_id(name), + name=name, + normalized_name=normalized_name, + ) + self.labels[label.label_id] = label + self._normalized_name_label_idx[normalized_name] = label.label_id + self.async_schedule_save() + self.hass.bus.async_fire( + EVENT_LABEL_REGISTRY_UPDATED, + {"action": "create", "label_id": label.label_id}, + ) + return label + + @callback + def async_delete(self, label_id: str) -> None: + """Delete label.""" + label = self.labels[label_id] + + # Clean up all references + dr.async_get(self.hass).async_clear_label_id(label_id) + er.async_get(self.hass).async_clear_label_id(label_id) + + del self.labels[label_id] + del self._normalized_name_label_idx[label.normalized_name] + + self.hass.bus.async_fire( + EVENT_LABEL_REGISTRY_UPDATED, {"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 + } + + normalized_name = None + + if name is not UNDEFINED and name != old.name: + normalized_name = normalize_label_name(name) + if normalized_name != old.normalized_name and self.async_get_label_by_name( + name + ): + raise ValueError( + f"The name {name} ({normalized_name}) is already in use" + ) + + changes["name"] = name + changes["normalized_name"] = normalized_name + + if not changes: + return old + + new = self.labels[label_id] = dataclasses.replace(old, **changes) # type: ignore[arg-type] + if normalized_name is not None: + self._normalized_name_label_idx[ + normalized_name + ] = self._normalized_name_label_idx.pop(old.normalized_name) + + self.async_schedule_save() + self.hass.bus.async_fire( + EVENT_LABEL_REGISTRY_UPDATED, {"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: MutableMapping[str, LabelEntry] = {} + + 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._normalized_name_label_idx[normalized_name] = label["label_id"] + + self.labels = labels + + @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 an label name by removing whitespace and case folding.""" + return label_name.casefold().replace(" ", "") diff --git a/homeassistant/helpers/service.py b/homeassistant/helpers/service.py index 30516e3a0991e3..a15eb278938beb 100644 --- a/homeassistant/helpers/service.py +++ b/homeassistant/helpers/service.py @@ -17,6 +17,7 @@ ATTR_AREA_ID, ATTR_DEVICE_ID, ATTR_ENTITY_ID, + ATTR_LABEL_ID, CONF_ENTITY_ID, CONF_SERVICE, CONF_SERVICE_DATA, @@ -51,6 +52,7 @@ config_validation as cv, device_registry, entity_registry, + label_registry, template, translation, ) @@ -200,6 +202,7 @@ def __init__(self, service_call: ServiceCall) -> None: entity_ids: str | list | None = service_call_data.get(ATTR_ENTITY_ID) device_ids: str | list | None = service_call_data.get(ATTR_DEVICE_ID) area_ids: str | list | None = service_call_data.get(ATTR_AREA_ID) + label_ids: str | list | None = service_call_data.get(ATTR_LABEL_ID) self.entity_ids = ( set(cv.ensure_list(entity_ids)) if _has_match(entity_ids) else set() @@ -208,11 +211,16 @@ def __init__(self, service_call: ServiceCall) -> None: set(cv.ensure_list(device_ids)) if _has_match(device_ids) else set() ) self.area_ids = set(cv.ensure_list(area_ids)) if _has_match(area_ids) else set() + self.label_ids = ( + set(cv.ensure_list(label_ids)) if _has_match(label_ids) else set() + ) @property def has_any_selector(self) -> bool: """Determine if any selectors are present.""" - return bool(self.entity_ids or self.device_ids or self.area_ids) + return bool( + self.entity_ids or self.device_ids or self.area_ids or self.label_ids + ) @dataclasses.dataclass(slots=True) @@ -222,16 +230,19 @@ class SelectedEntities: # Entities that were explicitly mentioned. referenced: set[str] = dataclasses.field(default_factory=set) - # Entities that were referenced via device/area ID. + # Entities that were referenced via device/area/label ID. # Should not trigger a warning when they don't exist. indirectly_referenced: set[str] = dataclasses.field(default_factory=set) # Referenced items that could not be found. missing_devices: set[str] = dataclasses.field(default_factory=set) missing_areas: set[str] = dataclasses.field(default_factory=set) + missing_labels: set[str] = dataclasses.field(default_factory=set) # Referenced devices referenced_devices: set[str] = dataclasses.field(default_factory=set) + referenced_devices_by_labels: set[str] = dataclasses.field(default_factory=set) + referenced_devices_by_areas: set[str] = dataclasses.field(default_factory=set) def log_missing(self, missing_entities: set[str]) -> None: """Log about missing items.""" @@ -240,6 +251,7 @@ def log_missing(self, missing_entities: set[str]) -> None: ("areas", self.missing_areas), ("devices", self.missing_devices), ("entities", missing_entities), + ("labels", self.missing_labels), ): if items: parts.append(f"{label} {', '.join(sorted(items))}") @@ -470,12 +482,13 @@ def async_extract_referenced_entity_ids( selected.referenced.update(entity_ids) - if not selector.device_ids and not selector.area_ids: + if not selector.device_ids and not selector.area_ids and not selector.label_ids: return selected ent_reg = entity_registry.async_get(hass) dev_reg = device_registry.async_get(hass) area_reg = area_registry.async_get(hass) + label_reg = label_registry.async_get(hass) for device_id in selector.device_ids: if device_id not in dev_reg.devices: @@ -485,13 +498,29 @@ def async_extract_referenced_entity_ids( if area_id not in area_reg.areas: selected.missing_areas.add(area_id) + for label_id in selector.label_ids: + if label_id not in label_reg.labels: + selected.missing_labels.add(label_id) + # Find devices for targeted areas selected.referenced_devices.update(selector.device_ids) for device_entry in dev_reg.devices.values(): if device_entry.area_id in selector.area_ids: selected.referenced_devices.add(device_entry.id) + selected.referenced_devices_by_areas.add(device_entry.id) - if not selector.area_ids and not selected.referenced_devices: + # Find devices for targeted labels + selected.referenced_devices.update(selector.device_ids) + for device_entry in dev_reg.devices.values(): + if device_entry.labels.intersection(selector.label_ids): + selected.referenced_devices.add(device_entry.id) + selected.referenced_devices_by_labels.add(device_entry.id) + + if ( + not selector.area_ids + and not selector.label_ids + and not selected.referenced_devices + ): return selected for ent_entry in ent_reg.entities.values(): @@ -507,10 +536,14 @@ def async_extract_referenced_entity_ids( # has no explicitly set area or ( not ent_entry.area_id - and ent_entry.device_id in selected.referenced_devices + and ent_entry.device_id in selected.referenced_devices_by_areas ) # The entity's device matches a targeted device or ent_entry.device_id in selector.device_ids + # The entity's label matches a targeted label + or ent_entry.labels.intersection(selector.label_ids) + # The entity's device matches a device referenced by an label + or ent_entry.device_id in selected.referenced_devices_by_labels ): selected.indirectly_referenced.add(ent_entry.entity_id) diff --git a/homeassistant/helpers/template.py b/homeassistant/helpers/template.py index 1bb7220f7844b9..0bf0c5905a3af8 100644 --- a/homeassistant/helpers/template.py +++ b/homeassistant/helpers/template.py @@ -78,7 +78,13 @@ from homeassistant.util.read_only_dict import ReadOnlyDict from homeassistant.util.thread import ThreadWithException -from . import area_registry, device_registry, entity_registry, location as loc_helper +from . import ( + area_registry, + device_registry, + entity_registry, + label_registry, + location as loc_helper, +) from .singleton import singleton from .typing import TemplateVarsType @@ -1451,6 +1457,81 @@ def area_devices(hass: HomeAssistant, area_id_or_name: str) -> Iterable[str]: return [entry.id for entry in entries] +def labels(hass: HomeAssistant, lookup_value: Any = None) -> Iterable[str | None]: + """Return all labels, or those from a device ID or entity ID.""" + label_reg = label_registry.async_get(hass) + if lookup_value is None: + return [label.label_id for label in label_reg.async_list_labels()] + + ent_reg = entity_registry.async_get(hass) + + # Import here, not at top-level to avoid circular import + from . import config_validation as cv # pylint: disable=import-outside-toplevel + + try: + cv.entity_id(lookup_value) + except vol.Invalid: + pass + else: + if entity := ent_reg.async_get(str(lookup_value)): + return list(entity.labels) + + # Check if this could be a device ID + dev_reg = device_registry.async_get(hass) + if device := dev_reg.async_get(str(lookup_value)): + return list(device.labels) + + return [] + + +def label_id(hass: HomeAssistant, lookup_value: Any) -> str | None: + """Get the label ID from an label name.""" + label_reg = label_registry.async_get(hass) + if label := label_reg.async_get_label_by_name(str(lookup_value)): + return label.label_id + return None + + +def label_name(hass: HomeAssistant, lookup_value: str) -> str | None: + """Get the label name from an label id.""" + label_reg = label_registry.async_get(hass) + if label := label_reg.async_get_label(lookup_value): + return label.name + return None + + +def label_devices(hass: HomeAssistant, label_id_or_name: str) -> Iterable[str]: + """Return device IDs for a given label ID or name.""" + _label_id: str | None + # if label_name returns a value, we know the input was an ID, otherwise we + # assume it's a name, and if it's neither, we return early + if label_name(hass, label_id_or_name) is not None: + _label_id = label_id_or_name + else: + _label_id = label_id(hass, label_id_or_name) + if _label_id is None: + return [] + dev_reg = device_registry.async_get(hass) + entries = device_registry.async_entries_for_label(dev_reg, _label_id) + return [entry.id for entry in entries] + + +def label_entities(hass: HomeAssistant, label_id_or_name: str) -> Iterable[str]: + """Return entities for a given label ID or name.""" + _label_id: str | None + # if label_name returns a value, we know the input was an ID, otherwise we + # assume it's a name, and if it's neither, we return early + if label_name(hass, label_id_or_name) is not None: + _label_id = label_id_or_name + else: + _label_id = label_id(hass, label_id_or_name) + if _label_id is None: + return [] + ent_reg = entity_registry.async_get(hass) + entries = entity_registry.async_entries_for_label(ent_reg, _label_id) + return [entry.entity_id for entry in entries] + + def closest(hass, *args): """Find closest entity. @@ -2603,6 +2684,21 @@ def wrapper(_: Any, *args: _P.args, **kwargs: _P.kwargs) -> _R: self.globals["area_devices"] = hassfunction(area_devices) self.filters["area_devices"] = self.globals["area_devices"] + self.globals["labels"] = hassfunction(labels) + self.filters["labels"] = self.globals["labels"] + + self.globals["label_id"] = hassfunction(label_id) + self.filters["label_id"] = self.globals["label_id"] + + self.globals["label_name"] = hassfunction(label_name) + self.filters["label_name"] = self.globals["label_name"] + + self.globals["label_devices"] = hassfunction(label_devices) + self.filters["label_devices"] = self.globals["label_devices"] + + self.globals["label_entities"] = hassfunction(label_entities) + self.filters["label_entities"] = self.globals["label_entities"] + self.globals["integration_entities"] = hassfunction(integration_entities) self.filters["integration_entities"] = self.globals["integration_entities"] @@ -2636,6 +2732,8 @@ def warn_unsupported(*args: Any, **kwargs: Any) -> NoReturn: "area_name", "relative_time", "today_at", + "label_id", + "label_name", ] hass_filters = [ "closest", @@ -2644,6 +2742,8 @@ def warn_unsupported(*args: Any, **kwargs: Any) -> NoReturn: "area_id", "area_name", "has_value", + "label_id", + "label_name", ] hass_tests = [ "has_value", diff --git a/pyproject.toml b/pyproject.toml index d7680e5e8718c8..f9beac00037dbb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -688,6 +688,7 @@ voluptuous = "vol" "homeassistant.helpers.device_registry" = "dr" "homeassistant.helpers.entity_registry" = "er" "homeassistant.helpers.issue_registry" = "ir" +"homeassistant.helpers.label_registry" = "lr" "homeassistant.util.dt" = "dt_util" [tool.ruff.flake8-pytest-style] diff --git a/tests/common.py b/tests/common.py index 1b40904d5e2ed7..be719bd0c29c39 100644 --- a/tests/common.py +++ b/tests/common.py @@ -65,6 +65,7 @@ event, intent, issue_registry as ir, + label_registry as lr, recorder as recorder_helper, restore_state, restore_state as rs, @@ -281,6 +282,7 @@ def async_create_task(coroutine, name=None): dr.async_load(hass), er.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/config/test_entity_registry.py b/tests/components/config/test_entity_registry.py index 46af23a6d1fb13..8adbf1574d1089 100644 --- a/tests/components/config/test_entity_registry.py +++ b/tests/components/config/test_entity_registry.py @@ -74,6 +74,7 @@ async def test_list_entities(hass: HomeAssistant, client) -> None: "hidden_by": None, "icon": None, "id": ANY, + "labels": [], "name": "Hello World", "options": {}, "original_name": None, @@ -92,6 +93,7 @@ async def test_list_entities(hass: HomeAssistant, client) -> None: "hidden_by": None, "icon": None, "id": ANY, + "labels": [], "name": None, "options": {}, "original_name": None, @@ -137,6 +139,7 @@ class Unserializable: "hidden_by": None, "icon": None, "id": ANY, + "labels": [], "name": "Hello World", "options": {}, "original_name": None, @@ -234,6 +237,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", }, @@ -242,31 +246,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", }, ], @@ -308,6 +318,7 @@ class Unserializable: "di": "device123", "ei": "test_domain.test", "en": "Hello World", + "lb": [], "pl": "test_platform", }, ], @@ -352,6 +363,7 @@ async def test_get_entity(hass: HomeAssistant, client) -> None: "hidden_by": None, "icon": None, "id": ANY, + "labels": [], "name": "Hello World", "options": {}, "original_device_class": None, @@ -385,6 +397,7 @@ async def test_get_entity(hass: HomeAssistant, client) -> None: "hidden_by": None, "icon": None, "id": ANY, + "labels": [], "name": None, "options": {}, "original_device_class": None, @@ -443,6 +456,7 @@ async def test_get_entities(hass: HomeAssistant, client) -> None: "hidden_by": None, "icon": None, "id": ANY, + "labels": [], "name": "Hello World", "options": {}, "original_device_class": None, @@ -466,6 +480,7 @@ async def test_get_entities(hass: HomeAssistant, client) -> None: "hidden_by": None, "icon": None, "id": ANY, + "labels": [], "name": None, "options": {}, "original_device_class": None, @@ -535,6 +550,7 @@ async def test_update_entity(hass: HomeAssistant, client) -> None: "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, @@ -610,6 +626,7 @@ async def test_update_entity(hass: HomeAssistant, client) -> None: "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, @@ -650,6 +667,7 @@ async def test_update_entity(hass: HomeAssistant, client) -> None: "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, @@ -702,6 +720,7 @@ async def test_update_entity_require_restart(hass: HomeAssistant, client) -> Non "hidden_by": None, "icon": None, "id": ANY, + "labels": [], "name": None, "options": {}, "original_device_class": None, @@ -812,6 +831,7 @@ async def test_update_entity_no_changes(hass: HomeAssistant, client) -> None: "hidden_by": None, "icon": None, "id": ANY, + "labels": [], "name": "name of entity", "options": {}, "original_device_class": None, @@ -901,6 +921,7 @@ async def test_update_entity_id(hass: HomeAssistant, client) -> None: "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 00000000000000..d55cb216f37804 --- /dev/null +++ b/tests/components/config/test_label_registry.py @@ -0,0 +1,251 @@ +"""Test label registry API.""" +from collections.abc import Awaitable, Callable, Generator +from typing import Any + +from aiohttp import ClientWebSocketResponse +import pytest + +from homeassistant.components.config import label_registry +from homeassistant.core import HomeAssistant +from homeassistant.helpers import label_registry as lr + + +@pytest.fixture(name="client") +def client_fixture( + hass: HomeAssistant, + hass_ws_client: Callable[ + [HomeAssistant], Awaitable[Generator[ClientWebSocketResponse, Any, Any]] + ], +) -> Generator[ClientWebSocketResponse, None, None]: + """Fixture that can interact with the config manager API.""" + hass.loop.run_until_complete(label_registry.async_setup(hass)) + return hass.loop.run_until_complete(hass_ws_client(hass)) + + +async def test_list_labels( + hass: HomeAssistant, + client: ClientWebSocketResponse, + 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({"id": 1, "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( + hass: HomeAssistant, + client: ClientWebSocketResponse, + label_registry: lr.LabelRegistry, +) -> None: + """Test create entry.""" + await client.send_json( + { + "id": 1, + "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( + { + "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( + hass: HomeAssistant, + client: ClientWebSocketResponse, + 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( + {"id": 1, "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( + hass: HomeAssistant, + client: ClientWebSocketResponse, + label_registry: lr.LabelRegistry, +) -> None: + """Test delete entry.""" + label = label_registry.async_create("mock") + assert len(label_registry.labels) == 1 + + await client.send_json( + {"id": 1, "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( + hass: HomeAssistant, + client: ClientWebSocketResponse, + 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( + {"id": 1, "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( + hass: HomeAssistant, + client: ClientWebSocketResponse, + label_registry: lr.LabelRegistry, +) -> None: + """Test update entry.""" + label = label_registry.async_create("mock") + assert len(label_registry.labels) == 1 + + await client.send_json( + { + "id": 1, + "label_id": label.label_id, + "name": "UPDATED", + "icon": "mdi:test", + "color": "#00FF00", + "description": "This is an 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 an label description", + "icon": "mdi:test", + "label_id": "mock", + "name": "UPDATED", + } + + await client.send_json( + { + "id": 2, + "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( + hass: HomeAssistant, + client: ClientWebSocketResponse, + 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( + { + "id": 1, + "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 58cfc407a77701..851c1da4c62953 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 0e7c5ba547e740..bb6bd7d0f40c10 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 69d1eea4275e7d..34a149c10c2ce6 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 cc02e0a680b844..7b156dd894b27c 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 0b7edcbd3ead78..1f83877f14bf79 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 f699090c8cf37d..82422e7f37fe19 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 fffe89337e7271..e756fc26c9a909 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 985fc64146fa50..517652c1d84d02 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 f00bb345aeb347..da8b1455271f94 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 e6ca9e4fad59d2..ad8ccf43c55809 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 6ba4292c5de6cf..b042dfec2f109f 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 4ab4635683ca36..91d143a4ddb1e8 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({ }), diff --git a/tests/components/devolo_home_network/snapshots/test_switch.ambr b/tests/components/devolo_home_network/snapshots/test_switch.ambr index 4d268b2131778b..865b881a21594b 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 6dfba2de9c1c72..106b8f9885c2c5 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/elgato/snapshots/test_button.ambr b/tests/components/elgato/snapshots/test_button.ambr index e145c0b82bc3c2..36fcfb11801f72 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 727170128d17a6..a65f5c46b944f2 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 0322993ef99a28..0c6e593a2bce3e 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 d6b8896d5a272c..962563599f6e4d 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 00579ec70266ef..badbda7360bffb 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/gardena_bluetooth/snapshots/test_init.ambr b/tests/components/gardena_bluetooth/snapshots/test_init.ambr index ae0bb9ace09125..82e17896d60c98 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/gree/snapshots/test_climate.ambr b/tests/components/gree/snapshots/test_climate.ambr index fa35b5c111148f..e5d733bc6f0eb5 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 eff96ba1bd3c23..11ce7c5a060aea 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 29b71d18422b5b..d25a0f3bf70fcb 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({ }), @@ -80,6 +84,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -118,6 +124,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -158,6 +166,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -198,6 +208,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -246,6 +258,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -301,6 +315,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -347,6 +363,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -384,6 +402,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -421,6 +441,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -468,6 +490,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Anker', 'model': 'T8010', 'name': 'eufy HomeBase2-0AAA', @@ -492,6 +516,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -534,6 +560,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Anker', 'model': 'T8113', 'name': 'eufyCam2-0000', @@ -558,6 +586,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -595,6 +625,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -631,6 +663,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -670,6 +704,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -710,6 +746,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -753,6 +791,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Anker', 'model': 'T8113', 'name': 'eufyCam2-000A', @@ -777,6 +817,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -814,6 +856,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -850,6 +894,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -889,6 +935,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -929,6 +977,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -972,6 +1022,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Anker', 'model': 'T8113', 'name': 'eufyCam2-000A', @@ -996,6 +1048,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1033,6 +1087,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1069,6 +1125,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1108,6 +1166,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1148,6 +1208,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1195,6 +1257,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Aqara', 'model': 'HE1-G01', 'name': 'Aqara-Hub-E1-00A0', @@ -1219,6 +1283,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1260,6 +1326,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1301,6 +1369,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1342,6 +1412,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1385,6 +1457,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Aqara', 'model': 'AS006', 'name': 'Contact Sensor', @@ -1409,6 +1483,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1446,6 +1522,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1484,6 +1562,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1534,6 +1614,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Aqara', 'model': 'ZHWA11LM', 'name': 'Aqara Hub-1563', @@ -1558,6 +1640,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1599,6 +1683,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1644,6 +1730,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -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({ }), @@ -1789,6 +1881,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Aqara', 'model': 'AR004', 'name': 'Programmable Switch', @@ -1813,6 +1907,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1851,6 +1947,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1901,6 +1999,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Netgear, Inc', 'model': 'ABC1000', 'name': 'ArloBabyA0', @@ -1925,6 +2025,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1962,6 +2064,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -1998,6 +2102,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2044,6 +2150,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2098,6 +2206,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2138,6 +2248,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2180,6 +2292,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2221,6 +2335,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2260,6 +2376,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2297,6 +2415,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2344,6 +2464,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'ConnectSense', 'model': 'CS-IWO', 'name': 'InWall Outlet-0394DE', @@ -2368,6 +2490,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2406,6 +2530,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2447,6 +2573,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2488,6 +2616,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2529,6 +2659,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2570,6 +2702,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2611,6 +2745,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2650,6 +2786,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2687,6 +2825,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2734,6 +2874,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'ecobee Inc.', 'model': 'REMOTE SENSOR', 'name': 'Basement', @@ -2758,6 +2900,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2795,6 +2939,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2833,6 +2979,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2878,6 +3026,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'ecobee Inc.', 'model': 'ecobee3', 'name': 'HomeW', @@ -2902,6 +3052,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2939,6 +3091,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -2976,6 +3130,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3012,6 +3168,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3059,6 +3217,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3119,6 +3279,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3165,6 +3327,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({ }), @@ -3249,6 +3415,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3294,6 +3462,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'ecobee Inc.', 'model': 'REMOTE SENSOR', 'name': 'Kitchen', @@ -3318,6 +3488,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3355,6 +3527,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3393,6 +3567,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3438,6 +3614,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'ecobee Inc.', 'model': 'REMOTE SENSOR', 'name': 'Porch', @@ -3462,6 +3640,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3499,6 +3679,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3537,6 +3719,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3586,6 +3770,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'ecobee Inc.', 'model': 'ecobee3', 'name': 'HomeW', @@ -3610,6 +3796,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3647,6 +3835,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3684,6 +3874,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3720,6 +3912,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3767,6 +3961,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3827,6 +4023,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3873,6 +4071,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3916,6 +4116,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -3957,6 +4159,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4006,6 +4210,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'ecobee Inc.', 'model': 'REMOTE SENSOR', 'name': 'Basement', @@ -4030,6 +4236,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4067,6 +4275,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4109,6 +4319,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'ecobee Inc.', 'model': 'ecobee3', 'name': 'HomeW', @@ -4133,6 +4345,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4180,6 +4394,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4239,6 +4455,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4282,6 +4500,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4323,6 +4543,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4368,6 +4590,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'ecobee Inc.', 'model': 'REMOTE SENSOR', 'name': 'Kitchen', @@ -4392,6 +4616,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4429,6 +4655,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4467,6 +4695,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4512,6 +4742,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'ecobee Inc.', 'model': 'REMOTE SENSOR', 'name': 'Porch', @@ -4536,6 +4768,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4573,6 +4807,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4611,6 +4847,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4660,6 +4898,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'ecobee Inc.', 'model': 'ECB501', 'name': 'My ecobee', @@ -4684,6 +4924,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4721,6 +4963,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4758,6 +5002,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4794,6 +5040,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4845,6 +5093,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4910,6 +5160,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4956,6 +5208,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -4999,6 +5253,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5040,6 +5296,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5089,6 +5347,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'ecobee Inc.', 'model': 'ecobee Switch+', 'name': 'Master Fan', @@ -5113,6 +5373,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5150,6 +5412,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5187,6 +5451,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5225,6 +5491,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5266,6 +5534,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5305,6 +5575,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5351,6 +5623,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Elgato', 'model': 'Eve Degree 00AAA0000', 'name': 'Eve Degree AA11', @@ -5375,6 +5649,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5416,6 +5692,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5462,6 +5740,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5505,6 +5785,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5546,6 +5828,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5588,6 +5872,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5629,6 +5915,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5678,6 +5966,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Elgato', 'model': 'Eve Energy 20EAO8601', 'name': 'Eve Energy 50FF', @@ -5702,6 +5992,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5740,6 +6032,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5781,6 +6075,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5822,6 +6118,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5863,6 +6161,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5902,6 +6202,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5939,6 +6241,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -5986,6 +6290,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'José A. Jiménez Campos', 'model': 'RavenSystem HAA', 'name': 'HAA-C718B3', @@ -6010,6 +6316,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6046,6 +6354,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6083,6 +6393,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6122,6 +6434,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6169,6 +6483,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'José A. Jiménez Campos', 'model': 'RavenSystem HAA', 'name': 'HAA-C718B3', @@ -6193,6 +6509,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6229,6 +6547,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6637,6 +6957,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Home Assistant', 'model': 'Fan', 'name': 'Ceiling Fan', @@ -6661,6 +6983,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6699,6 +7023,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6746,6 +7072,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Home Assistant', 'model': 'Bridge', 'name': 'Home Assistant Bridge', @@ -6770,6 +7098,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6812,6 +7142,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Home Assistant', 'model': 'Fan', 'name': 'Living Room Fan', @@ -6836,6 +7168,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -6874,6 +7208,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -7878,6 +8214,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Home Assistant', 'model': 'Fan', 'name': 'Ceiling Fan', @@ -7902,6 +8240,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -7940,6 +8280,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -7987,6 +8329,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Home Assistant', 'model': 'Bridge', 'name': 'Home Assistant Bridge', @@ -8011,6 +8355,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -8053,6 +8399,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Home Assistant', 'model': 'Fan', 'name': 'Living Room Fan', @@ -8077,6 +8425,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -8115,6 +8465,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -8168,6 +8520,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Home Assistant', 'model': 'Bridge', 'name': 'Home Assistant Bridge', @@ -8192,6 +8546,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -8234,6 +8590,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Home Assistant', 'model': 'Fan', 'name': 'Living Room Fan', @@ -8258,6 +8616,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -8296,6 +8656,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9425,6 +9787,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Garzola Marco', 'model': 'Daikin-fwec3a-esp32-homekit-bridge', 'name': 'Air Conditioner', @@ -9449,6 +9813,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9501,6 +9867,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9559,6 +9927,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9608,6 +9978,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LTW012', 'name': 'Hue ambiance candle', @@ -9632,6 +10004,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9676,6 +10050,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9733,6 +10109,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LTW012', 'name': 'Hue ambiance candle', @@ -9757,6 +10135,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9801,6 +10181,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9858,6 +10240,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LTW012', 'name': 'Hue ambiance candle', @@ -9882,6 +10266,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9926,6 +10312,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -9983,6 +10371,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LTW012', 'name': 'Hue ambiance candle', @@ -10007,6 +10397,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10051,6 +10443,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10108,6 +10502,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LTW013', 'name': 'Hue ambiance spot', @@ -10132,6 +10528,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10176,6 +10574,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10243,6 +10643,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LTW013', 'name': 'Hue ambiance spot', @@ -10267,6 +10669,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10311,6 +10715,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10378,6 +10784,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'RWL021', 'name': 'Hue dimmer switch', @@ -10402,6 +10810,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10442,6 +10852,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10487,6 +10899,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10532,6 +10946,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10577,6 +10993,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10620,6 +11038,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10666,6 +11086,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LWB010', 'name': 'Hue white lamp', @@ -10690,6 +11112,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10730,6 +11154,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10778,6 +11204,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LWB010', 'name': 'Hue white lamp', @@ -10802,6 +11230,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10842,6 +11272,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10890,6 +11322,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LWB010', 'name': 'Hue white lamp', @@ -10914,6 +11348,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -10954,6 +11390,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11002,6 +11440,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LWB010', 'name': 'Hue white lamp', @@ -11026,6 +11466,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11066,6 +11508,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11114,6 +11558,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LWB010', 'name': 'Hue white lamp', @@ -11138,6 +11584,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11178,6 +11626,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11226,6 +11676,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LWB010', 'name': 'Hue white lamp', @@ -11250,6 +11702,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11290,6 +11744,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11338,6 +11794,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips', 'model': 'LWB010', 'name': 'Hue white lamp', @@ -11362,6 +11820,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11402,6 +11862,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11450,6 +11912,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Philips Lighting', 'model': 'BSB002', 'name': 'Philips hue - 482544', @@ -11474,6 +11938,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11520,6 +11986,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Koogeek', 'model': 'LS1', 'name': 'Koogeek-LS1-20833F', @@ -11544,6 +12012,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11589,6 +12059,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11651,6 +12123,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Koogeek', 'model': 'P1EU', 'name': 'Koogeek-P1-A00AA0', @@ -11675,6 +12149,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11713,6 +12189,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11752,6 +12230,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11799,6 +12279,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Koogeek', 'model': 'KH02CN', 'name': 'Koogeek-SW2-187A91', @@ -11823,6 +12305,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11861,6 +12345,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11900,6 +12386,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11936,6 +12424,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -11982,6 +12472,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Lennox', 'model': 'E30 2B', 'name': 'Lennox', @@ -12006,6 +12498,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12051,6 +12545,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12107,6 +12603,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12150,6 +12648,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12191,6 +12691,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12240,6 +12742,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'LG Electronics', 'model': 'OLED55B9PUA', 'name': 'LG webOS TV AF80', @@ -12264,6 +12768,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12310,6 +12816,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12358,6 +12866,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12405,6 +12915,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Lutron Electronics Co., Inc', 'model': 'PD-FSQN-XX', 'name': 'Caséta® Wireless Fan Speed Control', @@ -12429,6 +12941,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12467,6 +12981,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12514,6 +13030,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Lutron Electronics Co., Inc', 'model': 'L-BDG2-WH', 'name': 'Smart Bridge 2', @@ -12538,6 +13056,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12584,6 +13104,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Meross', 'model': 'MSS425F', 'name': 'MSS425F-15cc', @@ -12608,6 +13130,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12644,6 +13168,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12680,6 +13206,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12716,6 +13244,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12752,6 +13282,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12788,6 +13320,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12834,6 +13368,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Meross', 'model': 'MSS565', 'name': 'MSS565-28da', @@ -12858,6 +13394,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12898,6 +13436,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -12950,6 +13490,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Empowered Homes Inc.', 'model': 'v1', 'name': 'Mysa-85dda9', @@ -12974,6 +13516,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13019,6 +13563,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13072,6 +13618,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13119,6 +13667,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13162,6 +13712,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13203,6 +13755,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13252,6 +13806,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Nanoleaf', 'model': 'NL55', 'name': 'Nanoleaf Strip 3B32', @@ -13276,6 +13832,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13312,6 +13870,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13357,6 +13917,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13428,6 +13990,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13483,6 +14047,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13539,6 +14105,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Netatmo', 'model': 'Netatmo Doorbell', 'name': 'Netatmo-Doorbell-g738658', @@ -13563,6 +14131,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13600,6 +14170,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13636,6 +14208,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13679,6 +14253,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13722,6 +14298,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13759,6 +14337,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13806,6 +14386,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Netatmo', 'model': 'Smart CO Alarm', 'name': 'Smart CO Alarm', @@ -13830,6 +14412,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13867,6 +14451,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13904,6 +14490,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -13950,6 +14538,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Netatmo', 'model': 'Healthy Home Coach', 'name': 'Healthy Home Coach', @@ -13974,6 +14564,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14012,6 +14604,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14052,6 +14646,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14093,6 +14689,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14134,6 +14732,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14175,6 +14775,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14224,6 +14826,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Green Electronics LLC', 'model': 'SPK5 Pro', 'name': 'RainMachine-00ce4a', @@ -14248,6 +14852,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14284,6 +14890,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14324,6 +14932,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14364,6 +14974,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14404,6 +15016,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14444,6 +15058,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14484,6 +15100,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14524,6 +15142,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14564,6 +15184,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14614,6 +15236,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'RYSE Inc.', 'model': 'RYSE Shade', 'name': 'Master Bath South', @@ -14638,6 +15262,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14674,6 +15300,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14714,6 +15342,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14760,6 +15390,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'RYSE Inc.', 'model': 'RYSE SmartBridge', 'name': 'RYSE SmartBridge', @@ -14784,6 +15416,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14826,6 +15460,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'RYSE Inc.', 'model': 'RYSE Shade', 'name': 'RYSE SmartShade', @@ -14850,6 +15486,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14886,6 +15524,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14926,6 +15566,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -14976,6 +15618,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'RYSE Inc.', 'model': 'RYSE Shade', 'name': 'BR Left', @@ -15000,6 +15644,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15036,6 +15682,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15076,6 +15724,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15122,6 +15772,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'RYSE Inc.', 'model': 'RYSE Shade', 'name': 'LR Left', @@ -15146,6 +15798,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15182,6 +15836,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15222,6 +15878,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15268,6 +15926,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'RYSE Inc.', 'model': 'RYSE Shade', 'name': 'LR Right', @@ -15292,6 +15952,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15328,6 +15990,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15368,6 +16032,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15414,6 +16080,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'RYSE Inc.', 'model': 'RYSE SmartBridge', 'name': 'RYSE SmartBridge', @@ -15438,6 +16106,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15480,6 +16150,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'RYSE Inc.', 'model': 'RYSE Shade', 'name': 'RZSS', @@ -15504,6 +16176,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15540,6 +16214,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15580,6 +16256,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15630,6 +16308,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Schlage ', 'model': 'BE479CAM619', 'name': 'SENSE ', @@ -15654,6 +16334,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15690,6 +16372,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15737,6 +16421,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'Hunter Fan', 'model': 'SIMPLEconnect', 'name': 'SIMPLEconnect Fan-06F674', @@ -15761,6 +16447,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15799,6 +16487,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15845,6 +16535,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15897,6 +16589,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'VELUX', 'model': 'VELUX Gateway', 'name': 'VELUX Gateway', @@ -15921,6 +16615,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -15963,6 +16659,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'VELUX', 'model': 'VELUX Sensor', 'name': 'VELUX Sensor', @@ -15987,6 +16685,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16025,6 +16725,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16066,6 +16768,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16107,6 +16811,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16152,6 +16858,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'VELUX', 'model': 'VELUX Window', 'name': 'VELUX Window', @@ -16176,6 +16884,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16212,6 +16922,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16261,6 +16973,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'VOCOlinc', 'model': 'Flowerbud', 'name': 'VOCOlinc-Flowerbud-0d324b', @@ -16285,6 +16999,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16328,6 +17044,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16384,6 +17102,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16451,6 +17171,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16494,6 +17216,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16543,6 +17267,8 @@ ]), ]), 'is_new': False, + 'labels': list([ + ]), 'manufacturer': 'VOCOlinc', 'model': 'VP3', 'name': 'VOCOlinc-VP3-123456', @@ -16567,6 +17293,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16605,6 +17333,8 @@ 'has_entity_name': False, 'hidden_by': None, 'icon': None, + 'labels': list([ + ]), 'name': None, 'options': dict({ }), @@ -16644,6 +17374,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 2e6422f7a2d063..4bcda8f38ac939 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 fc1c3c74a03f71..4ac6525dd72512 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 f3a78d14d5ba70..0847aa4f518f3a 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({ }), @@ -3281,6 +3435,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -3308,6 +3464,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3358,6 +3516,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -3387,6 +3547,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3438,6 +3600,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -3467,6 +3631,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3518,6 +3684,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -3547,6 +3715,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3598,6 +3768,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -3627,6 +3799,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -3678,6 +3852,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -3707,6 +3883,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -3761,6 +3939,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -3790,6 +3970,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -3844,6 +4026,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -3873,6 +4057,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -3927,6 +4113,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -3956,6 +4144,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -4010,6 +4200,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -4044,6 +4236,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4099,6 +4293,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -4128,6 +4324,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4179,6 +4377,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -4208,6 +4408,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4259,6 +4461,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -4288,6 +4492,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4339,6 +4545,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -4368,6 +4576,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4418,6 +4628,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -4445,6 +4657,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4495,6 +4709,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -4524,6 +4740,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4575,6 +4793,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -4604,6 +4824,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4655,6 +4877,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -4684,6 +4908,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4735,6 +4961,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -4762,6 +4990,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4810,6 +5040,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -4839,6 +5071,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4890,6 +5124,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -4919,6 +5155,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -4970,6 +5208,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -4999,6 +5239,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5050,6 +5292,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -5079,6 +5323,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5130,6 +5376,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -5159,6 +5407,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5210,6 +5460,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -5239,6 +5491,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5290,6 +5544,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -5319,6 +5575,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5370,6 +5628,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -5399,6 +5659,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5450,6 +5712,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -5479,6 +5743,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5530,6 +5796,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -5559,6 +5827,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5610,6 +5880,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -5639,6 +5911,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5717,6 +5991,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5765,6 +6041,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -5792,6 +6070,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5840,6 +6120,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -5867,6 +6149,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -5917,6 +6201,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -5946,6 +6232,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -6000,6 +6288,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -6027,6 +6317,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -6075,6 +6367,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -6104,6 +6398,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -6158,6 +6454,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -6187,6 +6485,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -6241,6 +6541,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -6270,6 +6572,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -6324,6 +6628,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -6351,6 +6657,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -6399,6 +6707,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -6426,6 +6736,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -6474,6 +6786,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -6508,6 +6822,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -6592,6 +6908,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -6643,6 +6961,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -6672,6 +6992,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -6723,6 +7045,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -6752,6 +7076,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -6803,6 +7129,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -6832,6 +7160,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -6883,6 +7213,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -6912,6 +7244,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -6963,6 +7297,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -6992,6 +7328,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -7043,6 +7381,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -7072,6 +7412,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -7123,6 +7465,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -7152,6 +7496,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -7203,6 +7549,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -7232,6 +7580,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -7283,6 +7633,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -7312,6 +7664,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -7363,6 +7717,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -7392,6 +7748,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -7443,6 +7801,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -7472,6 +7832,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -7523,6 +7885,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -7552,6 +7916,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -7603,6 +7969,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -7632,6 +8000,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -7683,6 +8053,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -7712,6 +8084,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -7763,6 +8137,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -7790,6 +8166,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -7838,6 +8216,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -7865,6 +8245,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -7913,6 +8295,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -7940,6 +8324,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -7988,6 +8374,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -8015,6 +8403,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -8063,6 +8453,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -8090,6 +8482,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -8138,6 +8532,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -8165,6 +8561,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -8213,6 +8611,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -8242,6 +8642,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -8292,6 +8694,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -8319,6 +8723,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -8367,6 +8773,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -8396,6 +8804,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -8514,6 +8924,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Gas meter', @@ -8543,6 +8955,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -8738,6 +9152,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Heat meter', @@ -8767,6 +9183,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -8962,6 +9380,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Inlet heat meter', @@ -8991,6 +9411,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -9260,6 +9682,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Warm water meter', @@ -9289,6 +9713,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -9484,6 +9910,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Water meter', @@ -9513,6 +9941,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -9542,38 +9972,6 @@ 'state': '222.222', }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_active_average_demand:device-registry] - DeviceRegistryEntrySnapshot({ - 'area_id': None, - 'config_entries': , - 'configuration_url': None, - 'connections': set({ - tuple( - 'mac', - '3c:39:e7:aa:bb:cc', - ), - }), - 'disabled_by': None, - 'entry_type': None, - 'hw_version': None, - 'id': , - 'identifiers': set({ - tuple( - 'homewizard', - '3c39e7aabbcc', - ), - }), - 'is_new': False, - 'manufacturer': 'HomeWizard', - 'model': 'HWE-P1', - 'name': 'Device', - 'name_by_user': None, - 'serial_number': None, - 'suggested_area': None, - 'sw_version': '4.19', - 'via_device_id': None, - }) -# --- # name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_active_average_demand:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ @@ -9651,44 +10049,11 @@ 'via_device_id': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_active_current_phase_1:entity-registry] - EntityRegistryEntrySnapshot({ - 'aliases': set({ - }), - 'area_id': None, - 'capabilities': dict({ - 'state_class': , - }), - 'config_entry_id': , - 'device_class': None, - 'device_id': , - 'disabled_by': None, - 'domain': 'sensor', - 'entity_category': None, - 'entity_id': 'sensor.device_active_current_phase_1', - 'has_entity_name': True, - 'hidden_by': None, - 'icon': None, - 'id': , - 'name': None, - 'options': dict({ - }), - 'original_device_class': , - 'original_icon': None, - 'original_name': 'Active current phase 1', - 'platform': 'homewizard', - 'previous_unique_id': None, - 'supported_features': 0, - 'translation_key': 'active_current_phase_a', - 'unique_id': 'aabbccddeeff_active_current_l1_a', - 'unit_of_measurement': , - }) -# --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_active_current_phase_1:state] - StateSnapshot({ - 'attributes': ReadOnlyDict({ - 'device_class': 'current', - 'friendly_name': 'Device Active current phase 1', +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_active_current_phase_1:state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'current', + 'friendly_name': 'Device Active current phase 1', 'state_class': , 'unit_of_measurement': , }), @@ -9699,71 +10064,6 @@ 'state': '0', }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_active_current_phase_2:device-registry] - DeviceRegistryEntrySnapshot({ - 'area_id': None, - 'config_entries': , - 'configuration_url': None, - 'connections': set({ - tuple( - 'mac', - '3c:39:e7:aa:bb:cc', - ), - }), - 'disabled_by': None, - 'entry_type': None, - 'hw_version': None, - 'id': , - 'identifiers': set({ - tuple( - 'homewizard', - '3c39e7aabbcc', - ), - }), - 'is_new': False, - 'manufacturer': 'HomeWizard', - 'model': 'HWE-P1', - 'name': 'Device', - 'name_by_user': None, - 'serial_number': None, - 'suggested_area': None, - 'sw_version': '4.19', - 'via_device_id': None, - }) -# --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_active_current_phase_2:entity-registry] - EntityRegistryEntrySnapshot({ - 'aliases': set({ - }), - 'area_id': None, - 'capabilities': dict({ - 'state_class': , - }), - 'config_entry_id': , - 'device_class': None, - 'device_id': , - 'disabled_by': None, - 'domain': 'sensor', - 'entity_category': None, - 'entity_id': 'sensor.device_active_current_phase_2', - 'has_entity_name': True, - 'hidden_by': None, - 'icon': None, - 'id': , - 'name': None, - 'options': dict({ - }), - 'original_device_class': , - 'original_icon': None, - 'original_name': 'Active current phase 2', - 'platform': 'homewizard', - 'previous_unique_id': None, - 'supported_features': 0, - 'translation_key': 'active_current_phase_a', - 'unique_id': 'aabbccddeeff_active_current_l2_a', - 'unit_of_measurement': , - }) -# --- # name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_active_current_phase_2:state] StateSnapshot({ 'attributes': ReadOnlyDict({ @@ -10612,6 +10912,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -10639,6 +10941,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -10689,6 +10993,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -10718,6 +11024,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -10769,6 +11077,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -10798,6 +11108,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -10849,6 +11161,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -10878,6 +11192,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -10929,6 +11245,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -10958,6 +11276,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -11009,6 +11329,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -11038,6 +11360,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -11089,6 +11413,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -11118,6 +11444,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -11169,6 +11497,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -11198,6 +11528,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -11249,6 +11581,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -11278,6 +11612,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -11329,6 +11665,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -11358,6 +11696,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -11409,6 +11749,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -11438,6 +11780,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -11489,6 +11833,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -11518,6 +11864,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -11569,6 +11917,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -11598,6 +11948,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -11649,6 +12001,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -11678,6 +12032,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -11729,6 +12085,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -11758,6 +12116,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -11809,6 +12169,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -11836,6 +12198,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -11863,66 +12227,20 @@ }) # --- # name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_peak_demand_current_month:device-registry] - DeviceRegistryEntrySnapshot({ - 'area_id': None, - 'config_entries': , - 'configuration_url': None, - 'connections': set({ - tuple( - 'mac', - '3c:39:e7:aa:bb:cc', - ), - }), - 'disabled_by': None, - 'entry_type': None, - 'hw_version': None, - 'id': , - 'identifiers': set({ - tuple( - 'homewizard', - '3c39e7aabbcc', - ), - }), - 'is_new': False, - 'manufacturer': 'HomeWizard', - 'model': 'HWE-P1', - 'name': 'Device', - 'name_by_user': None, - 'serial_number': None, - 'suggested_area': None, - 'sw_version': '4.19', - 'via_device_id': None, - }) -# --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_peak_demand_current_month:entity-registry] - EntityRegistryEntrySnapshot({ - 'aliases': set({ + 'labels': set({ }), - 'area_id': None, - 'capabilities': None, - 'config_entry_id': , - 'device_class': None, - 'device_id': , - 'disabled_by': None, - 'domain': 'sensor', - 'entity_category': None, - 'entity_id': 'sensor.device_peak_demand_current_month', - 'has_entity_name': True, - 'hidden_by': None, - 'icon': None, - 'id': , 'name': None, 'options': dict({ }), - 'original_device_class': , - 'original_icon': None, - 'original_name': 'Peak demand current month', + 'original_device_class': , + 'original_icon': 'mdi:calendar-clock', + 'original_name': 'Active tariff', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'monthly_power_peak_w', - 'unique_id': 'aabbccddeeff_monthly_power_peak_w', - 'unit_of_measurement': , + 'translation_key': 'active_tariff', + 'unique_id': 'aabbccddeeff_active_tariff', + 'unit_of_measurement': None, }) # --- # name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_peak_demand_current_month:state] @@ -11961,6 +12279,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -11990,6 +12310,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -12044,6 +12366,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -12071,6 +12395,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -12119,6 +12445,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -12148,6 +12476,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -12202,6 +12532,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -12231,6 +12563,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -12285,6 +12619,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -12314,6 +12650,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -12411,51 +12749,11 @@ 'unit_of_measurement': , }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_export:state] - StateSnapshot({ - 'attributes': ReadOnlyDict({ - 'device_class': 'energy', - 'friendly_name': 'Device Total energy export', - 'state_class': , - 'unit_of_measurement': , - }), - 'context': , - 'entity_id': 'sensor.device_total_energy_export', +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_export_tariff_1:device-registry] + 'entity_id': 'sensor.device_total_power_export_tariff_1', 'last_changed': , 'last_updated': , - 'state': '0.0', - }) -# --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_export_tariff_1:device-registry] - DeviceRegistryEntrySnapshot({ - 'area_id': None, - 'config_entries': , - 'configuration_url': None, - 'connections': set({ - tuple( - 'mac', - '3c:39:e7:aa:bb:cc', - ), - }), - 'disabled_by': None, - 'entry_type': None, - 'hw_version': None, - 'id': , - 'identifiers': set({ - tuple( - 'homewizard', - '3c39e7aabbcc', - ), - }), - 'is_new': False, - 'manufacturer': 'HomeWizard', - 'model': 'HWE-P1', - 'name': 'Device', - 'name_by_user': None, - 'serial_number': None, - 'suggested_area': None, - 'sw_version': '4.19', - 'via_device_id': None, + 'state': '4321.333', }) # --- # name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_export_tariff_1:entity-registry] @@ -12506,39 +12804,63 @@ 'state': '0.0', }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_export_tariff_2:device-registry] - DeviceRegistryEntrySnapshot({ - 'area_id': None, - 'config_entries': , - 'configuration_url': None, - 'connections': set({ - tuple( - 'mac', - '3c:39:e7:aa:bb:cc', - ), - }), - 'disabled_by': None, - 'entry_type': None, - 'hw_version': None, - 'id': , - 'identifiers': set({ - tuple( - 'homewizard', - '3c39e7aabbcc', - ), - }), - 'is_new': False, - 'manufacturer': 'HomeWizard', - 'model': 'HWE-P1', - 'name': 'Device', - 'name_by_user': None, - 'serial_number': None, - 'suggested_area': None, - 'sw_version': '4.19', - 'via_device_id': None, +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_export_tariff_3:device-registry] + 'entity_id': 'sensor.device_total_power_export_tariff_2', + 'last_changed': , + 'last_updated': , + 'state': '8765.444', + }) +# --- +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_export_tariff_4:device-registry] + 'entity_id': 'sensor.device_total_power_export_tariff_3', + 'last_changed': , + 'last_updated': , + 'state': '8765.444', + }) +# --- +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_import:device-registry] + 'entity_id': 'sensor.device_total_power_export_tariff_4', + 'last_changed': , + 'last_updated': , + 'state': '8765.444', + }) +# --- +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_import_tariff_1:device-registry] + 'entity_id': 'sensor.device_total_power_import', + 'last_changed': , + 'last_updated': , + 'state': '13779.338', + }) +# --- +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_import_tariff_2:device-registry] + 'entity_id': 'sensor.device_total_power_import_tariff_1', + 'last_changed': , + 'last_updated': , + 'state': '10830.511', + }) +# --- +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_import_tariff_3:device-registry] + 'entity_id': 'sensor.device_total_power_import_tariff_2', + 'last_changed': , + 'last_updated': , + 'state': '2948.827', + }) +# --- +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_import_tariff_4:device-registry] + 'entity_id': 'sensor.device_total_power_import_tariff_3', + 'last_changed': , + 'last_updated': , + 'state': '2948.827', + }) +# --- +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_gas:device-registry] + 'entity_id': 'sensor.device_total_power_import_tariff_4', + 'last_changed': , + 'last_updated': , + 'state': '2948.827', }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_export_tariff_2:entity-registry] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_gas:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -12552,7 +12874,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_total_energy_export_tariff_2', + 'entity_id': 'sensor.device_total_gas', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -12560,33 +12882,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Total energy export tariff 2', + 'original_name': 'Total gas', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_energy_export_tariff_kwh', - 'unique_id': 'aabbccddeeff_total_power_export_t2_kwh', - 'unit_of_measurement': , + 'translation_key': 'total_gas_m3', + 'unique_id': 'aabbccddeeff_total_gas_m3', + 'unit_of_measurement': , }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_export_tariff_2:state] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_gas:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'energy', - 'friendly_name': 'Device Total energy export tariff 2', + 'device_class': 'gas', + 'friendly_name': 'Device Total gas', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_total_energy_export_tariff_2', + 'entity_id': 'sensor.device_total_gas', 'last_changed': , 'last_updated': , 'state': '0.0', }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_export_tariff_3:device-registry] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_water_usage:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -12608,6 +12930,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -12618,7 +12942,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_export_tariff_3:entity-registry] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_water_usage:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -12632,41 +12956,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_total_energy_export_tariff_3', + 'entity_id': 'sensor.device_total_water_usage', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Total energy export tariff 3', + 'original_name': 'Total water usage', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_energy_export_tariff_kwh', - 'unique_id': 'aabbccddeeff_total_power_export_t3_kwh', - 'unit_of_measurement': , + 'translation_key': 'total_liter_m3', + 'unique_id': 'aabbccddeeff_total_liter_m3', + 'unit_of_measurement': , }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_export_tariff_3:state] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_water_usage:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'energy', - 'friendly_name': 'Device Total energy export tariff 3', + 'device_class': 'water', + 'friendly_name': 'Device Total water usage', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_total_energy_export_tariff_3', + 'entity_id': 'sensor.device_total_water_usage', 'last_changed': , 'last_updated': , 'state': '0.0', }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_export_tariff_4:device-registry] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_phase_1:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -12688,6 +13014,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -12698,13 +13026,13 @@ 'via_device_id': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_export_tariff_4:entity-registry] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_phase_1:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, 'capabilities': dict({ - 'state_class': , + 'state_class': , }), 'config_entry_id': , 'device_class': None, @@ -12712,41 +13040,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_total_energy_export_tariff_4', + 'entity_id': 'sensor.device_voltage_phase_1', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Total energy export tariff 4', + 'original_name': 'Voltage phase 1', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_energy_export_tariff_kwh', - 'unique_id': 'aabbccddeeff_total_power_export_t4_kwh', - 'unit_of_measurement': , + 'translation_key': 'active_voltage_phase_v', + 'unique_id': 'aabbccddeeff_active_voltage_l1_v', + 'unit_of_measurement': , }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_export_tariff_4:state] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_phase_1:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'energy', - 'friendly_name': 'Device Total energy export tariff 4', - 'state_class': , - 'unit_of_measurement': , + 'device_class': 'voltage', + 'friendly_name': 'Device Voltage phase 1', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_total_energy_export_tariff_4', + 'entity_id': 'sensor.device_voltage_phase_1', 'last_changed': , 'last_updated': , 'state': '0.0', }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_import:device-registry] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_phase_2:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -12768,6 +13098,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -12778,13 +13110,13 @@ 'via_device_id': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_import:entity-registry] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_phase_2:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, 'capabilities': dict({ - 'state_class': , + 'state_class': , }), 'config_entry_id': , 'device_class': None, @@ -12792,41 +13124,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_total_energy_import', + 'entity_id': 'sensor.device_voltage_phase_2', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Total energy import', + 'original_name': 'Voltage phase 2', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_energy_import_kwh', - 'unique_id': 'aabbccddeeff_total_power_import_kwh', - 'unit_of_measurement': , + 'translation_key': 'active_voltage_phase_v', + 'unique_id': 'aabbccddeeff_active_voltage_l2_v', + 'unit_of_measurement': , }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_import:state] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_phase_2:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'energy', - 'friendly_name': 'Device Total energy import', - 'state_class': , - 'unit_of_measurement': , + 'device_class': 'voltage', + 'friendly_name': 'Device Voltage phase 2', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_total_energy_import', + 'entity_id': 'sensor.device_voltage_phase_2', 'last_changed': , 'last_updated': , 'state': '0.0', }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_import_tariff_1:device-registry] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_phase_3:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -12848,6 +13182,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -12858,13 +13194,13 @@ 'via_device_id': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_import_tariff_1:entity-registry] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_phase_3:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, 'capabilities': dict({ - 'state_class': , + 'state_class': , }), 'config_entry_id': , 'device_class': None, @@ -12872,41 +13208,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_total_energy_import_tariff_1', + 'entity_id': 'sensor.device_voltage_phase_3', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Total energy import tariff 1', + 'original_name': 'Voltage phase 3', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_energy_import_tariff_kwh', - 'unique_id': 'aabbccddeeff_total_power_import_t1_kwh', - 'unit_of_measurement': , + 'translation_key': 'active_voltage_phase_v', + 'unique_id': 'aabbccddeeff_active_voltage_l3_v', + 'unit_of_measurement': , }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_import_tariff_1:state] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_phase_3:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'energy', - 'friendly_name': 'Device Total energy import tariff 1', - 'state_class': , - 'unit_of_measurement': , + 'device_class': 'voltage', + 'friendly_name': 'Device Voltage phase 3', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_total_energy_import_tariff_1', + 'entity_id': 'sensor.device_voltage_phase_3', 'last_changed': , 'last_updated': , 'state': '0.0', }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_import_tariff_2:device-registry] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_sags_detected_phase_1:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -12928,6 +13266,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -12938,55 +13278,52 @@ 'via_device_id': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_import_tariff_2:entity-registry] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_sags_detected_phase_1:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': dict({ - 'state_class': , - }), + 'capabilities': None, 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, - 'entity_id': 'sensor.device_total_energy_import_tariff_2', + 'entity_category': , + 'entity_id': 'sensor.device_voltage_sags_detected_phase_1', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': None, 'original_icon': None, - 'original_name': 'Total energy import tariff 2', + 'original_name': 'Voltage sags detected phase 1', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_energy_import_tariff_kwh', - 'unique_id': 'aabbccddeeff_total_power_import_t2_kwh', - 'unit_of_measurement': , + 'translation_key': 'voltage_sag_phase_count', + 'unique_id': 'aabbccddeeff_voltage_sag_l1_count', + 'unit_of_measurement': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_import_tariff_2:state] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_sags_detected_phase_1:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'energy', - 'friendly_name': 'Device Total energy import tariff 2', - 'state_class': , - 'unit_of_measurement': , + 'friendly_name': 'Device Voltage sags detected phase 1', }), 'context': , - 'entity_id': 'sensor.device_total_energy_import_tariff_2', + 'entity_id': 'sensor.device_voltage_sags_detected_phase_1', 'last_changed': , 'last_updated': , - 'state': '0.0', + 'state': '0', }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_import_tariff_3:device-registry] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_sags_detected_phase_2:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -13008,6 +13345,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -13018,55 +13357,52 @@ 'via_device_id': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_import_tariff_3:entity-registry] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_sags_detected_phase_2:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': dict({ - 'state_class': , - }), + 'capabilities': None, 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, - 'entity_id': 'sensor.device_total_energy_import_tariff_3', + 'entity_category': , + 'entity_id': 'sensor.device_voltage_sags_detected_phase_2', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': None, 'original_icon': None, - 'original_name': 'Total energy import tariff 3', + 'original_name': 'Voltage sags detected phase 2', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_energy_import_tariff_kwh', - 'unique_id': 'aabbccddeeff_total_power_import_t3_kwh', - 'unit_of_measurement': , + 'translation_key': 'voltage_sag_phase_count', + 'unique_id': 'aabbccddeeff_voltage_sag_l2_count', + 'unit_of_measurement': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_import_tariff_3:state] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_sags_detected_phase_2:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'energy', - 'friendly_name': 'Device Total energy import tariff 3', - 'state_class': , - 'unit_of_measurement': , + 'friendly_name': 'Device Voltage sags detected phase 2', }), 'context': , - 'entity_id': 'sensor.device_total_energy_import_tariff_3', + 'entity_id': 'sensor.device_voltage_sags_detected_phase_2', 'last_changed': , 'last_updated': , - 'state': '0.0', + 'state': '0', }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_import_tariff_4:device-registry] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_sags_detected_phase_3:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -13088,6 +13424,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -13098,55 +13436,52 @@ 'via_device_id': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_import_tariff_4:entity-registry] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_sags_detected_phase_3:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': dict({ - 'state_class': , - }), + 'capabilities': None, 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, - 'entity_id': 'sensor.device_total_energy_import_tariff_4', + 'entity_category': , + 'entity_id': 'sensor.device_voltage_sags_detected_phase_3', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': None, 'original_icon': None, - 'original_name': 'Total energy import tariff 4', + 'original_name': 'Voltage sags detected phase 3', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_energy_import_tariff_kwh', - 'unique_id': 'aabbccddeeff_total_power_import_t4_kwh', - 'unit_of_measurement': , + 'translation_key': 'voltage_sag_phase_count', + 'unique_id': 'aabbccddeeff_voltage_sag_l3_count', + 'unit_of_measurement': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_energy_import_tariff_4:state] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_sags_detected_phase_3:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'energy', - 'friendly_name': 'Device Total energy import tariff 4', - 'state_class': , - 'unit_of_measurement': , + 'friendly_name': 'Device Voltage sags detected phase 3', }), 'context': , - 'entity_id': 'sensor.device_total_energy_import_tariff_4', + 'entity_id': 'sensor.device_voltage_sags_detected_phase_3', 'last_changed': , 'last_updated': , - 'state': '0.0', + 'state': '0', }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_gas:device-registry] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_swells_detected_phase_1:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -13168,6 +13503,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -13178,55 +13515,52 @@ 'via_device_id': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_gas:entity-registry] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_swells_detected_phase_1:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': dict({ - 'state_class': , - }), + 'capabilities': None, 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, - 'entity_id': 'sensor.device_total_gas', + 'entity_category': , + 'entity_id': 'sensor.device_voltage_swells_detected_phase_1', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': None, 'original_icon': None, - 'original_name': 'Total gas', + 'original_name': 'Voltage swells detected phase 1', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_gas_m3', - 'unique_id': 'aabbccddeeff_total_gas_m3', - 'unit_of_measurement': , + 'translation_key': 'voltage_swell_phase_count', + 'unique_id': 'aabbccddeeff_voltage_swell_l1_count', + 'unit_of_measurement': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_gas:state] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_swells_detected_phase_1:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'gas', - 'friendly_name': 'Device Total gas', - 'state_class': , - 'unit_of_measurement': , + 'friendly_name': 'Device Voltage swells detected phase 1', }), 'context': , - 'entity_id': 'sensor.device_total_gas', + 'entity_id': 'sensor.device_voltage_swells_detected_phase_1', 'last_changed': , 'last_updated': , - 'state': '0.0', + 'state': '0', }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_water_usage:device-registry] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_swells_detected_phase_2:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -13248,6 +13582,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -13258,55 +13594,52 @@ 'via_device_id': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_water_usage:entity-registry] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_swells_detected_phase_2:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': dict({ - 'state_class': , - }), + 'capabilities': None, 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, - 'entity_id': 'sensor.device_total_water_usage', + 'entity_category': , + 'entity_id': 'sensor.device_voltage_swells_detected_phase_2', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': None, 'original_icon': None, - 'original_name': 'Total water usage', + 'original_name': 'Voltage swells detected phase 2', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_liter_m3', - 'unique_id': 'aabbccddeeff_total_liter_m3', - 'unit_of_measurement': , + 'translation_key': 'voltage_swell_phase_count', + 'unique_id': 'aabbccddeeff_voltage_swell_l2_count', + 'unit_of_measurement': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_total_water_usage:state] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_swells_detected_phase_2:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'water', - 'friendly_name': 'Device Total water usage', - 'state_class': , - 'unit_of_measurement': , + 'friendly_name': 'Device Voltage swells detected phase 2', }), 'context': , - 'entity_id': 'sensor.device_total_water_usage', + 'entity_id': 'sensor.device_voltage_swells_detected_phase_2', 'last_changed': , 'last_updated': , - 'state': '0.0', + 'state': '0', }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_phase_1:device-registry] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_swells_detected_phase_3:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -13328,6 +13661,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -13338,55 +13673,52 @@ 'via_device_id': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_phase_1:entity-registry] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_swells_detected_phase_3:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': dict({ - 'state_class': , - }), + 'capabilities': None, 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, - 'entity_id': 'sensor.device_voltage_phase_1', + 'entity_category': , + 'entity_id': 'sensor.device_voltage_swells_detected_phase_3', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': None, 'original_icon': None, - 'original_name': 'Voltage phase 1', + 'original_name': 'Voltage swells detected phase 3', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_voltage_phase_v', - 'unique_id': 'aabbccddeeff_active_voltage_l1_v', - 'unit_of_measurement': , + 'translation_key': 'voltage_swell_phase_count', + 'unique_id': 'aabbccddeeff_voltage_swell_l3_count', + 'unit_of_measurement': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_phase_1:state] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_swells_detected_phase_3:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'voltage', - 'friendly_name': 'Device Voltage phase 1', - 'state_class': , - 'unit_of_measurement': , + 'friendly_name': 'Device Voltage swells detected phase 3', }), 'context': , - 'entity_id': 'sensor.device_voltage_phase_1', + 'entity_id': 'sensor.device_voltage_swells_detected_phase_3', 'last_changed': , 'last_updated': , - 'state': '0.0', + 'state': '0', }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_phase_2:device-registry] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_water_usage:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -13408,6 +13740,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', 'name': 'Device', @@ -13418,7 +13752,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_phase_2:entity-registry] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_water_usage:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -13432,41 +13766,42 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_voltage_phase_2', + 'entity_id': 'sensor.device_water_usage', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': None, 'original_icon': None, - 'original_name': 'Voltage phase 2', + 'original_name': 'Water usage', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_voltage_phase_v', - 'unique_id': 'aabbccddeeff_active_voltage_l2_v', - 'unit_of_measurement': , + 'translation_key': 'active_liter_lpm', + 'unique_id': 'aabbccddeeff_active_liter_lpm', + 'unit_of_measurement': 'l/min', }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_phase_2:state] +# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_water_usage:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'voltage', - 'friendly_name': 'Device Voltage phase 2', + 'friendly_name': 'Device Water usage', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'l/min', }), 'context': , - 'entity_id': 'sensor.device_voltage_phase_2', + 'entity_id': 'sensor.device_water_usage', 'last_changed': , 'last_updated': , 'state': '0.0', }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_phase_3:device-registry] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_active_power:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -13489,16 +13824,16 @@ }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'HWE-P1', + 'model': 'HWE-SKT', 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '4.19', + 'sw_version': '3.03', 'via_device_id': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_phase_3:entity-registry] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_active_power:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -13512,41 +13847,44 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_voltage_phase_3', + 'entity_id': 'sensor.device_active_power', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , 'name': None, 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Voltage phase 3', + 'original_name': 'Active power', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_voltage_phase_v', - 'unique_id': 'aabbccddeeff_active_voltage_l3_v', - 'unit_of_measurement': , + 'translation_key': 'active_power_w', + 'unique_id': 'aabbccddeeff_active_power_w', + 'unit_of_measurement': , }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_phase_3:state] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_active_power:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'voltage', - 'friendly_name': 'Device Voltage phase 3', + 'device_class': 'power', + 'friendly_name': 'Device Active power', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_voltage_phase_3', + 'entity_id': 'sensor.device_active_power', 'last_changed': , 'last_updated': , - 'state': '0.0', + 'state': '1457.277', }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_sags_detected_phase_1:device-registry] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_active_power_phase_1:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -13569,59 +13907,67 @@ }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'HWE-P1', + 'model': 'HWE-SKT', 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '4.19', + 'sw_version': '3.03', 'via_device_id': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_sags_detected_phase_1:entity-registry] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_active_power_phase_1:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': None, + 'capabilities': dict({ + 'state_class': , + }), 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.device_voltage_sags_detected_phase_1', + 'entity_category': None, + 'entity_id': 'sensor.device_active_power_phase_1', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , 'name': None, 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), }), - 'original_device_class': None, + 'original_device_class': , 'original_icon': None, - 'original_name': 'Voltage sags detected phase 1', + 'original_name': 'Active power phase 1', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'voltage_sag_phase_count', - 'unique_id': 'aabbccddeeff_voltage_sag_l1_count', - 'unit_of_measurement': None, + 'translation_key': 'active_power_phase_w', + 'unique_id': 'aabbccddeeff_active_power_l1_w', + 'unit_of_measurement': , }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_sags_detected_phase_1:state] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_active_power_phase_1:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Device Voltage sags detected phase 1', + 'device_class': 'power', + 'friendly_name': 'Device Active power phase 1', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_voltage_sags_detected_phase_1', + 'entity_id': 'sensor.device_active_power_phase_1', 'last_changed': , 'last_updated': , - 'state': '0', + 'state': '1457.277', }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_sags_detected_phase_2:device-registry] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_energy_export:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -13643,60 +13989,69 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', - 'model': 'HWE-P1', + 'model': 'HWE-SKT', 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '4.19', + 'sw_version': '3.03', 'via_device_id': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_sags_detected_phase_2:entity-registry] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_energy_export:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': None, - 'config_entry_id': , + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.device_voltage_sags_detected_phase_2', + 'entity_category': None, + 'entity_id': 'sensor.device_energy_export', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': None, + 'original_device_class': , 'original_icon': None, - 'original_name': 'Voltage sags detected phase 2', + 'original_name': 'Energy export', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'voltage_sag_phase_count', - 'unique_id': 'aabbccddeeff_voltage_sag_l2_count', - 'unit_of_measurement': None, + 'translation_key': 'total_energy_export_kwh', + 'unique_id': 'aabbccddeeff_total_power_export_kwh', + 'unit_of_measurement': , }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_sags_detected_phase_2:state] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_energy_export:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Device Voltage sags detected phase 2', + 'device_class': 'energy', + 'friendly_name': 'Device Energy export', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_voltage_sags_detected_phase_2', + 'entity_id': 'sensor.device_energy_export', 'last_changed': , 'last_updated': , 'state': '0', }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_sags_detected_phase_3:device-registry] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_energy_import:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -13718,60 +14073,69 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', - 'model': 'HWE-P1', + 'model': 'HWE-SKT', 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '4.19', + 'sw_version': '3.03', 'via_device_id': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_sags_detected_phase_3:entity-registry] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_energy_import:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': None, + 'capabilities': dict({ + 'state_class': , + }), 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.device_voltage_sags_detected_phase_3', + 'entity_category': None, + 'entity_id': 'sensor.device_energy_import', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': None, + 'original_device_class': , 'original_icon': None, - 'original_name': 'Voltage sags detected phase 3', + 'original_name': 'Energy import', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'voltage_sag_phase_count', - 'unique_id': 'aabbccddeeff_voltage_sag_l3_count', - 'unit_of_measurement': None, + 'translation_key': 'total_energy_import_kwh', + 'unique_id': 'aabbccddeeff_total_power_import_kwh', + 'unit_of_measurement': , }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_sags_detected_phase_3:state] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_energy_import:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Device Voltage sags detected phase 3', + 'device_class': 'energy', + 'friendly_name': 'Device Energy import', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_voltage_sags_detected_phase_3', + 'entity_id': 'sensor.device_energy_import', 'last_changed': , 'last_updated': , - 'state': '0', + 'state': '63.651', }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_swells_detected_phase_1:device-registry] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_power:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -13793,60 +14157,72 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', - 'model': 'HWE-P1', + 'model': 'HWE-SKT', 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '4.19', + 'sw_version': '3.03', 'via_device_id': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_swells_detected_phase_1:entity-registry] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_power:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': None, + 'capabilities': dict({ + 'state_class': , + }), 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.device_voltage_swells_detected_phase_1', + 'entity_category': None, + 'entity_id': 'sensor.device_power', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), }), - 'original_device_class': None, + 'original_device_class': , 'original_icon': None, - 'original_name': 'Voltage swells detected phase 1', + 'original_name': 'Power', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'voltage_swell_phase_count', - 'unique_id': 'aabbccddeeff_voltage_swell_l1_count', - 'unit_of_measurement': None, + 'translation_key': None, + 'unique_id': 'aabbccddeeff_active_power_w', + 'unit_of_measurement': , }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_swells_detected_phase_1:state] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_power:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Device Voltage swells detected phase 1', + 'device_class': 'power', + 'friendly_name': 'Device Power', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_voltage_swells_detected_phase_1', + 'entity_id': 'sensor.device_power', 'last_changed': , 'last_updated': , - 'state': '0', + 'state': '1457.277', }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_swells_detected_phase_2:device-registry] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_power_phase_1:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -13868,60 +14244,72 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', - 'model': 'HWE-P1', + 'model': 'HWE-SKT', 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '4.19', + 'sw_version': '3.03', 'via_device_id': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_swells_detected_phase_2:entity-registry] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_power_phase_1:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': None, + 'capabilities': dict({ + 'state_class': , + }), 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.device_voltage_swells_detected_phase_2', + 'entity_category': None, + 'entity_id': 'sensor.device_power_phase_1', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), }), - 'original_device_class': None, + 'original_device_class': , 'original_icon': None, - 'original_name': 'Voltage swells detected phase 2', + 'original_name': 'Power phase 1', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'voltage_swell_phase_count', - 'unique_id': 'aabbccddeeff_voltage_swell_l2_count', - 'unit_of_measurement': None, + 'translation_key': 'active_power_phase_w', + 'unique_id': 'aabbccddeeff_active_power_l1_w', + 'unit_of_measurement': , }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_swells_detected_phase_2:state] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_power_phase_1:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Device Voltage swells detected phase 2', + 'device_class': 'power', + 'friendly_name': 'Device Power phase 1', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_voltage_swells_detected_phase_2', + 'entity_id': 'sensor.device_power_phase_1', 'last_changed': , 'last_updated': , - 'state': '0', + 'state': '1457.277', }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_swells_detected_phase_3:device-registry] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_total_energy_export:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -13944,28 +14332,30 @@ }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'HWE-P1', + 'model': 'HWE-SKT', 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '4.19', + 'sw_version': '3.03', 'via_device_id': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_swells_detected_phase_3:entity-registry] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_total_energy_export:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': None, + 'capabilities': dict({ + 'state_class': , + }), 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.device_voltage_swells_detected_phase_3', + 'entity_category': None, + 'entity_id': 'sensor.device_total_energy_export', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -13973,30 +14363,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': None, + 'original_device_class': , 'original_icon': None, - 'original_name': 'Voltage swells detected phase 3', + 'original_name': 'Total energy export', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'voltage_swell_phase_count', - 'unique_id': 'aabbccddeeff_voltage_swell_l3_count', - 'unit_of_measurement': None, + 'translation_key': 'total_energy_export_kwh', + 'unique_id': 'aabbccddeeff_total_power_export_kwh', + 'unit_of_measurement': , }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_voltage_swells_detected_phase_3:state] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_total_energy_export:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Device Voltage swells detected phase 3', + 'device_class': 'energy', + 'friendly_name': 'Device Total energy export', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_voltage_swells_detected_phase_3', + 'entity_id': 'sensor.device_total_energy_export', 'last_changed': , 'last_updated': , 'state': '0', }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_water_usage:device-registry] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_total_energy_import:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -14019,22 +14412,22 @@ }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'HWE-P1', + 'model': 'HWE-SKT', 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '4.19', + 'sw_version': '3.03', 'via_device_id': None, }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_water_usage:entity-registry] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_total_energy_import:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, 'capabilities': dict({ - 'state_class': , + 'state_class': , }), 'config_entry_id': , 'device_class': None, @@ -14042,7 +14435,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_water_usage', + 'entity_id': 'sensor.device_total_energy_import', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -14050,32 +14443,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': None, + 'original_device_class': , 'original_icon': None, - 'original_name': 'Water usage', + 'original_name': 'Total energy import', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_liter_lpm', - 'unique_id': 'aabbccddeeff_active_liter_lpm', - 'unit_of_measurement': 'l/min', + 'translation_key': 'total_energy_import_kwh', + 'unique_id': 'aabbccddeeff_total_power_import_kwh', + 'unit_of_measurement': , }) # --- -# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_water_usage:state] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_total_energy_import:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Device Water usage', - 'state_class': , - 'unit_of_measurement': 'l/min', + 'device_class': 'energy', + 'friendly_name': 'Device Total energy import', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_water_usage', + 'entity_id': 'sensor.device_total_energy_import', 'last_changed': , 'last_updated': , - 'state': '0.0', + 'state': '63.651', }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_active_power:device-registry] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_wi_fi_ssid:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -14097,6 +14491,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-SKT', 'name': 'Device', @@ -14107,58 +14503,52 @@ 'via_device_id': None, }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_active_power:entity-registry] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_wi_fi_ssid:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': dict({ - 'state_class': , - }), + 'capabilities': None, 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, - 'entity_id': 'sensor.device_active_power', + 'entity_category': , + 'entity_id': 'sensor.device_wi_fi_ssid', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ - 'sensor': dict({ - 'suggested_display_precision': 0, - }), }), - 'original_device_class': , + 'original_device_class': None, 'original_icon': None, - 'original_name': 'Active power', + 'original_name': 'Wi-Fi SSID', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_power_w', - 'unique_id': 'aabbccddeeff_active_power_w', - 'unit_of_measurement': , + 'translation_key': 'wifi_ssid', + 'unique_id': 'aabbccddeeff_wifi_ssid', + 'unit_of_measurement': None, }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_active_power:state] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_wi_fi_ssid:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'power', - 'friendly_name': 'Device Active power', - 'state_class': , - 'unit_of_measurement': , + 'friendly_name': 'Device Wi-Fi SSID', }), 'context': , - 'entity_id': 'sensor.device_active_power', + 'entity_id': 'sensor.device_wi_fi_ssid', 'last_changed': , 'last_updated': , - 'state': '1457.277', + 'state': 'My Wi-Fi', }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_active_power_phase_1:device-registry] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_wi_fi_strength:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -14180,6 +14570,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-SKT', 'name': 'Device', @@ -14190,7 +14582,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_active_power_phase_1:entity-registry] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_wi_fi_strength:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -14203,45 +14595,43 @@ 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, - 'entity_id': 'sensor.device_active_power_phase_1', + 'entity_category': , + 'entity_id': 'sensor.device_wi_fi_strength', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ - 'sensor': dict({ - 'suggested_display_precision': 0, - }), }), - 'original_device_class': , + 'original_device_class': None, 'original_icon': None, - 'original_name': 'Active power phase 1', + 'original_name': 'Wi-Fi strength', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_power_phase_w', - 'unique_id': 'aabbccddeeff_active_power_l1_w', - 'unit_of_measurement': , + 'translation_key': 'wifi_strength', + 'unique_id': 'aabbccddeeff_wifi_strength', + 'unit_of_measurement': '%', }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_active_power_phase_1:state] +# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_wi_fi_strength:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'power', - 'friendly_name': 'Device Active power phase 1', + 'friendly_name': 'Device Wi-Fi strength', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': '%', }), 'context': , - 'entity_id': 'sensor.device_active_power_phase_1', + 'entity_id': 'sensor.device_wi_fi_strength', 'last_changed': , 'last_updated': , - 'state': '1457.277', + 'state': '94', }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_energy_export:device-registry] +# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_active_water_usage:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -14264,22 +14654,22 @@ }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'HWE-SKT', + 'model': 'HWE-WTR', 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '3.03', + 'sw_version': '2.03', 'via_device_id': None, }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_energy_export:entity-registry] +# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_active_water_usage:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, 'capabilities': dict({ - 'state_class': , + 'state_class': , }), 'config_entry_id': , 'device_class': None, @@ -14287,7 +14677,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_energy_export', + 'entity_id': 'sensor.device_active_water_usage', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -14295,33 +14685,32 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': None, 'original_icon': None, - 'original_name': 'Energy export', + 'original_name': 'Active water usage', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_energy_export_kwh', - 'unique_id': 'aabbccddeeff_total_power_export_kwh', - 'unit_of_measurement': , + 'translation_key': 'active_liter_lpm', + 'unique_id': 'aabbccddeeff_active_liter_lpm', + 'unit_of_measurement': 'l/min', }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_energy_export:state] +# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_active_water_usage:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'energy', - 'friendly_name': 'Device Energy export', - 'state_class': , - 'unit_of_measurement': , + 'friendly_name': 'Device Active water usage', + 'state_class': , + 'unit_of_measurement': 'l/min', }), 'context': , - 'entity_id': 'sensor.device_energy_export', + 'entity_id': 'sensor.device_active_water_usage', 'last_changed': , 'last_updated': , 'state': '0', }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_energy_import:device-registry] +# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_total_water_usage:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -14343,17 +14732,19 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', - 'model': 'HWE-SKT', + 'model': 'HWE-WTR', 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '3.03', + 'sw_version': '2.03', 'via_device_id': None, }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_energy_import:entity-registry] +# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_total_water_usage:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -14367,41 +14758,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_energy_import', + 'entity_id': 'sensor.device_total_water_usage', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Energy import', + 'original_name': 'Total water usage', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_energy_import_kwh', - 'unique_id': 'aabbccddeeff_total_power_import_kwh', - 'unit_of_measurement': , + 'translation_key': 'total_liter_m3', + 'unique_id': 'aabbccddeeff_total_liter_m3', + 'unit_of_measurement': , }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_energy_import:state] +# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_total_water_usage:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'energy', - 'friendly_name': 'Device Energy import', + 'device_class': 'water', + 'friendly_name': 'Device Total water usage', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_energy_import', + 'entity_id': 'sensor.device_total_water_usage', 'last_changed': , 'last_updated': , - 'state': '63.651', + 'state': '17.014', }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_power:device-registry] +# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_water_usage:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -14423,17 +14816,19 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', - 'model': 'HWE-SKT', + 'model': 'HWE-WTR', 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '3.03', + 'sw_version': '2.03', 'via_device_id': None, }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_power:entity-registry] +# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_water_usage:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -14447,44 +14842,42 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_power', + 'entity_id': 'sensor.device_water_usage', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ - 'sensor': dict({ - 'suggested_display_precision': 0, - }), }), - 'original_device_class': , + 'original_device_class': None, 'original_icon': None, - 'original_name': 'Power', + 'original_name': 'Water usage', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': None, - 'unique_id': 'aabbccddeeff_active_power_w', - 'unit_of_measurement': , + 'translation_key': 'active_liter_lpm', + 'unique_id': 'aabbccddeeff_active_liter_lpm', + 'unit_of_measurement': 'l/min', }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_power:state] +# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_water_usage:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'power', - 'friendly_name': 'Device Power', + 'friendly_name': 'Device Water usage', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'l/min', }), 'context': , - 'entity_id': 'sensor.device_power', + 'entity_id': 'sensor.device_water_usage', 'last_changed': , 'last_updated': , - 'state': '1457.277', + 'state': '0', }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_power_phase_1:device-registry] +# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_wi_fi_ssid:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -14506,68 +14899,64 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', - 'model': 'HWE-SKT', + 'model': 'HWE-WTR', 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '3.03', + 'sw_version': '2.03', 'via_device_id': None, }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_power_phase_1:entity-registry] +# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_wi_fi_ssid:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': dict({ - 'state_class': , - }), + 'capabilities': None, 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, - 'entity_id': 'sensor.device_power_phase_1', + 'entity_category': , + 'entity_id': 'sensor.device_wi_fi_ssid', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ - 'sensor': dict({ - 'suggested_display_precision': 0, - }), }), - 'original_device_class': , + 'original_device_class': None, 'original_icon': None, - 'original_name': 'Power phase 1', + 'original_name': 'Wi-Fi SSID', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_power_phase_w', - 'unique_id': 'aabbccddeeff_active_power_l1_w', - 'unit_of_measurement': , + 'translation_key': 'wifi_ssid', + 'unique_id': 'aabbccddeeff_wifi_ssid', + 'unit_of_measurement': None, }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_power_phase_1:state] +# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_wi_fi_ssid:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'power', - 'friendly_name': 'Device Power phase 1', - 'state_class': , - 'unit_of_measurement': , + 'friendly_name': 'Device Wi-Fi SSID', }), 'context': , - 'entity_id': 'sensor.device_power_phase_1', + 'entity_id': 'sensor.device_wi_fi_ssid', 'last_changed': , 'last_updated': , - 'state': '1457.277', + 'state': 'My Wi-Fi', }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_total_energy_export:device-registry] +# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_wi_fi_strength:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -14589,65 +14978,68 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', - 'model': 'HWE-SKT', + 'model': 'HWE-WTR', 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '3.03', + 'sw_version': '2.03', 'via_device_id': None, }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_total_energy_export:entity-registry] +# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_wi_fi_strength:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, 'capabilities': dict({ - 'state_class': , + 'state_class': , }), 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, - 'entity_id': 'sensor.device_total_energy_export', + 'entity_category': , + 'entity_id': 'sensor.device_wi_fi_strength', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': None, 'original_icon': None, - 'original_name': 'Total energy export', + 'original_name': 'Wi-Fi strength', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_energy_export_kwh', - 'unique_id': 'aabbccddeeff_total_power_export_kwh', - 'unit_of_measurement': , + 'translation_key': 'wifi_strength', + 'unique_id': 'aabbccddeeff_wifi_strength', + 'unit_of_measurement': '%', }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_total_energy_export:state] +# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_wi_fi_strength:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'energy', - 'friendly_name': 'Device Total energy export', - 'state_class': , - 'unit_of_measurement': , + 'friendly_name': 'Device Wi-Fi strength', + 'state_class': , + 'unit_of_measurement': '%', }), 'context': , - 'entity_id': 'sensor.device_total_energy_export', + 'entity_id': 'sensor.device_wi_fi_strength', 'last_changed': , 'last_updated': , - 'state': '0', + 'state': '84', }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_total_energy_import:device-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_active_apparent_power:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -14670,22 +15062,22 @@ }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'HWE-SKT', + 'model': 'SDM230-wifi', 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '3.03', + 'sw_version': '3.06', 'via_device_id': None, }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_total_energy_import:entity-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_active_apparent_power:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, 'capabilities': dict({ - 'state_class': , + 'state_class': , }), 'config_entry_id': , 'device_class': None, @@ -14693,7 +15085,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_total_energy_import', + 'entity_id': 'sensor.device_active_apparent_power', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -14701,33 +15093,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Total energy import', + 'original_name': 'Active apparent power', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_energy_import_kwh', - 'unique_id': 'aabbccddeeff_total_power_import_kwh', - 'unit_of_measurement': , + 'translation_key': 'active_apparent_power_va', + 'unique_id': 'aabbccddeeff_active_apparent_power_va', + 'unit_of_measurement': , }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_total_energy_import:state] +# name: test_sensors[SDM230-entity_ids4][sensor.device_active_apparent_power:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'energy', - 'friendly_name': 'Device Total energy import', - 'state_class': , - 'unit_of_measurement': , + 'device_class': 'apparent_power', + 'friendly_name': 'Device Active apparent power', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_total_energy_import', + 'entity_id': 'sensor.device_active_apparent_power', 'last_changed': , 'last_updated': , - 'state': '63.651', + 'state': '74.052', }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_wi_fi_ssid:device-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_active_current:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -14750,28 +15142,30 @@ }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'HWE-SKT', + 'model': 'SDM230-wifi', 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '3.03', + 'sw_version': '3.06', 'via_device_id': None, }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_wi_fi_ssid:entity-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_active_current:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': None, + 'capabilities': dict({ + 'state_class': , + }), 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.device_wi_fi_ssid', + 'entity_category': None, + 'entity_id': 'sensor.device_active_current', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -14779,30 +15173,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': None, + 'original_device_class': , 'original_icon': None, - 'original_name': 'Wi-Fi SSID', + 'original_name': 'Active current', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'wifi_ssid', - 'unique_id': 'aabbccddeeff_wifi_ssid', - 'unit_of_measurement': None, + 'translation_key': 'active_current_a', + 'unique_id': 'aabbccddeeff_active_current_a', + 'unit_of_measurement': , }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_wi_fi_ssid:state] +# name: test_sensors[SDM230-entity_ids4][sensor.device_active_current:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Device Wi-Fi SSID', + 'device_class': 'current', + 'friendly_name': 'Device Active current', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_wi_fi_ssid', + 'entity_id': 'sensor.device_active_current', 'last_changed': , 'last_updated': , - 'state': 'My Wi-Fi', + 'state': '0.273', }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_wi_fi_strength:device-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_active_frequency:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -14825,16 +15222,16 @@ }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'HWE-SKT', + 'model': 'SDM230-wifi', 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '3.03', + 'sw_version': '3.06', 'via_device_id': None, }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_wi_fi_strength:entity-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_active_frequency:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -14847,8 +15244,8 @@ 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.device_wi_fi_strength', + 'entity_category': None, + 'entity_id': 'sensor.device_active_frequency', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -14856,32 +15253,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': None, + 'original_device_class': , 'original_icon': None, - 'original_name': 'Wi-Fi strength', + 'original_name': 'Active frequency', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'wifi_strength', - 'unique_id': 'aabbccddeeff_wifi_strength', - 'unit_of_measurement': '%', + 'translation_key': 'active_frequency_hz', + 'unique_id': 'aabbccddeeff_active_frequency_hz', + 'unit_of_measurement': , }) # --- -# name: test_sensors[HWE-SKT-entity_ids2][sensor.device_wi_fi_strength:state] +# name: test_sensors[SDM230-entity_ids4][sensor.device_active_frequency:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Device Wi-Fi strength', + 'device_class': 'frequency', + 'friendly_name': 'Device Active frequency', 'state_class': , - 'unit_of_measurement': '%', + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_wi_fi_strength', + 'entity_id': 'sensor.device_active_frequency', 'last_changed': , 'last_updated': , - 'state': '94', + 'state': '50', }) # --- -# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_active_water_usage:device-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_active_power:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -14904,16 +15302,16 @@ }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'HWE-WTR', + 'model': 'SDM230-wifi', 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '2.03', + 'sw_version': '3.06', 'via_device_id': None, }) # --- -# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_active_water_usage:entity-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_active_power:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -14927,40 +15325,44 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_water_usage', + 'entity_id': 'sensor.device_active_power', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , 'name': None, 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), }), - 'original_device_class': None, + 'original_device_class': , 'original_icon': None, - 'original_name': 'Active water usage', + 'original_name': 'Active power', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_liter_lpm', - 'unique_id': 'aabbccddeeff_active_liter_lpm', - 'unit_of_measurement': 'l/min', + 'translation_key': 'active_power_w', + 'unique_id': 'aabbccddeeff_active_power_w', + 'unit_of_measurement': , }) # --- -# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_active_water_usage:state] +# name: test_sensors[SDM230-entity_ids4][sensor.device_active_power:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Device Active water usage', + 'device_class': 'power', + 'friendly_name': 'Device Active power', 'state_class': , - 'unit_of_measurement': 'l/min', + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_active_water_usage', + 'entity_id': 'sensor.device_active_power', 'last_changed': , 'last_updated': , - 'state': '0', + 'state': '-1058.296', }) # --- -# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_total_water_usage:device-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_active_power_factor:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -14983,22 +15385,22 @@ }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'HWE-WTR', + 'model': 'SDM230-wifi', 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '2.03', + 'sw_version': '3.06', 'via_device_id': None, }) # --- -# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_total_water_usage:entity-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_active_power_factor:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, 'capabilities': dict({ - 'state_class': , + 'state_class': , }), 'config_entry_id': , 'device_class': None, @@ -15006,7 +15408,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_total_water_usage', + 'entity_id': 'sensor.device_active_power_factor', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -15014,33 +15416,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Total water usage', + 'original_name': 'Active power factor', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_liter_m3', - 'unique_id': 'aabbccddeeff_total_liter_m3', - 'unit_of_measurement': , + 'translation_key': 'active_power_factor', + 'unique_id': 'aabbccddeeff_active_power_factor', + 'unit_of_measurement': '%', }) # --- -# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_total_water_usage:state] +# name: test_sensors[SDM230-entity_ids4][sensor.device_active_power_factor:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'water', - 'friendly_name': 'Device Total water usage', - 'state_class': , - 'unit_of_measurement': , + 'device_class': 'power_factor', + 'friendly_name': 'Device Active power factor', + 'state_class': , + 'unit_of_measurement': '%', }), 'context': , - 'entity_id': 'sensor.device_total_water_usage', + 'entity_id': 'sensor.device_active_power_factor', 'last_changed': , 'last_updated': , - 'state': '17.014', + 'state': '61.1', }) # --- -# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_water_usage:device-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_active_power_phase_1:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -15063,16 +15465,16 @@ }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'HWE-WTR', + 'model': 'SDM230-wifi', 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '2.03', + 'sw_version': '3.06', 'via_device_id': None, }) # --- -# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_water_usage:entity-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_active_power_phase_1:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -15086,40 +15488,44 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_water_usage', + 'entity_id': 'sensor.device_active_power_phase_1', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , 'name': None, 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), }), - 'original_device_class': None, + 'original_device_class': , 'original_icon': None, - 'original_name': 'Water usage', + 'original_name': 'Active power phase 1', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_liter_lpm', - 'unique_id': 'aabbccddeeff_active_liter_lpm', - 'unit_of_measurement': 'l/min', + 'translation_key': 'active_power_phase_w', + 'unique_id': 'aabbccddeeff_active_power_l1_w', + 'unit_of_measurement': , }) # --- -# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_water_usage:state] +# name: test_sensors[SDM230-entity_ids4][sensor.device_active_power_phase_1:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Device Water usage', + 'device_class': 'power', + 'friendly_name': 'Device Active power phase 1', 'state_class': , - 'unit_of_measurement': 'l/min', + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_water_usage', + 'entity_id': 'sensor.device_active_power_phase_1', 'last_changed': , 'last_updated': , - 'state': '0', + 'state': '-1058.296', }) # --- -# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_wi_fi_ssid:device-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_active_reactive_power:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -15142,28 +15548,31 @@ }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'HWE-WTR', + 'model': 'SDM230-wifi', 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '2.03', + 'sw_version': '3.06', 'via_device_id': None, }) # --- -# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_wi_fi_ssid:entity-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_active_reactive_power:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': None, + 'capabilities': dict({ + 'state_class': , + }), 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.device_wi_fi_ssid', + 'entity_category': None, + 'entity_id': 'sensor.device_power', + 'entity_id': 'sensor.device_active_reactive_power', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -15171,30 +15580,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': None, + 'original_device_class': , 'original_icon': None, - 'original_name': 'Wi-Fi SSID', + 'original_name': 'Active reactive power', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'wifi_ssid', - 'unique_id': 'aabbccddeeff_wifi_ssid', - 'unit_of_measurement': None, + 'translation_key': 'active_reactive_power_var', + 'unique_id': 'aabbccddeeff_active_reactive_power_var', + 'unit_of_measurement': 'var', }) # --- -# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_wi_fi_ssid:state] +# name: test_sensors[SDM230-entity_ids4][sensor.device_active_reactive_power:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Device Wi-Fi SSID', + 'device_class': 'reactive_power', + 'friendly_name': 'Device Active reactive power', + 'state_class': , + 'unit_of_measurement': 'var', }), 'context': , - 'entity_id': 'sensor.device_wi_fi_ssid', + 'entity_id': 'sensor.device_active_reactive_power', 'last_changed': , 'last_updated': , - 'state': 'My Wi-Fi', + 'state': '-58.612', }) # --- -# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_wi_fi_strength:device-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_active_voltage:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -15217,16 +15629,16 @@ }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'HWE-WTR', + 'model': 'SDM230-wifi', 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '2.03', + 'sw_version': '3.06', 'via_device_id': None, }) # --- -# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_wi_fi_strength:entity-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_active_voltage:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -15239,8 +15651,8 @@ 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.device_wi_fi_strength', + 'entity_category': None, + 'entity_id': 'sensor.device_active_voltage', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -15248,32 +15660,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': None, + 'original_device_class': , 'original_icon': None, - 'original_name': 'Wi-Fi strength', + 'original_name': 'Power', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'wifi_strength', - 'unique_id': 'aabbccddeeff_wifi_strength', - 'unit_of_measurement': '%', + 'translation_key': None, + 'unique_id': 'aabbccddeeff_active_power_w', + 'unit_of_measurement': , }) # --- -# name: test_sensors[HWE-WTR-entity_ids3][sensor.device_wi_fi_strength:state] +# name: test_sensors[SDM230-entity_ids4][sensor.device_active_voltage:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Device Wi-Fi strength', + 'device_class': 'voltage', + 'friendly_name': 'Device Active voltage', 'state_class': , - 'unit_of_measurement': '%', + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_wi_fi_strength', + 'entity_id': 'sensor.device_active_voltage', 'last_changed': , 'last_updated': , - 'state': '84', + 'state': '228.472', }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_active_apparent_power:device-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_apparent_power:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -15295,6 +15708,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM230-wifi', 'name': 'Device', @@ -15305,7 +15720,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_active_apparent_power:entity-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_apparent_power:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -15319,41 +15734,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_apparent_power', + 'entity_id': 'sensor.device_apparent_power', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), 'original_device_class': , 'original_icon': None, - 'original_name': 'Active apparent power', + 'original_name': 'Apparent power', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_apparent_power_va', + 'translation_key': None, 'unique_id': 'aabbccddeeff_active_apparent_power_va', 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_active_apparent_power:state] +# name: test_sensors[SDM230-entity_ids4][sensor.device_apparent_power:state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'apparent_power', - 'friendly_name': 'Device Active apparent power', + 'friendly_name': 'Device Apparent power', 'state_class': , 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_active_apparent_power', + 'entity_id': 'sensor.device_apparent_power', 'last_changed': , 'last_updated': , 'state': '74.052', }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_active_current:device-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_current:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -15375,6 +15792,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM230-wifi', 'name': 'Device', @@ -15385,7 +15804,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_active_current:entity-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_current:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -15399,41 +15818,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_current', + 'entity_id': 'sensor.device_current', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), 'original_device_class': , 'original_icon': None, - 'original_name': 'Active current', + 'original_name': 'Current', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_current_a', + 'translation_key': None, 'unique_id': 'aabbccddeeff_active_current_a', 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_active_current:state] +# name: test_sensors[SDM230-entity_ids4][sensor.device_current:state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'current', - 'friendly_name': 'Device Active current', + 'friendly_name': 'Device Current', 'state_class': , 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_active_current', + 'entity_id': 'sensor.device_current', 'last_changed': , 'last_updated': , 'state': '0.273', }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_active_frequency:device-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_energy_export:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -15455,6 +15876,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM230-wifi', 'name': 'Device', @@ -15465,13 +15888,13 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_active_frequency:entity-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_energy_export:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, 'capabilities': dict({ - 'state_class': , + 'state_class': , }), 'config_entry_id': , 'device_class': None, @@ -15479,41 +15902,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_frequency', + 'entity_id': 'sensor.device_energy_export', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Active frequency', + 'original_name': 'Energy export', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_frequency_hz', - 'unique_id': 'aabbccddeeff_active_frequency_hz', - 'unit_of_measurement': , + 'translation_key': 'total_energy_export_kwh', + 'unique_id': 'aabbccddeeff_total_power_export_kwh', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_active_frequency:state] +# name: test_sensors[SDM230-entity_ids4][sensor.device_energy_export:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'frequency', - 'friendly_name': 'Device Active frequency', - 'state_class': , - 'unit_of_measurement': , + 'device_class': 'energy', + 'friendly_name': 'Device Energy export', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_active_frequency', + 'entity_id': 'sensor.device_energy_export', 'last_changed': , 'last_updated': , - 'state': '50', + 'state': '255.551', }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_active_power:device-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_energy_import:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -15535,6 +15960,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM230-wifi', 'name': 'Device', @@ -15545,13 +15972,13 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_active_power:entity-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_energy_import:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, 'capabilities': dict({ - 'state_class': , + 'state_class': , }), 'config_entry_id': , 'device_class': None, @@ -15559,44 +15986,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_power', + 'entity_id': 'sensor.device_energy_import', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ - 'sensor': dict({ - 'suggested_display_precision': 0, - }), }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Active power', + 'original_name': 'Energy import', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_power_w', - 'unique_id': 'aabbccddeeff_active_power_w', - 'unit_of_measurement': , + 'translation_key': 'total_energy_import_kwh', + 'unique_id': 'aabbccddeeff_total_power_import_kwh', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_active_power:state] +# name: test_sensors[SDM230-entity_ids4][sensor.device_energy_import:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'power', - 'friendly_name': 'Device Active power', - 'state_class': , - 'unit_of_measurement': , + 'device_class': 'energy', + 'friendly_name': 'Device Energy import', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_active_power', + 'entity_id': 'sensor.device_energy_import', 'last_changed': , 'last_updated': , - 'state': '-1058.296', + 'state': '2.705', }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_active_power_factor:device-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_frequency:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -15618,6 +16044,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM230-wifi', 'name': 'Device', @@ -15628,7 +16056,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_active_power_factor:entity-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_frequency:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -15642,41 +16070,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_power_factor', + 'entity_id': 'sensor.device_frequency', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Active power factor', + 'original_name': 'Frequency', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_power_factor', - 'unique_id': 'aabbccddeeff_active_power_factor', - 'unit_of_measurement': '%', + 'translation_key': None, + 'unique_id': 'aabbccddeeff_active_frequency_hz', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_active_power_factor:state] +# name: test_sensors[SDM230-entity_ids4][sensor.device_frequency:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'power_factor', - 'friendly_name': 'Device Active power factor', + 'device_class': 'frequency', + 'friendly_name': 'Device Frequency', 'state_class': , - 'unit_of_measurement': '%', + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_active_power_factor', + 'entity_id': 'sensor.device_frequency', 'last_changed': , 'last_updated': , - 'state': '61.1', + 'state': '50', }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_active_power_phase_1:device-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_power:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -15698,6 +16128,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM230-wifi', 'name': 'Device', @@ -15708,7 +16140,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_active_power_phase_1:entity-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_power:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -15722,11 +16154,13 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_power_phase_1', + 'entity_id': 'sensor.device_power', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ 'sensor': dict({ @@ -15735,31 +16169,31 @@ }), 'original_device_class': , 'original_icon': None, - 'original_name': 'Active power phase 1', + 'original_name': 'Power', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_power_phase_w', - 'unique_id': 'aabbccddeeff_active_power_l1_w', + 'translation_key': None, + 'unique_id': 'aabbccddeeff_active_power_w', 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_active_power_phase_1:state] +# name: test_sensors[SDM230-entity_ids4][sensor.device_power:state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'power', - 'friendly_name': 'Device Active power phase 1', + 'friendly_name': 'Device Power', 'state_class': , 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_active_power_phase_1', + 'entity_id': 'sensor.device_power', 'last_changed': , 'last_updated': , 'state': '-1058.296', }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_active_reactive_power:device-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_power_factor:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -15781,6 +16215,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM230-wifi', 'name': 'Device', @@ -15791,7 +16227,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_active_reactive_power:entity-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_power_factor:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -15805,42 +16241,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_power', - 'entity_id': 'sensor.device_active_reactive_power', + 'entity_id': 'sensor.device_power_factor', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Active reactive power', + 'original_name': 'Power factor', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_reactive_power_var', - 'unique_id': 'aabbccddeeff_active_reactive_power_var', - 'unit_of_measurement': 'var', + 'translation_key': None, + 'unique_id': 'aabbccddeeff_active_power_factor', + 'unit_of_measurement': '%', }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_active_reactive_power:state] +# name: test_sensors[SDM230-entity_ids4][sensor.device_power_factor:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'reactive_power', - 'friendly_name': 'Device Active reactive power', + 'device_class': 'power_factor', + 'friendly_name': 'Device Power factor', 'state_class': , - 'unit_of_measurement': 'var', + 'unit_of_measurement': '%', }), 'context': , - 'entity_id': 'sensor.device_active_reactive_power', + 'entity_id': 'sensor.device_power_factor', 'last_changed': , 'last_updated': , - 'state': '-58.612', + 'state': '61.1', }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_active_voltage:device-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_power_phase_1:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -15872,7 +16309,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_active_voltage:entity-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_power_phase_1:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -15886,41 +16323,44 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_voltage', + 'entity_id': 'sensor.device_power_phase_1', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , 'name': None, 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), }), 'original_device_class': , 'original_icon': None, - 'original_name': 'Power', + 'original_name': 'Power phase 1', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': None, - 'unique_id': 'aabbccddeeff_active_power_w', + 'translation_key': 'active_power_phase_w', + 'unique_id': 'aabbccddeeff_active_power_l1_w', 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_active_voltage:state] +# name: test_sensors[SDM230-entity_ids4][sensor.device_power_phase_1:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'voltage', - 'friendly_name': 'Device Active voltage', + 'device_class': 'power', + 'friendly_name': 'Device Power phase 1', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_active_voltage', + 'entity_id': 'sensor.device_power_phase_1', 'last_changed': , 'last_updated': , - 'state': '228.472', + 'state': '-1058.296', }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_apparent_power:device-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_reactive_power:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -15942,6 +16382,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM230-wifi', 'name': 'Device', @@ -15952,7 +16394,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_apparent_power:entity-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_reactive_power:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -15966,41 +16408,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_apparent_power', + 'entity_id': 'sensor.device_reactive_power', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Apparent power', + 'original_name': 'Reactive power', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': 'aabbccddeeff_active_apparent_power_va', - 'unit_of_measurement': , + 'unique_id': 'aabbccddeeff_active_reactive_power_var', + 'unit_of_measurement': 'var', }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_apparent_power:state] +# name: test_sensors[SDM230-entity_ids4][sensor.device_reactive_power:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'apparent_power', - 'friendly_name': 'Device Apparent power', + 'device_class': 'reactive_power', + 'friendly_name': 'Device Reactive power', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'var', }), 'context': , - 'entity_id': 'sensor.device_apparent_power', + 'entity_id': 'sensor.device_reactive_power', 'last_changed': , 'last_updated': , - 'state': '74.052', + 'state': '-58.612', }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_current:device-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_total_energy_export:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -16032,13 +16476,13 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_current:entity-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_total_energy_export:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, 'capabilities': dict({ - 'state_class': , + 'state_class': , }), 'config_entry_id': , 'device_class': None, @@ -16046,7 +16490,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_current', + 'entity_id': 'sensor.device_total_energy_export', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -16054,33 +16498,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Current', + 'original_name': 'Total energy export', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': None, - 'unique_id': 'aabbccddeeff_active_current_a', - 'unit_of_measurement': , + 'translation_key': 'total_energy_export_kwh', + 'unique_id': 'aabbccddeeff_total_power_export_kwh', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_current:state] +# name: test_sensors[SDM230-entity_ids4][sensor.device_total_energy_export:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'current', - 'friendly_name': 'Device Current', - 'state_class': , - 'unit_of_measurement': , + 'device_class': 'energy', + 'friendly_name': 'Device Total energy export', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_current', + 'entity_id': 'sensor.device_total_energy_export', 'last_changed': , 'last_updated': , - 'state': '0.273', + 'state': '255.551', }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_energy_export:device-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_total_energy_import:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -16112,7 +16556,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_energy_export:entity-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_total_energy_import:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -16126,7 +16570,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_energy_export', + 'entity_id': 'sensor.device_total_energy_import', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -16136,31 +16580,31 @@ }), 'original_device_class': , 'original_icon': None, - 'original_name': 'Energy export', + 'original_name': 'Total energy import', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_energy_export_kwh', - 'unique_id': 'aabbccddeeff_total_power_export_kwh', + 'translation_key': 'total_energy_import_kwh', + 'unique_id': 'aabbccddeeff_total_power_import_kwh', 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_energy_export:state] +# name: test_sensors[SDM230-entity_ids4][sensor.device_total_energy_import:state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'energy', - 'friendly_name': 'Device Energy export', + 'friendly_name': 'Device Total energy import', 'state_class': , 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_energy_export', + 'entity_id': 'sensor.device_total_energy_import', 'last_changed': , 'last_updated': , - 'state': '255.551', + 'state': '2.705', }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_energy_import:device-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_voltage:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -16182,6 +16626,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM230-wifi', 'name': 'Device', @@ -16192,13 +16638,13 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_energy_import:entity-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_voltage:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, 'capabilities': dict({ - 'state_class': , + 'state_class': , }), 'config_entry_id': , 'device_class': None, @@ -16206,41 +16652,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_energy_import', + 'entity_id': 'sensor.device_voltage', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Energy import', + 'original_name': 'Voltage', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_energy_import_kwh', - 'unique_id': 'aabbccddeeff_total_power_import_kwh', - 'unit_of_measurement': , + 'translation_key': None, + 'unique_id': 'aabbccddeeff_active_voltage_v', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_energy_import:state] +# name: test_sensors[SDM230-entity_ids4][sensor.device_voltage:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'energy', - 'friendly_name': 'Device Energy import', - 'state_class': , - 'unit_of_measurement': , + 'device_class': 'voltage', + 'friendly_name': 'Device Voltage', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_energy_import', + 'entity_id': 'sensor.device_voltage', 'last_changed': , 'last_updated': , - 'state': '2.705', + 'state': '228.472', }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_frequency:device-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_wi_fi_ssid:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -16262,6 +16710,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM230-wifi', 'name': 'Device', @@ -16272,55 +16722,52 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_frequency:entity-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_wi_fi_ssid:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': dict({ - 'state_class': , - }), + 'capabilities': None, 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, - 'entity_id': 'sensor.device_frequency', + 'entity_category': , + 'entity_id': 'sensor.device_wi_fi_ssid', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': None, 'original_icon': None, - 'original_name': 'Frequency', + 'original_name': 'Wi-Fi SSID', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': None, - 'unique_id': 'aabbccddeeff_active_frequency_hz', - 'unit_of_measurement': , + 'translation_key': 'wifi_ssid', + 'unique_id': 'aabbccddeeff_wifi_ssid', + 'unit_of_measurement': None, }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_frequency:state] +# name: test_sensors[SDM230-entity_ids4][sensor.device_wi_fi_ssid:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'frequency', - 'friendly_name': 'Device Frequency', - 'state_class': , - 'unit_of_measurement': , + 'friendly_name': 'Device Wi-Fi SSID', }), 'context': , - 'entity_id': 'sensor.device_frequency', + 'entity_id': 'sensor.device_wi_fi_ssid', 'last_changed': , 'last_updated': , - 'state': '50', + 'state': 'My Wi-Fi', }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_power:device-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_wi_fi_strength:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -16342,6 +16789,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM230-wifi', 'name': 'Device', @@ -16352,7 +16801,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_power:entity-registry] +# name: test_sensors[SDM230-entity_ids4][sensor.device_wi_fi_strength:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -16365,45 +16814,43 @@ 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, - 'entity_id': 'sensor.device_power', + 'entity_category': , + 'entity_id': 'sensor.device_wi_fi_strength', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ - 'sensor': dict({ - 'suggested_display_precision': 0, - }), }), - 'original_device_class': , + 'original_device_class': None, 'original_icon': None, - 'original_name': 'Power', + 'original_name': 'Wi-Fi strength', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': None, - 'unique_id': 'aabbccddeeff_active_power_w', - 'unit_of_measurement': , + 'translation_key': 'wifi_strength', + 'unique_id': 'aabbccddeeff_wifi_strength', + 'unit_of_measurement': '%', }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_power:state] +# name: test_sensors[SDM230-entity_ids4][sensor.device_wi_fi_strength:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'power', - 'friendly_name': 'Device Power', + 'friendly_name': 'Device Wi-Fi strength', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': '%', }), 'context': , - 'entity_id': 'sensor.device_power', + 'entity_id': 'sensor.device_wi_fi_strength', 'last_changed': , 'last_updated': , - 'state': '-1058.296', + 'state': '92', }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_power_factor:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_apparent_power:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -16426,7 +16873,7 @@ }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'SDM230-wifi', + 'model': 'SDM630-wifi', 'name': 'Device', 'name_by_user': None, 'serial_number': None, @@ -16435,7 +16882,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_power_factor:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_apparent_power:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -16449,7 +16896,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_power_factor', + 'entity_id': 'sensor.device_active_apparent_power', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -16457,33 +16904,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Power factor', + 'original_name': 'Active apparent power', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': None, - 'unique_id': 'aabbccddeeff_active_power_factor', - 'unit_of_measurement': '%', + 'translation_key': 'active_apparent_power_va', + 'unique_id': 'aabbccddeeff_active_apparent_power_va', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_power_factor:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_apparent_power:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'power_factor', - 'friendly_name': 'Device Power factor', + 'device_class': 'apparent_power', + 'friendly_name': 'Device Active apparent power', 'state_class': , - 'unit_of_measurement': '%', + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_power_factor', + 'entity_id': 'sensor.device_active_apparent_power', 'last_changed': , 'last_updated': , - 'state': '61.1', + 'state': '7112.293', }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_power_phase_1:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_apparent_power_phase_1:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -16506,7 +16953,7 @@ }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'SDM230-wifi', + 'model': 'SDM630-wifi', 'name': 'Device', 'name_by_user': None, 'serial_number': None, @@ -16515,7 +16962,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_power_phase_1:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_apparent_power_phase_1:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -16529,44 +16976,41 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_power_phase_1', + 'entity_id': 'sensor.device_active_apparent_power_phase_1', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , 'name': None, 'options': dict({ - 'sensor': dict({ - 'suggested_display_precision': 0, - }), }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Power phase 1', + 'original_name': 'Active apparent power phase 1', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_power_phase_w', - 'unique_id': 'aabbccddeeff_active_power_l1_w', - 'unit_of_measurement': , + 'translation_key': 'active_apparent_power_phase_va', + 'unique_id': 'aabbccddeeff_active_apparent_power_l1_va', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_power_phase_1:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_apparent_power_phase_1:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'power', - 'friendly_name': 'Device Power phase 1', + 'device_class': 'apparent_power', + 'friendly_name': 'Device Active apparent power phase 1', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_power_phase_1', + 'entity_id': 'sensor.device_active_apparent_power_phase_1', 'last_changed': , 'last_updated': , - 'state': '-1058.296', + 'state': '0', }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_reactive_power:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_apparent_power_phase_2:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -16589,7 +17033,7 @@ }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'SDM230-wifi', + 'model': 'SDM630-wifi', 'name': 'Device', 'name_by_user': None, 'serial_number': None, @@ -16598,7 +17042,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_reactive_power:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_apparent_power_phase_2:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -16612,7 +17056,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_reactive_power', + 'entity_id': 'sensor.device_active_apparent_power_phase_2', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -16620,33 +17064,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Reactive power', + 'original_name': 'Active apparent power phase 2', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': None, - 'unique_id': 'aabbccddeeff_active_reactive_power_var', - 'unit_of_measurement': 'var', + 'translation_key': 'active_apparent_power_phase_va', + 'unique_id': 'aabbccddeeff_active_apparent_power_l2_va', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_reactive_power:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_apparent_power_phase_2:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'reactive_power', - 'friendly_name': 'Device Reactive power', + 'device_class': 'apparent_power', + 'friendly_name': 'Device Active apparent power phase 2', 'state_class': , - 'unit_of_measurement': 'var', + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_reactive_power', + 'entity_id': 'sensor.device_active_apparent_power_phase_2', 'last_changed': , 'last_updated': , - 'state': '-58.612', + 'state': '3548.879', }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_total_energy_export:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_apparent_power_phase_3:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -16669,7 +17113,7 @@ }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'SDM230-wifi', + 'model': 'SDM630-wifi', 'name': 'Device', 'name_by_user': None, 'serial_number': None, @@ -16678,13 +17122,13 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_total_energy_export:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_apparent_power_phase_3:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, 'capabilities': dict({ - 'state_class': , + 'state_class': , }), 'config_entry_id': , 'device_class': None, @@ -16692,7 +17136,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_total_energy_export', + 'entity_id': 'sensor.device_active_apparent_power_phase_3', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -16700,33 +17144,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Total energy export', + 'original_name': 'Active apparent power phase 3', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_energy_export_kwh', - 'unique_id': 'aabbccddeeff_total_power_export_kwh', - 'unit_of_measurement': , + 'translation_key': 'active_apparent_power_phase_va', + 'unique_id': 'aabbccddeeff_active_apparent_power_l3_va', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_total_energy_export:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_apparent_power_phase_3:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'energy', - 'friendly_name': 'Device Total energy export', - 'state_class': , - 'unit_of_measurement': , + 'device_class': 'apparent_power', + 'friendly_name': 'Device Active apparent power phase 3', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_total_energy_export', + 'entity_id': 'sensor.device_active_apparent_power_phase_3', 'last_changed': , 'last_updated': , - 'state': '255.551', + 'state': '3563.414', }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_total_energy_import:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_current:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -16749,7 +17193,7 @@ }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'SDM230-wifi', + 'model': 'SDM630-wifi', 'name': 'Device', 'name_by_user': None, 'serial_number': None, @@ -16758,13 +17202,13 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_total_energy_import:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_current:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, 'capabilities': dict({ - 'state_class': , + 'state_class': , }), 'config_entry_id': , 'device_class': None, @@ -16772,7 +17216,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_total_energy_import', + 'entity_id': 'sensor.device_active_current', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -16780,33 +17224,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Total energy import', + 'original_name': 'Active current', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_energy_import_kwh', - 'unique_id': 'aabbccddeeff_total_power_import_kwh', - 'unit_of_measurement': , + 'translation_key': 'active_current_a', + 'unique_id': 'aabbccddeeff_active_current_a', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_total_energy_import:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_current:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'energy', - 'friendly_name': 'Device Total energy import', - 'state_class': , - 'unit_of_measurement': , + 'device_class': 'current', + 'friendly_name': 'Device Active current', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_total_energy_import', + 'entity_id': 'sensor.device_active_current', 'last_changed': , 'last_updated': , - 'state': '2.705', + 'state': '30.999', }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_voltage:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_current_phase_1:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -16829,7 +17273,7 @@ }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'SDM230-wifi', + 'model': 'SDM630-wifi', 'name': 'Device', 'name_by_user': None, 'serial_number': None, @@ -16838,7 +17282,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_voltage:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_current_phase_1:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -16852,7 +17296,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_voltage', + 'entity_id': 'sensor.device_active_current_phase_1', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -16860,33 +17304,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Voltage', + 'original_name': 'Active current phase 1', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': None, - 'unique_id': 'aabbccddeeff_active_voltage_v', - 'unit_of_measurement': , + 'translation_key': 'active_current_phase_a', + 'unique_id': 'aabbccddeeff_active_current_l1_a', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_voltage:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_current_phase_1:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'voltage', - 'friendly_name': 'Device Voltage', + 'device_class': 'current', + 'friendly_name': 'Device Active current phase 1', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_voltage', + 'entity_id': 'sensor.device_active_current_phase_1', 'last_changed': , 'last_updated': , - 'state': '228.472', + 'state': '0', }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_wi_fi_ssid:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_current_phase_2:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -16909,7 +17353,7 @@ }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'SDM230-wifi', + 'model': 'SDM630-wifi', 'name': 'Device', 'name_by_user': None, 'serial_number': None, @@ -16918,19 +17362,21 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_wi_fi_ssid:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_current_phase_2:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': None, + 'capabilities': dict({ + 'state_class': , + }), 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.device_wi_fi_ssid', + 'entity_category': None, + 'entity_id': 'sensor.device_active_current_phase_2', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -16938,30 +17384,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': None, + 'original_device_class': , 'original_icon': None, - 'original_name': 'Wi-Fi SSID', + 'original_name': 'Active current phase 2', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'wifi_ssid', - 'unique_id': 'aabbccddeeff_wifi_ssid', - 'unit_of_measurement': None, + 'translation_key': 'active_current_phase_a', + 'unique_id': 'aabbccddeeff_active_current_l2_a', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_wi_fi_ssid:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_current_phase_2:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Device Wi-Fi SSID', + 'device_class': 'current', + 'friendly_name': 'Device Active current phase 2', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_wi_fi_ssid', + 'entity_id': 'sensor.device_active_current_phase_2', 'last_changed': , 'last_updated': , - 'state': 'My Wi-Fi', + 'state': '15.521', }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_wi_fi_strength:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_current_phase_3:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -16984,7 +17433,7 @@ }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'SDM230-wifi', + 'model': 'SDM630-wifi', 'name': 'Device', 'name_by_user': None, 'serial_number': None, @@ -16993,7 +17442,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_wi_fi_strength:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_current_phase_3:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -17006,8 +17455,8 @@ 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.device_wi_fi_strength', + 'entity_category': None, + 'entity_id': 'sensor.device_active_current_phase_3', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -17015,32 +17464,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': None, + 'original_device_class': , 'original_icon': None, - 'original_name': 'Wi-Fi strength', + 'original_name': 'Active current phase 3', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'wifi_strength', - 'unique_id': 'aabbccddeeff_wifi_strength', - 'unit_of_measurement': '%', + 'translation_key': 'active_current_phase_a', + 'unique_id': 'aabbccddeeff_active_current_l3_a', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM230-entity_ids4][sensor.device_wi_fi_strength:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_current_phase_3:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Device Wi-Fi strength', + 'device_class': 'current', + 'friendly_name': 'Device Active current phase 3', 'state_class': , - 'unit_of_measurement': '%', + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_wi_fi_strength', + 'entity_id': 'sensor.device_active_current_phase_3', 'last_changed': , 'last_updated': , - 'state': '92', + 'state': '15.477', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_apparent_power:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_frequency:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -17072,7 +17522,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_apparent_power:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_frequency:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -17086,7 +17536,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_apparent_power', + 'entity_id': 'sensor.device_active_frequency', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -17094,33 +17544,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Active apparent power', + 'original_name': 'Active frequency', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_apparent_power_va', - 'unique_id': 'aabbccddeeff_active_apparent_power_va', - 'unit_of_measurement': , + 'translation_key': 'active_frequency_hz', + 'unique_id': 'aabbccddeeff_active_frequency_hz', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_apparent_power:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_frequency:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'apparent_power', - 'friendly_name': 'Device Active apparent power', + 'device_class': 'frequency', + 'friendly_name': 'Device Active frequency', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_active_apparent_power', + 'entity_id': 'sensor.device_active_frequency', 'last_changed': , 'last_updated': , - 'state': '7112.293', + 'state': '49.926', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_apparent_power_phase_1:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -17152,7 +17602,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_apparent_power_phase_1:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -17166,41 +17616,44 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_apparent_power_phase_1', + 'entity_id': 'sensor.device_active_power', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , 'name': None, 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Active apparent power phase 1', + 'original_name': 'Active power', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_apparent_power_phase_va', - 'unique_id': 'aabbccddeeff_active_apparent_power_l1_va', - 'unit_of_measurement': , + 'translation_key': 'active_power_w', + 'unique_id': 'aabbccddeeff_active_power_w', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_apparent_power_phase_1:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'apparent_power', - 'friendly_name': 'Device Active apparent power phase 1', + 'device_class': 'power', + 'friendly_name': 'Device Active power', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_active_apparent_power_phase_1', + 'entity_id': 'sensor.device_active_power', 'last_changed': , 'last_updated': , - 'state': '0', + 'state': '-900.194', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_apparent_power_phase_2:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_factor_phase_1:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -17232,7 +17685,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_apparent_power_phase_2:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_factor_phase_1:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -17246,7 +17699,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_apparent_power_phase_2', + 'entity_id': 'sensor.device_active_power_factor_phase_1', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -17254,33 +17707,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Active apparent power phase 2', + 'original_name': 'Active power factor phase 1', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_apparent_power_phase_va', - 'unique_id': 'aabbccddeeff_active_apparent_power_l2_va', - 'unit_of_measurement': , + 'translation_key': 'active_power_factor_phase', + 'unique_id': 'aabbccddeeff_active_power_factor_l1', + 'unit_of_measurement': '%', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_apparent_power_phase_2:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_factor_phase_1:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'apparent_power', - 'friendly_name': 'Device Active apparent power phase 2', + 'device_class': 'power_factor', + 'friendly_name': 'Device Active power factor phase 1', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': '%', }), 'context': , - 'entity_id': 'sensor.device_active_apparent_power_phase_2', + 'entity_id': 'sensor.device_active_power_factor_phase_1', 'last_changed': , 'last_updated': , - 'state': '3548.879', + 'state': '100', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_apparent_power_phase_3:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_factor_phase_2:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -17312,7 +17765,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_apparent_power_phase_3:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_factor_phase_2:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -17326,7 +17779,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_apparent_power_phase_3', + 'entity_id': 'sensor.device_active_power_factor_phase_2', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -17334,33 +17787,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Active apparent power phase 3', + 'original_name': 'Active power factor phase 2', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_apparent_power_phase_va', - 'unique_id': 'aabbccddeeff_active_apparent_power_l3_va', - 'unit_of_measurement': , + 'translation_key': 'active_power_factor_phase', + 'unique_id': 'aabbccddeeff_active_power_factor_l2', + 'unit_of_measurement': '%', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_apparent_power_phase_3:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_factor_phase_2:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'apparent_power', - 'friendly_name': 'Device Active apparent power phase 3', + 'device_class': 'power_factor', + 'friendly_name': 'Device Active power factor phase 2', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': '%', }), 'context': , - 'entity_id': 'sensor.device_active_apparent_power_phase_3', + 'entity_id': 'sensor.device_active_power_factor_phase_2', 'last_changed': , 'last_updated': , - 'state': '3563.414', + 'state': '99.9', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_current:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_factor_phase_3:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -17392,7 +17845,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_current:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_factor_phase_3:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -17406,7 +17859,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_current', + 'entity_id': 'sensor.device_active_power_factor_phase_3', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -17414,33 +17867,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Active current', + 'original_name': 'Active power factor phase 3', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_current_a', - 'unique_id': 'aabbccddeeff_active_current_a', - 'unit_of_measurement': , + 'translation_key': 'active_power_factor_phase', + 'unique_id': 'aabbccddeeff_active_power_factor_l3', + 'unit_of_measurement': '%', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_current:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_factor_phase_3:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'current', - 'friendly_name': 'Device Active current', + 'device_class': 'power_factor', + 'friendly_name': 'Device Active power factor phase 3', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': '%', }), 'context': , - 'entity_id': 'sensor.device_active_current', + 'entity_id': 'sensor.device_active_power_factor_phase_3', 'last_changed': , 'last_updated': , - 'state': '30.999', + 'state': '99.7', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_current_phase_1:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_phase_1:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -17472,7 +17925,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_current_phase_1:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_phase_1:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -17486,41 +17939,44 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_current_phase_1', + 'entity_id': 'sensor.device_active_power_phase_1', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , 'name': None, 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Active current phase 1', + 'original_name': 'Active power phase 1', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_current_phase_a', - 'unique_id': 'aabbccddeeff_active_current_l1_a', - 'unit_of_measurement': , + 'translation_key': 'active_power_phase_w', + 'unique_id': 'aabbccddeeff_active_power_l1_w', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_current_phase_1:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_phase_1:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'current', - 'friendly_name': 'Device Active current phase 1', + 'device_class': 'power', + 'friendly_name': 'Device Active power phase 1', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_active_current_phase_1', + 'entity_id': 'sensor.device_active_power_phase_1', 'last_changed': , 'last_updated': , - 'state': '0', + 'state': '-1058.296', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_current_phase_2:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_phase_2:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -17552,7 +18008,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_current_phase_2:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_phase_2:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -17566,41 +18022,44 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_current_phase_2', + 'entity_id': 'sensor.device_active_power_phase_2', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , 'name': None, 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Active current phase 2', + 'original_name': 'Active power phase 2', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_current_phase_a', - 'unique_id': 'aabbccddeeff_active_current_l2_a', - 'unit_of_measurement': , + 'translation_key': 'active_power_phase_w', + 'unique_id': 'aabbccddeeff_active_power_l2_w', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_current_phase_2:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_phase_2:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'current', - 'friendly_name': 'Device Active current phase 2', + 'device_class': 'power', + 'friendly_name': 'Device Active power phase 2', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_active_current_phase_2', + 'entity_id': 'sensor.device_active_power_phase_2', 'last_changed': , 'last_updated': , - 'state': '15.521', + 'state': '158.102', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_current_phase_3:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_phase_3:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -17632,7 +18091,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_current_phase_3:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_phase_3:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -17646,41 +18105,44 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_current_phase_3', + 'entity_id': 'sensor.device_active_power_phase_3', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , 'name': None, 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Active current phase 3', + 'original_name': 'Active power phase 3', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_current_phase_a', - 'unique_id': 'aabbccddeeff_active_current_l3_a', - 'unit_of_measurement': , + 'translation_key': 'active_power_phase_w', + 'unique_id': 'aabbccddeeff_active_power_l3_w', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_current_phase_3:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_phase_3:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'current', - 'friendly_name': 'Device Active current phase 3', + 'device_class': 'power', + 'friendly_name': 'Device Active power phase 3', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_active_current_phase_3', + 'entity_id': 'sensor.device_active_power_phase_3', 'last_changed': , 'last_updated': , - 'state': '15.477', + 'state': '0.0', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_frequency:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_reactive_power:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -17712,7 +18174,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_frequency:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_reactive_power:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -17726,7 +18188,8 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_frequency', + 'entity_id': 'sensor.device_power', + 'entity_id': 'sensor.device_active_reactive_power', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -17734,33 +18197,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Active frequency', + 'original_name': 'Active reactive power', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_frequency_hz', - 'unique_id': 'aabbccddeeff_active_frequency_hz', - 'unit_of_measurement': , + 'translation_key': 'active_reactive_power_var', + 'unique_id': 'aabbccddeeff_active_reactive_power_var', + 'unit_of_measurement': 'var', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_frequency:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_reactive_power:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'frequency', - 'friendly_name': 'Device Active frequency', + 'device_class': 'reactive_power', + 'friendly_name': 'Device Active reactive power', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'var', }), 'context': , - 'entity_id': 'sensor.device_active_frequency', + 'entity_id': 'sensor.device_active_reactive_power', 'last_changed': , 'last_updated': , - 'state': '49.926', + 'state': '-429.025', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_reactive_power_phase_1:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -17792,7 +18255,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_reactive_power_phase_1:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -17806,44 +18269,41 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_power', + 'entity_id': 'sensor.device_active_reactive_power_phase_1', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , 'name': None, 'options': dict({ - 'sensor': dict({ - 'suggested_display_precision': 0, - }), }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Active power', + 'original_name': 'Active reactive power phase 1', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_power_w', - 'unique_id': 'aabbccddeeff_active_power_w', - 'unit_of_measurement': , + 'translation_key': 'active_reactive_power_phase_var', + 'unique_id': 'aabbccddeeff_active_reactive_power_l1_var', + 'unit_of_measurement': 'var', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_reactive_power_phase_1:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'power', - 'friendly_name': 'Device Active power', + 'device_class': 'reactive_power', + 'friendly_name': 'Device Active reactive power phase 1', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'var', }), 'context': , - 'entity_id': 'sensor.device_active_power', + 'entity_id': 'sensor.device_active_reactive_power_phase_1', 'last_changed': , 'last_updated': , - 'state': '-900.194', + 'state': '0', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_factor_phase_1:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_reactive_power_phase_2:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -17875,7 +18335,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_factor_phase_1:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_reactive_power_phase_2:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -17889,7 +18349,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_power_factor_phase_1', + 'entity_id': 'sensor.device_active_reactive_power_phase_2', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -17897,33 +18357,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Active power factor phase 1', + 'original_name': 'Active reactive power phase 2', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_power_factor_phase', - 'unique_id': 'aabbccddeeff_active_power_factor_l1', - 'unit_of_measurement': '%', + 'translation_key': 'active_reactive_power_phase_var', + 'unique_id': 'aabbccddeeff_active_reactive_power_l2_var', + 'unit_of_measurement': 'var', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_factor_phase_1:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_reactive_power_phase_2:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'power_factor', - 'friendly_name': 'Device Active power factor phase 1', + 'device_class': 'reactive_power', + 'friendly_name': 'Device Active reactive power phase 2', 'state_class': , - 'unit_of_measurement': '%', + 'unit_of_measurement': 'var', }), 'context': , - 'entity_id': 'sensor.device_active_power_factor_phase_1', + 'entity_id': 'sensor.device_active_reactive_power_phase_2', 'last_changed': , 'last_updated': , - 'state': '100', + 'state': '-166.675', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_factor_phase_2:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_reactive_power_phase_3:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -17955,7 +18415,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_factor_phase_2:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_reactive_power_phase_3:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -17969,7 +18429,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_power_factor_phase_2', + 'entity_id': 'sensor.device_active_reactive_power_phase_3', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -17977,33 +18437,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Active power factor phase 2', + 'original_name': 'Active reactive power phase 3', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_power_factor_phase', - 'unique_id': 'aabbccddeeff_active_power_factor_l2', - 'unit_of_measurement': '%', + 'translation_key': 'active_reactive_power_phase_var', + 'unique_id': 'aabbccddeeff_active_reactive_power_l3_var', + 'unit_of_measurement': 'var', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_factor_phase_2:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_reactive_power_phase_3:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'power_factor', - 'friendly_name': 'Device Active power factor phase 2', + 'device_class': 'reactive_power', + 'friendly_name': 'Device Active reactive power phase 3', 'state_class': , - 'unit_of_measurement': '%', + 'unit_of_measurement': 'var', }), 'context': , - 'entity_id': 'sensor.device_active_power_factor_phase_2', + 'entity_id': 'sensor.device_active_reactive_power_phase_3', 'last_changed': , 'last_updated': , - 'state': '99.9', + 'state': '-262.35', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_factor_phase_3:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_voltage_phase_1:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -18035,7 +18495,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_factor_phase_3:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_voltage_phase_1:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -18049,7 +18509,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_power_factor_phase_3', + 'entity_id': 'sensor.device_active_voltage_phase_1', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -18057,33 +18517,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Active power factor phase 3', + 'original_name': 'Power', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_power_factor_phase', - 'unique_id': 'aabbccddeeff_active_power_factor_l3', - 'unit_of_measurement': '%', + 'translation_key': None, + 'unique_id': 'aabbccddeeff_active_power_w', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_factor_phase_3:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_voltage_phase_1:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'power_factor', - 'friendly_name': 'Device Active power factor phase 3', + 'device_class': 'voltage', + 'friendly_name': 'Device Active voltage phase 1', 'state_class': , - 'unit_of_measurement': '%', + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_active_power_factor_phase_3', + 'entity_id': 'sensor.device_active_voltage_phase_1', 'last_changed': , 'last_updated': , - 'state': '99.7', + 'state': '230.751', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_phase_1:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_voltage_phase_2:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -18115,7 +18575,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_phase_1:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_voltage_phase_2:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -18129,20 +18589,18 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_power_phase_1', + 'entity_id': 'sensor.device_power_phase_1', + 'entity_id': 'sensor.device_active_voltage_phase_2', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , 'name': None, 'options': dict({ - 'sensor': dict({ - 'suggested_display_precision': 0, - }), }), 'original_device_class': , 'original_icon': None, - 'original_name': 'Active power phase 1', + 'original_name': 'Power phase 1', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, @@ -18151,22 +18609,22 @@ 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_phase_1:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_voltage_phase_2:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'power', - 'friendly_name': 'Device Active power phase 1', + 'device_class': 'voltage', + 'friendly_name': 'Device Active voltage phase 2', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_active_power_phase_1', + 'entity_id': 'sensor.device_active_voltage_phase_2', 'last_changed': , 'last_updated': , - 'state': '-1058.296', + 'state': '228.391', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_phase_2:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_voltage_phase_3:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -18198,7 +18656,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_phase_2:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_voltage_phase_3:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -18212,20 +18670,18 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_power_phase_2', + 'entity_id': 'sensor.device_power_phase_2', + 'entity_id': 'sensor.device_active_voltage_phase_3', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , 'name': None, 'options': dict({ - 'sensor': dict({ - 'suggested_display_precision': 0, - }), }), 'original_device_class': , 'original_icon': None, - 'original_name': 'Active power phase 2', + 'original_name': 'Power phase 2', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, @@ -18234,22 +18690,22 @@ 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_phase_2:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_active_voltage_phase_3:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'power', - 'friendly_name': 'Device Active power phase 2', + 'device_class': 'voltage', + 'friendly_name': 'Device Active voltage phase 3', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_active_power_phase_2', + 'entity_id': 'sensor.device_active_voltage_phase_3', 'last_changed': , 'last_updated': , - 'state': '158.102', + 'state': '229.612', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_phase_3:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_apparent_power:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -18271,6 +18727,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -18281,7 +18739,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_phase_3:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_apparent_power:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -18295,44 +18753,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_power_phase_3', + 'entity_id': 'sensor.device_apparent_power', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ - 'sensor': dict({ - 'suggested_display_precision': 0, - }), }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Active power phase 3', + 'original_name': 'Apparent power', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_power_phase_w', - 'unique_id': 'aabbccddeeff_active_power_l3_w', - 'unit_of_measurement': , + 'translation_key': None, + 'unique_id': 'aabbccddeeff_active_apparent_power_va', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_power_phase_3:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_apparent_power:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'power', - 'friendly_name': 'Device Active power phase 3', + 'device_class': 'apparent_power', + 'friendly_name': 'Device Apparent power', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_active_power_phase_3', + 'entity_id': 'sensor.device_apparent_power', 'last_changed': , 'last_updated': , - 'state': '0.0', + 'state': '7112.293', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_reactive_power:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_apparent_power_phase_1:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -18354,6 +18811,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -18364,7 +18823,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_reactive_power:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_apparent_power_phase_1:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -18378,42 +18837,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_power', - 'entity_id': 'sensor.device_active_reactive_power', + 'entity_id': 'sensor.device_apparent_power_phase_1', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Active reactive power', + 'original_name': 'Apparent power phase 1', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_reactive_power_var', - 'unique_id': 'aabbccddeeff_active_reactive_power_var', - 'unit_of_measurement': 'var', + 'translation_key': 'active_apparent_power_phase_va', + 'unique_id': 'aabbccddeeff_active_apparent_power_l1_va', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_reactive_power:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_apparent_power_phase_1:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'reactive_power', - 'friendly_name': 'Device Active reactive power', + 'device_class': 'apparent_power', + 'friendly_name': 'Device Apparent power phase 1', 'state_class': , - 'unit_of_measurement': 'var', + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_active_reactive_power', + 'entity_id': 'sensor.device_apparent_power_phase_1', 'last_changed': , 'last_updated': , - 'state': '-429.025', + 'state': '0', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_reactive_power_phase_1:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_apparent_power_phase_2:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -18435,6 +18895,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -18445,7 +18907,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_reactive_power_phase_1:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_apparent_power_phase_2:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -18459,41 +18921,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_reactive_power_phase_1', + 'entity_id': 'sensor.device_apparent_power_phase_2', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Active reactive power phase 1', + 'original_name': 'Apparent power phase 2', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_reactive_power_phase_var', - 'unique_id': 'aabbccddeeff_active_reactive_power_l1_var', - 'unit_of_measurement': 'var', + 'translation_key': 'active_apparent_power_phase_va', + 'unique_id': 'aabbccddeeff_active_apparent_power_l2_va', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_reactive_power_phase_1:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_apparent_power_phase_2:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'reactive_power', - 'friendly_name': 'Device Active reactive power phase 1', + 'device_class': 'apparent_power', + 'friendly_name': 'Device Apparent power phase 2', 'state_class': , - 'unit_of_measurement': 'var', + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_active_reactive_power_phase_1', + 'entity_id': 'sensor.device_apparent_power_phase_2', 'last_changed': , 'last_updated': , - 'state': '0', + 'state': '3548.879', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_reactive_power_phase_2:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_apparent_power_phase_3:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -18515,6 +18979,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -18525,7 +18991,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_reactive_power_phase_2:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_apparent_power_phase_3:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -18539,41 +19005,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_reactive_power_phase_2', + 'entity_id': 'sensor.device_apparent_power_phase_3', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Active reactive power phase 2', + 'original_name': 'Apparent power phase 3', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_reactive_power_phase_var', - 'unique_id': 'aabbccddeeff_active_reactive_power_l2_var', - 'unit_of_measurement': 'var', + 'translation_key': 'active_apparent_power_phase_va', + 'unique_id': 'aabbccddeeff_active_apparent_power_l3_va', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_reactive_power_phase_2:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_apparent_power_phase_3:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'reactive_power', - 'friendly_name': 'Device Active reactive power phase 2', + 'device_class': 'apparent_power', + 'friendly_name': 'Device Apparent power phase 3', 'state_class': , - 'unit_of_measurement': 'var', + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_active_reactive_power_phase_2', + 'entity_id': 'sensor.device_apparent_power_phase_3', 'last_changed': , 'last_updated': , - 'state': '-166.675', + 'state': '3563.414', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_reactive_power_phase_3:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_current:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -18595,6 +19063,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -18605,7 +19075,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_reactive_power_phase_3:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_current:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -18619,41 +19089,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_reactive_power_phase_3', + 'entity_id': 'sensor.device_current', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Active reactive power phase 3', + 'original_name': 'Current', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_reactive_power_phase_var', - 'unique_id': 'aabbccddeeff_active_reactive_power_l3_var', - 'unit_of_measurement': 'var', + 'translation_key': None, + 'unique_id': 'aabbccddeeff_active_current_a', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_reactive_power_phase_3:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_current:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'reactive_power', - 'friendly_name': 'Device Active reactive power phase 3', + 'device_class': 'current', + 'friendly_name': 'Device Current', 'state_class': , - 'unit_of_measurement': 'var', + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_active_reactive_power_phase_3', + 'entity_id': 'sensor.device_current', 'last_changed': , 'last_updated': , - 'state': '-262.35', + 'state': '30.999', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_voltage_phase_1:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_current_phase_1:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -18675,6 +19147,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -18685,7 +19159,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_voltage_phase_1:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_current_phase_1:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -18699,41 +19173,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_active_voltage_phase_1', + 'entity_id': 'sensor.device_current_phase_1', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Power', + 'original_name': 'Current phase 1', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': None, - 'unique_id': 'aabbccddeeff_active_power_w', - 'unit_of_measurement': , + 'translation_key': 'active_current_phase_a', + 'unique_id': 'aabbccddeeff_active_current_l1_a', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_voltage_phase_1:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_current_phase_1:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'voltage', - 'friendly_name': 'Device Active voltage phase 1', + 'device_class': 'current', + 'friendly_name': 'Device Current phase 1', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_active_voltage_phase_1', + 'entity_id': 'sensor.device_current_phase_1', 'last_changed': , 'last_updated': , - 'state': '230.751', + 'state': '0', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_voltage_phase_2:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_current_phase_2:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -18755,6 +19231,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -18765,7 +19243,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_voltage_phase_2:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_current_phase_2:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -18779,42 +19257,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_power_phase_1', - 'entity_id': 'sensor.device_active_voltage_phase_2', + 'entity_id': 'sensor.device_current_phase_2', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Power phase 1', + 'original_name': 'Current phase 2', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_power_phase_w', - 'unique_id': 'aabbccddeeff_active_power_l1_w', - 'unit_of_measurement': , + 'translation_key': 'active_current_phase_a', + 'unique_id': 'aabbccddeeff_active_current_l2_a', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_voltage_phase_2:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_current_phase_2:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'voltage', - 'friendly_name': 'Device Active voltage phase 2', + 'device_class': 'current', + 'friendly_name': 'Device Current phase 2', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_active_voltage_phase_2', + 'entity_id': 'sensor.device_current_phase_2', 'last_changed': , 'last_updated': , - 'state': '228.391', + 'state': '15.521', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_voltage_phase_3:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_current_phase_3:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -18836,6 +19315,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -18846,7 +19327,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_voltage_phase_3:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_current_phase_3:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -18860,42 +19341,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_power_phase_2', - 'entity_id': 'sensor.device_active_voltage_phase_3', + 'entity_id': 'sensor.device_current_phase_3', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Power phase 2', + 'original_name': 'Current phase 3', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_power_phase_w', - 'unique_id': 'aabbccddeeff_active_power_l2_w', - 'unit_of_measurement': , + 'translation_key': 'active_current_phase_a', + 'unique_id': 'aabbccddeeff_active_current_l3_a', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_active_voltage_phase_3:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_current_phase_3:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'voltage', - 'friendly_name': 'Device Active voltage phase 3', + 'device_class': 'current', + 'friendly_name': 'Device Current phase 3', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_active_voltage_phase_3', + 'entity_id': 'sensor.device_current_phase_3', 'last_changed': , 'last_updated': , - 'state': '229.612', + 'state': '15.477', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_apparent_power:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_energy_export:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -18917,6 +19399,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -18927,13 +19411,13 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_apparent_power:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_energy_export:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, 'capabilities': dict({ - 'state_class': , + 'state_class': , }), 'config_entry_id': , 'device_class': None, @@ -18941,41 +19425,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_apparent_power', + 'entity_id': 'sensor.device_energy_export', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Apparent power', + 'original_name': 'Energy export', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': None, - 'unique_id': 'aabbccddeeff_active_apparent_power_va', - 'unit_of_measurement': , + 'translation_key': 'total_energy_export_kwh', + 'unique_id': 'aabbccddeeff_total_power_export_kwh', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_apparent_power:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_energy_export:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'apparent_power', - 'friendly_name': 'Device Apparent power', - 'state_class': , - 'unit_of_measurement': , + 'device_class': 'energy', + 'friendly_name': 'Device Energy export', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_apparent_power', + 'entity_id': 'sensor.device_energy_export', 'last_changed': , 'last_updated': , - 'state': '7112.293', + 'state': '0.523', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_apparent_power_phase_1:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_energy_import:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -18997,6 +19483,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19007,13 +19495,13 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_apparent_power_phase_1:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_energy_import:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, 'capabilities': dict({ - 'state_class': , + 'state_class': , }), 'config_entry_id': , 'device_class': None, @@ -19021,41 +19509,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_apparent_power_phase_1', + 'entity_id': 'sensor.device_energy_import', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Apparent power phase 1', + 'original_name': 'Energy import', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_apparent_power_phase_va', - 'unique_id': 'aabbccddeeff_active_apparent_power_l1_va', - 'unit_of_measurement': , + 'translation_key': 'total_energy_import_kwh', + 'unique_id': 'aabbccddeeff_total_power_import_kwh', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_apparent_power_phase_1:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_energy_import:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'apparent_power', - 'friendly_name': 'Device Apparent power phase 1', - 'state_class': , - 'unit_of_measurement': , + 'device_class': 'energy', + 'friendly_name': 'Device Energy import', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_apparent_power_phase_1', + 'entity_id': 'sensor.device_energy_import', 'last_changed': , 'last_updated': , - 'state': '0', + 'state': '0.101', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_apparent_power_phase_2:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_frequency:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -19077,6 +19567,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19087,7 +19579,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_apparent_power_phase_2:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_frequency:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -19101,41 +19593,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_apparent_power_phase_2', + 'entity_id': 'sensor.device_frequency', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Apparent power phase 2', + 'original_name': 'Frequency', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_apparent_power_phase_va', - 'unique_id': 'aabbccddeeff_active_apparent_power_l2_va', - 'unit_of_measurement': , + 'translation_key': None, + 'unique_id': 'aabbccddeeff_active_frequency_hz', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_apparent_power_phase_2:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_frequency:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'apparent_power', - 'friendly_name': 'Device Apparent power phase 2', + 'device_class': 'frequency', + 'friendly_name': 'Device Frequency', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_apparent_power_phase_2', + 'entity_id': 'sensor.device_frequency', 'last_changed': , 'last_updated': , - 'state': '3548.879', + 'state': '49.926', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_apparent_power_phase_3:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_power:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -19157,6 +19651,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19167,7 +19663,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_apparent_power_phase_3:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_power:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -19181,41 +19677,46 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_apparent_power_phase_3', + 'entity_id': 'sensor.device_power', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Apparent power phase 3', + 'original_name': 'Power', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_apparent_power_phase_va', - 'unique_id': 'aabbccddeeff_active_apparent_power_l3_va', - 'unit_of_measurement': , + 'translation_key': None, + 'unique_id': 'aabbccddeeff_active_power_w', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_apparent_power_phase_3:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_power:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'apparent_power', - 'friendly_name': 'Device Apparent power phase 3', + 'device_class': 'power', + 'friendly_name': 'Device Power', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_apparent_power_phase_3', + 'entity_id': 'sensor.device_power', 'last_changed': , 'last_updated': , - 'state': '3563.414', + 'state': '-900.194', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_current:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_power_factor_phase_1:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -19237,6 +19738,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19247,7 +19750,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_current:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_power_factor_phase_1:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -19261,41 +19764,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_current', + 'entity_id': 'sensor.device_power_factor_phase_1', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Current', + 'original_name': 'Power factor phase 1', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': None, - 'unique_id': 'aabbccddeeff_active_current_a', - 'unit_of_measurement': , + 'translation_key': 'active_power_factor_phase', + 'unique_id': 'aabbccddeeff_active_power_factor_l1', + 'unit_of_measurement': '%', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_current:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_power_factor_phase_1:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'current', - 'friendly_name': 'Device Current', + 'device_class': 'power_factor', + 'friendly_name': 'Device Power factor phase 1', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': '%', }), 'context': , - 'entity_id': 'sensor.device_current', + 'entity_id': 'sensor.device_power_factor_phase_1', 'last_changed': , 'last_updated': , - 'state': '30.999', + 'state': '100', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_current_phase_1:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_power_factor_phase_2:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -19317,6 +19822,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19327,7 +19834,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_current_phase_1:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_power_factor_phase_2:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -19341,41 +19848,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_current_phase_1', + 'entity_id': 'sensor.device_power_factor_phase_2', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Current phase 1', + 'original_name': 'Power factor phase 2', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_current_phase_a', - 'unique_id': 'aabbccddeeff_active_current_l1_a', - 'unit_of_measurement': , + 'translation_key': 'active_power_factor_phase', + 'unique_id': 'aabbccddeeff_active_power_factor_l2', + 'unit_of_measurement': '%', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_current_phase_1:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_power_factor_phase_2:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'current', - 'friendly_name': 'Device Current phase 1', + 'device_class': 'power_factor', + 'friendly_name': 'Device Power factor phase 2', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': '%', }), 'context': , - 'entity_id': 'sensor.device_current_phase_1', + 'entity_id': 'sensor.device_power_factor_phase_2', 'last_changed': , 'last_updated': , - 'state': '0', + 'state': '99.9', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_current_phase_2:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_power_factor_phase_3:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -19397,6 +19906,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19407,7 +19918,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_current_phase_2:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_power_factor_phase_3:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -19421,41 +19932,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_current_phase_2', + 'entity_id': 'sensor.device_power_factor_phase_3', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Current phase 2', + 'original_name': 'Power factor phase 3', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_current_phase_a', - 'unique_id': 'aabbccddeeff_active_current_l2_a', - 'unit_of_measurement': , + 'translation_key': 'active_power_factor_phase', + 'unique_id': 'aabbccddeeff_active_power_factor_l3', + 'unit_of_measurement': '%', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_current_phase_2:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_power_factor_phase_3:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'current', - 'friendly_name': 'Device Current phase 2', + 'device_class': 'power_factor', + 'friendly_name': 'Device Power factor phase 3', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': '%', }), 'context': , - 'entity_id': 'sensor.device_current_phase_2', + 'entity_id': 'sensor.device_power_factor_phase_3', 'last_changed': , 'last_updated': , - 'state': '15.521', + 'state': '99.7', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_current_phase_3:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_power_phase_1:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -19477,6 +19990,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19487,7 +20002,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_current_phase_3:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_power_phase_1:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -19501,41 +20016,46 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_current_phase_3', + 'entity_id': 'sensor.device_power_phase_1', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Current phase 3', + 'original_name': 'Power phase 1', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_current_phase_a', - 'unique_id': 'aabbccddeeff_active_current_l3_a', - 'unit_of_measurement': , + 'translation_key': 'active_power_phase_w', + 'unique_id': 'aabbccddeeff_active_power_l1_w', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_current_phase_3:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_power_phase_1:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'current', - 'friendly_name': 'Device Current phase 3', + 'device_class': 'power', + 'friendly_name': 'Device Power phase 1', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_current_phase_3', + 'entity_id': 'sensor.device_power_phase_1', 'last_changed': , 'last_updated': , - 'state': '15.477', + 'state': '-1058.296', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_energy_export:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_power_phase_2:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -19557,6 +20077,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19567,13 +20089,13 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_energy_export:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_power_phase_2:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, 'capabilities': dict({ - 'state_class': , + 'state_class': , }), 'config_entry_id': , 'device_class': None, @@ -19581,41 +20103,46 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_energy_export', + 'entity_id': 'sensor.device_power_phase_2', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Energy export', + 'original_name': 'Power phase 2', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_energy_export_kwh', - 'unique_id': 'aabbccddeeff_total_power_export_kwh', - 'unit_of_measurement': , + 'translation_key': 'active_power_phase_w', + 'unique_id': 'aabbccddeeff_active_power_l2_w', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_energy_export:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_power_phase_2:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'energy', - 'friendly_name': 'Device Energy export', - 'state_class': , - 'unit_of_measurement': , + 'device_class': 'power', + 'friendly_name': 'Device Power phase 2', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_energy_export', + 'entity_id': 'sensor.device_power_phase_2', 'last_changed': , 'last_updated': , - 'state': '0.523', + 'state': '158.102', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_energy_import:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_power_phase_3:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -19637,6 +20164,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19647,13 +20176,13 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_energy_import:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_power_phase_3:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, 'capabilities': dict({ - 'state_class': , + 'state_class': , }), 'config_entry_id': , 'device_class': None, @@ -19661,41 +20190,46 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_energy_import', + 'entity_id': 'sensor.device_power_phase_3', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Energy import', + 'original_name': 'Power phase 3', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_energy_import_kwh', - 'unique_id': 'aabbccddeeff_total_power_import_kwh', - 'unit_of_measurement': , + 'translation_key': 'active_power_phase_w', + 'unique_id': 'aabbccddeeff_active_power_l3_w', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_energy_import:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_power_phase_3:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'energy', - 'friendly_name': 'Device Energy import', - 'state_class': , - 'unit_of_measurement': , + 'device_class': 'power', + 'friendly_name': 'Device Power phase 3', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_energy_import', + 'entity_id': 'sensor.device_power_phase_3', 'last_changed': , 'last_updated': , - 'state': '0.101', + 'state': '0.0', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_frequency:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_reactive_power:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -19717,6 +20251,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19727,7 +20263,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_frequency:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_reactive_power:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -19741,41 +20277,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_frequency', + 'entity_id': 'sensor.device_reactive_power', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Frequency', + 'original_name': 'Reactive power', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, 'translation_key': None, - 'unique_id': 'aabbccddeeff_active_frequency_hz', - 'unit_of_measurement': , + 'unique_id': 'aabbccddeeff_active_reactive_power_var', + 'unit_of_measurement': 'var', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_frequency:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_reactive_power:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'frequency', - 'friendly_name': 'Device Frequency', + 'device_class': 'reactive_power', + 'friendly_name': 'Device Reactive power', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'var', }), 'context': , - 'entity_id': 'sensor.device_frequency', + 'entity_id': 'sensor.device_reactive_power', 'last_changed': , 'last_updated': , - 'state': '49.926', + 'state': '-429.025', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_power:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_reactive_power_phase_1:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -19797,6 +20335,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19807,7 +20347,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_power:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_reactive_power_phase_1:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -19821,44 +20361,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_power', + 'entity_id': 'sensor.device_reactive_power_phase_1', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ - 'sensor': dict({ - 'suggested_display_precision': 0, - }), }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Power', + 'original_name': 'Reactive power phase 1', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': None, - 'unique_id': 'aabbccddeeff_active_power_w', - 'unit_of_measurement': , + 'translation_key': 'active_reactive_power_phase_var', + 'unique_id': 'aabbccddeeff_active_reactive_power_l1_var', + 'unit_of_measurement': 'var', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_power:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_reactive_power_phase_1:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'power', - 'friendly_name': 'Device Power', + 'device_class': 'reactive_power', + 'friendly_name': 'Device Reactive power phase 1', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'var', }), 'context': , - 'entity_id': 'sensor.device_power', + 'entity_id': 'sensor.device_reactive_power_phase_1', 'last_changed': , 'last_updated': , - 'state': '-900.194', + 'state': '0', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_power_factor_phase_1:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_reactive_power_phase_2:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -19880,6 +20419,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19890,7 +20431,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_power_factor_phase_1:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_reactive_power_phase_2:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -19904,41 +20445,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_power_factor_phase_1', + 'entity_id': 'sensor.device_reactive_power_phase_2', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Power factor phase 1', + 'original_name': 'Reactive power phase 2', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_power_factor_phase', - 'unique_id': 'aabbccddeeff_active_power_factor_l1', - 'unit_of_measurement': '%', + 'translation_key': 'active_reactive_power_phase_var', + 'unique_id': 'aabbccddeeff_active_reactive_power_l2_var', + 'unit_of_measurement': 'var', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_power_factor_phase_1:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_reactive_power_phase_2:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'power_factor', - 'friendly_name': 'Device Power factor phase 1', + 'device_class': 'reactive_power', + 'friendly_name': 'Device Reactive power phase 2', 'state_class': , - 'unit_of_measurement': '%', + 'unit_of_measurement': 'var', }), 'context': , - 'entity_id': 'sensor.device_power_factor_phase_1', + 'entity_id': 'sensor.device_reactive_power_phase_2', 'last_changed': , 'last_updated': , - 'state': '100', + 'state': '-166.675', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_power_factor_phase_2:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_reactive_power_phase_3:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -19960,6 +20503,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -19970,7 +20515,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_power_factor_phase_2:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_reactive_power_phase_3:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -19984,41 +20529,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_power_factor_phase_2', + 'entity_id': 'sensor.device_reactive_power_phase_3', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Power factor phase 2', + 'original_name': 'Reactive power phase 3', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_power_factor_phase', - 'unique_id': 'aabbccddeeff_active_power_factor_l2', - 'unit_of_measurement': '%', + 'translation_key': 'active_reactive_power_phase_var', + 'unique_id': 'aabbccddeeff_active_reactive_power_l3_var', + 'unit_of_measurement': 'var', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_power_factor_phase_2:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_reactive_power_phase_3:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'power_factor', - 'friendly_name': 'Device Power factor phase 2', + 'device_class': 'reactive_power', + 'friendly_name': 'Device Reactive power phase 3', 'state_class': , - 'unit_of_measurement': '%', + 'unit_of_measurement': 'var', }), 'context': , - 'entity_id': 'sensor.device_power_factor_phase_2', + 'entity_id': 'sensor.device_reactive_power_phase_3', 'last_changed': , 'last_updated': , - 'state': '99.9', + 'state': '-262.35', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_power_factor_phase_3:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_total_energy_export:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -20050,13 +20597,13 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_power_factor_phase_3:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_total_energy_export:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, 'capabilities': dict({ - 'state_class': , + 'state_class': , }), 'config_entry_id': , 'device_class': None, @@ -20064,7 +20611,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_power_factor_phase_3', + 'entity_id': 'sensor.device_total_energy_export', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -20072,33 +20619,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Power factor phase 3', + 'original_name': 'Total energy export', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_power_factor_phase', - 'unique_id': 'aabbccddeeff_active_power_factor_l3', - 'unit_of_measurement': '%', + 'translation_key': 'total_energy_export_kwh', + 'unique_id': 'aabbccddeeff_total_power_export_kwh', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_power_factor_phase_3:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_total_energy_export:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'power_factor', - 'friendly_name': 'Device Power factor phase 3', - 'state_class': , - 'unit_of_measurement': '%', + 'device_class': 'energy', + 'friendly_name': 'Device Total energy export', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_power_factor_phase_3', + 'entity_id': 'sensor.device_total_energy_export', 'last_changed': , 'last_updated': , - 'state': '99.7', + 'state': '0.523', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_power_phase_1:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_total_energy_import:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -20130,13 +20677,13 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_power_phase_1:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_total_energy_import:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, 'capabilities': dict({ - 'state_class': , + 'state_class': , }), 'config_entry_id': , 'device_class': None, @@ -20144,44 +20691,41 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_power_phase_1', + 'entity_id': 'sensor.device_total_energy_import', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , 'name': None, 'options': dict({ - 'sensor': dict({ - 'suggested_display_precision': 0, - }), }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Power phase 1', + 'original_name': 'Total energy import', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_power_phase_w', - 'unique_id': 'aabbccddeeff_active_power_l1_w', - 'unit_of_measurement': , + 'translation_key': 'total_energy_import_kwh', + 'unique_id': 'aabbccddeeff_total_power_import_kwh', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_power_phase_1:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_total_energy_import:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'power', - 'friendly_name': 'Device Power phase 1', - 'state_class': , - 'unit_of_measurement': , + 'device_class': 'energy', + 'friendly_name': 'Device Total energy import', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_power_phase_1', + 'entity_id': 'sensor.device_total_energy_import', 'last_changed': , 'last_updated': , - 'state': '-1058.296', + 'state': '0.101', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_power_phase_2:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_voltage_phase_1:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -20203,6 +20747,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -20213,7 +20759,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_power_phase_2:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_voltage_phase_1:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -20227,44 +20773,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_power_phase_2', + 'entity_id': 'sensor.device_voltage_phase_1', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ - 'sensor': dict({ - 'suggested_display_precision': 0, - }), }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Power phase 2', + 'original_name': 'Voltage phase 1', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_power_phase_w', - 'unique_id': 'aabbccddeeff_active_power_l2_w', - 'unit_of_measurement': , + 'translation_key': 'active_voltage_phase_v', + 'unique_id': 'aabbccddeeff_active_voltage_l1_v', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_power_phase_2:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_voltage_phase_1:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'power', - 'friendly_name': 'Device Power phase 2', + 'device_class': 'voltage', + 'friendly_name': 'Device Voltage phase 1', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_power_phase_2', + 'entity_id': 'sensor.device_voltage_phase_1', 'last_changed': , 'last_updated': , - 'state': '158.102', + 'state': '230.751', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_power_phase_3:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_voltage_phase_2:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -20286,6 +20831,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -20296,7 +20843,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_power_phase_3:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_voltage_phase_2:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -20310,44 +20857,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_power_phase_3', + 'entity_id': 'sensor.device_voltage_phase_2', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ - 'sensor': dict({ - 'suggested_display_precision': 0, - }), }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Power phase 3', + 'original_name': 'Voltage phase 2', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_power_phase_w', - 'unique_id': 'aabbccddeeff_active_power_l3_w', - 'unit_of_measurement': , + 'translation_key': 'active_voltage_phase_v', + 'unique_id': 'aabbccddeeff_active_voltage_l2_v', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_power_phase_3:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_voltage_phase_2:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'power', - 'friendly_name': 'Device Power phase 3', + 'device_class': 'voltage', + 'friendly_name': 'Device Voltage phase 2', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_power_phase_3', + 'entity_id': 'sensor.device_voltage_phase_2', 'last_changed': , 'last_updated': , - 'state': '0.0', + 'state': '228.391', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_reactive_power:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_voltage_phase_3:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -20369,6 +20915,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -20379,7 +20927,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_reactive_power:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_voltage_phase_3:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -20393,41 +20941,43 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_reactive_power', + 'entity_id': 'sensor.device_voltage_phase_3', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Reactive power', + 'original_name': 'Voltage phase 3', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': None, - 'unique_id': 'aabbccddeeff_active_reactive_power_var', - 'unit_of_measurement': 'var', + 'translation_key': 'active_voltage_phase_v', + 'unique_id': 'aabbccddeeff_active_voltage_l3_v', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_reactive_power:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_voltage_phase_3:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'reactive_power', - 'friendly_name': 'Device Reactive power', + 'device_class': 'voltage', + 'friendly_name': 'Device Voltage phase 3', 'state_class': , - 'unit_of_measurement': 'var', + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_reactive_power', + 'entity_id': 'sensor.device_voltage_phase_3', 'last_changed': , 'last_updated': , - 'state': '-429.025', + 'state': '229.612', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_reactive_power_phase_1:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_wi_fi_ssid:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -20449,6 +20999,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -20459,55 +21011,52 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_reactive_power_phase_1:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_wi_fi_ssid:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': dict({ - 'state_class': , - }), + 'capabilities': None, 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, - 'entity_id': 'sensor.device_reactive_power_phase_1', + 'entity_category': , + 'entity_id': 'sensor.device_wi_fi_ssid', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': None, 'original_icon': None, - 'original_name': 'Reactive power phase 1', + 'original_name': 'Wi-Fi SSID', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_reactive_power_phase_var', - 'unique_id': 'aabbccddeeff_active_reactive_power_l1_var', - 'unit_of_measurement': 'var', + 'translation_key': 'wifi_ssid', + 'unique_id': 'aabbccddeeff_wifi_ssid', + 'unit_of_measurement': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_reactive_power_phase_1:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_wi_fi_ssid:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'reactive_power', - 'friendly_name': 'Device Reactive power phase 1', - 'state_class': , - 'unit_of_measurement': 'var', + 'friendly_name': 'Device Wi-Fi SSID', }), 'context': , - 'entity_id': 'sensor.device_reactive_power_phase_1', + 'entity_id': 'sensor.device_wi_fi_ssid', 'last_changed': , 'last_updated': , - 'state': '0', + 'state': 'My Wi-Fi', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_reactive_power_phase_2:device-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_wi_fi_strength:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -20529,6 +21078,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'SDM630-wifi', 'name': 'Device', @@ -20539,7 +21090,7 @@ 'via_device_id': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_reactive_power_phase_2:entity-registry] +# name: test_sensors[SDM630-entity_ids5][sensor.device_wi_fi_strength:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -20552,51 +21103,48 @@ 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, - 'entity_id': 'sensor.device_reactive_power_phase_2', + 'entity_category': , + 'entity_id': 'sensor.device_wi_fi_strength', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': None, 'original_icon': None, - 'original_name': 'Reactive power phase 2', + 'original_name': 'Wi-Fi strength', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_reactive_power_phase_var', - 'unique_id': 'aabbccddeeff_active_reactive_power_l2_var', - 'unit_of_measurement': 'var', + 'translation_key': 'wifi_strength', + 'unique_id': 'aabbccddeeff_wifi_strength', + 'unit_of_measurement': '%', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_reactive_power_phase_2:state] +# name: test_sensors[SDM630-entity_ids5][sensor.device_wi_fi_strength:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'reactive_power', - 'friendly_name': 'Device Reactive power phase 2', + 'friendly_name': 'Device Wi-Fi strength', 'state_class': , - 'unit_of_measurement': 'var', + 'unit_of_measurement': '%', }), 'context': , - 'entity_id': 'sensor.device_reactive_power_phase_2', + 'entity_id': 'sensor.device_wi_fi_strength', 'last_changed': , 'last_updated': , - 'state': '-166.675', + 'state': '92', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_reactive_power_phase_3:device-registry] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.gas_meter:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , 'configuration_url': None, 'connections': set({ - tuple( - 'mac', - '3c:39:e7:aa:bb:cc', - ), }), 'disabled_by': None, 'entry_type': None, @@ -20605,35 +21153,33 @@ 'identifiers': set({ tuple( 'homewizard', - '3c39e7aabbcc', + 'G001', ), }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'SDM630-wifi', - 'name': 'Device', + 'model': 'HWE-P1', + 'name': 'Gas meter', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '3.06', - 'via_device_id': None, + 'sw_version': None, + 'via_device_id': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_reactive_power_phase_3:entity-registry] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.gas_meter:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': dict({ - 'state_class': , - }), + 'capabilities': None, 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, - 'entity_id': 'sensor.device_reactive_power_phase_3', + 'entity_category': , + 'entity_id': 'sensor.gas_meter', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -20641,42 +21187,36 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , - 'original_icon': None, - 'original_name': 'Reactive power phase 3', + 'original_device_class': None, + 'original_icon': 'mdi:alphabetical-variant', + 'original_name': None, 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_reactive_power_phase_var', - 'unique_id': 'aabbccddeeff_active_reactive_power_l3_var', - 'unit_of_measurement': 'var', + 'translation_key': 'meter_identifier', + 'unique_id': 'homewizard_G001_meter_identifier', + 'unit_of_measurement': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_reactive_power_phase_3:state] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.gas_meter:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'reactive_power', - 'friendly_name': 'Device Reactive power phase 3', - 'state_class': , - 'unit_of_measurement': 'var', + 'friendly_name': 'Gas meter', + 'icon': 'mdi:alphabetical-variant', }), 'context': , - 'entity_id': 'sensor.device_reactive_power_phase_3', + 'entity_id': 'sensor.gas_meter', 'last_changed': , 'last_updated': , - 'state': '-262.35', + 'state': 'G001', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_total_energy_export:device-registry] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.gas_meter_2:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , 'configuration_url': None, 'connections': set({ - tuple( - 'mac', - '3c:39:e7:aa:bb:cc', - ), }), 'disabled_by': None, 'entry_type': None, @@ -20685,35 +21225,33 @@ 'identifiers': set({ tuple( 'homewizard', - '3c39e7aabbcc', + 'unknown_unit', ), }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'SDM630-wifi', - 'name': 'Device', + 'model': 'HWE-P1', + 'name': 'Gas meter', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '3.06', - 'via_device_id': None, + 'sw_version': None, + 'via_device_id': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_total_energy_export:entity-registry] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.gas_meter_2:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': dict({ - 'state_class': , - }), + 'capabilities': None, 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, - 'entity_id': 'sensor.device_total_energy_export', + 'entity_category': , + 'entity_id': 'sensor.gas_meter_2', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -20721,42 +21259,36 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , - 'original_icon': None, - 'original_name': 'Total energy export', + 'original_device_class': None, + 'original_icon': 'mdi:alphabetical-variant', + 'original_name': None, 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_energy_export_kwh', - 'unique_id': 'aabbccddeeff_total_power_export_kwh', - 'unit_of_measurement': , + 'translation_key': 'meter_identifier', + 'unique_id': 'homewizard_unknown_unit_meter_identifier', + 'unit_of_measurement': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_total_energy_export:state] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.gas_meter_2:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'energy', - 'friendly_name': 'Device Total energy export', - 'state_class': , - 'unit_of_measurement': , + 'friendly_name': 'Gas meter', + 'icon': 'mdi:alphabetical-variant', }), 'context': , - 'entity_id': 'sensor.device_total_energy_export', + 'entity_id': 'sensor.gas_meter_2', 'last_changed': , 'last_updated': , - 'state': '0.523', + 'state': 'unknown_unit', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_total_energy_import:device-registry] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.gas_meter_total_gas:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , 'configuration_url': None, 'connections': set({ - tuple( - 'mac', - '3c:39:e7:aa:bb:cc', - ), }), 'disabled_by': None, 'entry_type': None, @@ -20765,21 +21297,21 @@ 'identifiers': set({ tuple( 'homewizard', - '3c39e7aabbcc', + 'G001', ), }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'SDM630-wifi', - 'name': 'Device', + 'model': 'HWE-P1', + 'name': 'Gas meter', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '3.06', - 'via_device_id': None, + 'sw_version': None, + 'via_device_id': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_total_energy_import:entity-registry] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.gas_meter_total_gas:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -20793,7 +21325,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_total_energy_import', + 'entity_id': 'sensor.gas_meter_total_gas', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -20801,42 +21333,38 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Total energy import', + 'original_name': 'Total gas', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_energy_import_kwh', - 'unique_id': 'aabbccddeeff_total_power_import_kwh', - 'unit_of_measurement': , + 'translation_key': 'total_gas_m3', + 'unique_id': 'homewizard_G001', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_total_energy_import:state] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.gas_meter_total_gas:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'energy', - 'friendly_name': 'Device Total energy import', + 'device_class': 'gas', + 'friendly_name': 'Gas meter Total gas', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_total_energy_import', + 'entity_id': 'sensor.gas_meter_total_gas', 'last_changed': , 'last_updated': , - 'state': '0.101', + 'state': '111.111', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_voltage_phase_1:device-registry] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.gas_meter_total_gas_2:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , 'configuration_url': None, 'connections': set({ - tuple( - 'mac', - '3c:39:e7:aa:bb:cc', - ), }), 'disabled_by': None, 'entry_type': None, @@ -20845,27 +21373,27 @@ 'identifiers': set({ tuple( 'homewizard', - '3c39e7aabbcc', + 'unknown_unit', ), }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'SDM630-wifi', - 'name': 'Device', + 'model': 'HWE-P1', + 'name': 'Gas meter', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '3.06', - 'via_device_id': None, + 'sw_version': None, + 'via_device_id': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_voltage_phase_1:entity-registry] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.gas_meter_total_gas_2:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, 'capabilities': dict({ - 'state_class': , + 'state_class': , }), 'config_entry_id': , 'device_class': None, @@ -20873,7 +21401,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_voltage_phase_1', + 'entity_id': 'sensor.gas_meter_total_gas_2', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -20881,42 +21409,37 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': None, 'original_icon': None, - 'original_name': 'Voltage phase 1', + 'original_name': 'Total gas', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_voltage_phase_v', - 'unique_id': 'aabbccddeeff_active_voltage_l1_v', - 'unit_of_measurement': , + 'translation_key': 'total_gas_m3', + 'unique_id': 'homewizard_unknown_unit', + 'unit_of_measurement': 'cats', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_voltage_phase_1:state] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.gas_meter_total_gas_2:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'voltage', - 'friendly_name': 'Device Voltage phase 1', - 'state_class': , - 'unit_of_measurement': , + 'friendly_name': 'Gas meter Total gas', + 'state_class': , + 'unit_of_measurement': 'cats', }), 'context': , - 'entity_id': 'sensor.device_voltage_phase_1', + 'entity_id': 'sensor.gas_meter_total_gas_2', 'last_changed': , 'last_updated': , - 'state': '230.751', + 'state': '666.666', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_voltage_phase_2:device-registry] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.heat_meter:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , 'configuration_url': None, 'connections': set({ - tuple( - 'mac', - '3c:39:e7:aa:bb:cc', - ), }), 'disabled_by': None, 'entry_type': None, @@ -20925,35 +21448,33 @@ 'identifiers': set({ tuple( 'homewizard', - '3c39e7aabbcc', + 'H001', ), }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'SDM630-wifi', - 'name': 'Device', + 'model': 'HWE-P1', + 'name': 'Heat meter', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '3.06', - 'via_device_id': None, + 'sw_version': None, + 'via_device_id': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_voltage_phase_2:entity-registry] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.heat_meter:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': dict({ - 'state_class': , - }), + 'capabilities': None, 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, - 'entity_id': 'sensor.device_voltage_phase_2', + 'entity_category': , + 'entity_id': 'sensor.heat_meter', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -20961,42 +21482,36 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , - 'original_icon': None, - 'original_name': 'Voltage phase 2', + 'original_device_class': None, + 'original_icon': 'mdi:alphabetical-variant', + 'original_name': None, 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_voltage_phase_v', - 'unique_id': 'aabbccddeeff_active_voltage_l2_v', - 'unit_of_measurement': , + 'translation_key': 'meter_identifier', + 'unique_id': 'homewizard_H001_meter_identifier', + 'unit_of_measurement': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_voltage_phase_2:state] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.heat_meter:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'voltage', - 'friendly_name': 'Device Voltage phase 2', - 'state_class': , - 'unit_of_measurement': , + 'friendly_name': 'Heat meter', + 'icon': 'mdi:alphabetical-variant', }), 'context': , - 'entity_id': 'sensor.device_voltage_phase_2', + 'entity_id': 'sensor.heat_meter', 'last_changed': , 'last_updated': , - 'state': '228.391', + 'state': 'H001', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_voltage_phase_3:device-registry] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.heat_meter_total_heat_energy:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , 'configuration_url': None, 'connections': set({ - tuple( - 'mac', - '3c:39:e7:aa:bb:cc', - ), }), 'disabled_by': None, 'entry_type': None, @@ -21005,27 +21520,27 @@ 'identifiers': set({ tuple( 'homewizard', - '3c39e7aabbcc', + 'H001', ), }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'SDM630-wifi', - 'name': 'Device', + 'model': 'HWE-P1', + 'name': 'Heat meter', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '3.06', - 'via_device_id': None, + 'sw_version': None, + 'via_device_id': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_voltage_phase_3:entity-registry] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.heat_meter_total_heat_energy:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, 'capabilities': dict({ - 'state_class': , + 'state_class': , }), 'config_entry_id': , 'device_class': None, @@ -21033,7 +21548,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.device_voltage_phase_3', + 'entity_id': 'sensor.heat_meter_total_heat_energy', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -21041,42 +21556,38 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': , 'original_icon': None, - 'original_name': 'Voltage phase 3', + 'original_name': 'Total heat energy', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'active_voltage_phase_v', - 'unique_id': 'aabbccddeeff_active_voltage_l3_v', - 'unit_of_measurement': , + 'translation_key': 'total_energy_gj', + 'unique_id': 'homewizard_H001', + 'unit_of_measurement': 'GJ', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_voltage_phase_3:state] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.heat_meter_total_heat_energy:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'voltage', - 'friendly_name': 'Device Voltage phase 3', - 'state_class': , - 'unit_of_measurement': , + 'device_class': 'energy', + 'friendly_name': 'Heat meter Total heat energy', + 'state_class': , + 'unit_of_measurement': 'GJ', }), 'context': , - 'entity_id': 'sensor.device_voltage_phase_3', + 'entity_id': 'sensor.heat_meter_total_heat_energy', 'last_changed': , 'last_updated': , - 'state': '229.612', + 'state': '444.444', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_wi_fi_ssid:device-registry] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.inlet_heat_meter:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , 'configuration_url': None, 'connections': set({ - tuple( - 'mac', - '3c:39:e7:aa:bb:cc', - ), }), 'disabled_by': None, 'entry_type': None, @@ -21085,21 +21596,21 @@ 'identifiers': set({ tuple( 'homewizard', - '3c39e7aabbcc', + 'IH001', ), }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'SDM630-wifi', - 'name': 'Device', + 'model': 'HWE-P1', + 'name': 'Inlet heat meter', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '3.06', - 'via_device_id': None, + 'sw_version': None, + 'via_device_id': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_wi_fi_ssid:entity-registry] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.inlet_heat_meter:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -21111,7 +21622,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': , - 'entity_id': 'sensor.device_wi_fi_ssid', + 'entity_id': 'sensor.inlet_heat_meter', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -21120,38 +21631,35 @@ 'options': dict({ }), 'original_device_class': None, - 'original_icon': None, - 'original_name': 'Wi-Fi SSID', + 'original_icon': 'mdi:alphabetical-variant', + 'original_name': None, 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'wifi_ssid', - 'unique_id': 'aabbccddeeff_wifi_ssid', + 'translation_key': 'meter_identifier', + 'unique_id': 'homewizard_IH001_meter_identifier', 'unit_of_measurement': None, }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_wi_fi_ssid:state] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.inlet_heat_meter:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Device Wi-Fi SSID', + 'friendly_name': 'Inlet heat meter', + 'icon': 'mdi:alphabetical-variant', }), 'context': , - 'entity_id': 'sensor.device_wi_fi_ssid', + 'entity_id': 'sensor.inlet_heat_meter', 'last_changed': , 'last_updated': , - 'state': 'My Wi-Fi', + 'state': 'IH001', }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_wi_fi_strength:device-registry] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.inlet_heat_meter_total_heat_energy:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , 'configuration_url': None, 'connections': set({ - tuple( - 'mac', - '3c:39:e7:aa:bb:cc', - ), }), 'disabled_by': None, 'entry_type': None, @@ -21160,35 +21668,35 @@ 'identifiers': set({ tuple( 'homewizard', - '3c39e7aabbcc', + 'IH001', ), }), 'is_new': False, 'manufacturer': 'HomeWizard', - 'model': 'SDM630-wifi', - 'name': 'Device', + 'model': 'HWE-P1', + 'name': 'Inlet heat meter', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': '3.06', - 'via_device_id': None, + 'sw_version': None, + 'via_device_id': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_wi_fi_strength:entity-registry] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.inlet_heat_meter_total_heat_energy:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, 'capabilities': dict({ - 'state_class': , + 'state_class': , }), 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.device_wi_fi_strength', + 'entity_category': None, + 'entity_id': 'sensor.inlet_heat_meter_total_heat_energy', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -21198,30 +21706,30 @@ }), 'original_device_class': None, 'original_icon': None, - 'original_name': 'Wi-Fi strength', + 'original_name': 'Total heat energy', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'wifi_strength', - 'unique_id': 'aabbccddeeff_wifi_strength', - 'unit_of_measurement': '%', + 'translation_key': 'total_energy_gj', + 'unique_id': 'homewizard_IH001', + 'unit_of_measurement': , }) # --- -# name: test_sensors[SDM630-entity_ids5][sensor.device_wi_fi_strength:state] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.inlet_heat_meter_total_heat_energy:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Device Wi-Fi strength', - 'state_class': , - 'unit_of_measurement': '%', + 'friendly_name': 'Inlet heat meter Total heat energy', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.device_wi_fi_strength', + 'entity_id': 'sensor.inlet_heat_meter_total_heat_energy', 'last_changed': , 'last_updated': , - 'state': '92', + 'state': '555.555', }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.gas_meter:device-registry] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.warm_water_meter:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -21235,13 +21743,13 @@ 'identifiers': set({ tuple( 'homewizard', - 'G001', + 'WW001', ), }), 'is_new': False, 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', - 'name': 'Gas meter', + 'name': 'Warm water meter', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, @@ -21249,7 +21757,7 @@ 'via_device_id': , }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.gas_meter:entity-registry] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.warm_water_meter:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -21261,7 +21769,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': , - 'entity_id': 'sensor.gas_meter', + 'entity_id': 'sensor.warm_water_meter', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -21276,24 +21784,24 @@ 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'meter_identifier', - 'unique_id': 'homewizard_G001_meter_identifier', + 'unique_id': 'homewizard_WW001_meter_identifier', 'unit_of_measurement': None, }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.gas_meter:state] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.warm_water_meter:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Gas meter', + 'friendly_name': 'Warm water meter', 'icon': 'mdi:alphabetical-variant', }), 'context': , - 'entity_id': 'sensor.gas_meter', + 'entity_id': 'sensor.warm_water_meter', 'last_changed': , 'last_updated': , - 'state': 'G001', + 'state': 'WW001', }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.gas_meter_2:device-registry] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.warm_water_meter_total_water_usage:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -21307,13 +21815,13 @@ 'identifiers': set({ tuple( 'homewizard', - 'unknown_unit', + 'WW001', ), }), 'is_new': False, 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', - 'name': 'Gas meter', + 'name': 'Warm water meter', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, @@ -21321,19 +21829,21 @@ 'via_device_id': , }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.gas_meter_2:entity-registry] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.warm_water_meter_total_water_usage:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': None, + 'capabilities': dict({ + 'state_class': , + }), 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.gas_meter_2', + 'entity_category': None, + 'entity_id': 'sensor.warm_water_meter_total_water_usage', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -21341,31 +21851,33 @@ 'name': None, 'options': dict({ }), - 'original_device_class': None, - 'original_icon': 'mdi:alphabetical-variant', - 'original_name': None, + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Total water usage', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'meter_identifier', - 'unique_id': 'homewizard_unknown_unit_meter_identifier', - 'unit_of_measurement': None, + 'translation_key': 'total_liter_m3', + 'unique_id': 'homewizard_WW001', + 'unit_of_measurement': , }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.gas_meter_2:state] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.warm_water_meter_total_water_usage:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Gas meter', - 'icon': 'mdi:alphabetical-variant', + 'device_class': 'water', + 'friendly_name': 'Warm water meter Total water usage', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.gas_meter_2', + 'entity_id': 'sensor.warm_water_meter_total_water_usage', 'last_changed': , 'last_updated': , - 'state': 'unknown_unit', + 'state': '333.333', }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.gas_meter_total_gas:device-registry] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.water_meter:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -21379,13 +21891,13 @@ 'identifiers': set({ tuple( 'homewizard', - 'G001', + 'W001', ), }), 'is_new': False, 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', - 'name': 'Gas meter', + 'name': 'Water meter', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, @@ -21393,21 +21905,19 @@ 'via_device_id': , }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.gas_meter_total_gas:entity-registry] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.water_meter:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': dict({ - 'state_class': , - }), + 'capabilities': None, 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, - 'entity_id': 'sensor.gas_meter_total_gas', + 'entity_category': , + 'entity_id': 'sensor.water_meter', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -21415,33 +21925,31 @@ 'name': None, 'options': dict({ }), - 'original_device_class': , - 'original_icon': None, - 'original_name': 'Total gas', + 'original_device_class': None, + 'original_icon': 'mdi:alphabetical-variant', + 'original_name': None, 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_gas_m3', - 'unique_id': 'homewizard_G001', - 'unit_of_measurement': , + 'translation_key': 'meter_identifier', + 'unique_id': 'homewizard_W001_meter_identifier', + 'unit_of_measurement': None, }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.gas_meter_total_gas:state] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.water_meter:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'device_class': 'gas', - 'friendly_name': 'Gas meter Total gas', - 'state_class': , - 'unit_of_measurement': , + 'friendly_name': 'Water meter', + 'icon': 'mdi:alphabetical-variant', }), 'context': , - 'entity_id': 'sensor.gas_meter_total_gas', + 'entity_id': 'sensor.water_meter', 'last_changed': , 'last_updated': , - 'state': '111.111', + 'state': 'W001', }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.gas_meter_total_gas_2:device-registry] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.water_meter_total_water_usage:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , @@ -21455,13 +21963,13 @@ 'identifiers': set({ tuple( 'homewizard', - 'unknown_unit', + 'W001', ), }), 'is_new': False, 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', - 'name': 'Gas meter', + 'name': 'Water meter', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, @@ -21469,7 +21977,7 @@ 'via_device_id': , }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.gas_meter_total_gas_2:entity-registry] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.water_meter_total_water_usage:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -21483,7 +21991,7 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.gas_meter_total_gas_2', + 'entity_id': 'sensor.water_meter_total_water_usage', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -21491,37 +21999,42 @@ 'name': None, 'options': dict({ }), - 'original_device_class': None, + 'original_device_class': , 'original_icon': None, - 'original_name': 'Total gas', + 'original_name': 'Total water usage', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_gas_m3', - 'unique_id': 'homewizard_unknown_unit', - 'unit_of_measurement': 'cats', + 'translation_key': 'total_liter_m3', + 'unique_id': 'homewizard_W001', + 'unit_of_measurement': , }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.gas_meter_total_gas_2:state] +# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.water_meter_total_water_usage:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Gas meter Total gas', + 'device_class': 'water', + 'friendly_name': 'Water meter Total water usage', 'state_class': , - 'unit_of_measurement': 'cats', + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.gas_meter_total_gas_2', + 'entity_id': 'sensor.water_meter_total_water_usage', 'last_changed': , 'last_updated': , - 'state': '666.666', + 'state': '222.222', }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.heat_meter:device-registry] +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_active_current_phase_1:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , 'configuration_url': None, 'connections': set({ + tuple( + 'mac', + '3c:39:e7:aa:bb:cc', + ), }), 'disabled_by': None, 'entry_type': None, @@ -21530,70 +22043,68 @@ 'identifiers': set({ tuple( 'homewizard', - 'H001', + '3c39e7aabbcc', ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', - 'name': 'Heat meter', + 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': None, - 'via_device_id': , + 'sw_version': '4.19', + 'via_device_id': None, }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.heat_meter:entity-registry] +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_active_current_phase_1:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': None, + 'capabilities': dict({ + 'state_class': , + }), 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.heat_meter', + 'entity_category': None, + 'entity_id': 'sensor.device_active_current_phase_1', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': None, - 'original_icon': 'mdi:alphabetical-variant', - 'original_name': None, + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Active current phase 1', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'meter_identifier', - 'unique_id': 'homewizard_H001_meter_identifier', - 'unit_of_measurement': None, - }) -# --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.heat_meter:state] - StateSnapshot({ - 'attributes': ReadOnlyDict({ - 'friendly_name': 'Heat meter', - 'icon': 'mdi:alphabetical-variant', - }), - 'context': , - 'entity_id': 'sensor.heat_meter', - 'last_changed': , - 'last_updated': , - 'state': 'H001', + 'translation_key': 'active_current_phase_a', + 'translation_key': 'active_current_l1_a', + 'unique_id': 'aabbccddeeff_active_current_l1_a', + 'unit_of_measurement': , }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.heat_meter_total_heat_energy:device-registry] +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_active_tariff:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , 'configuration_url': None, 'connections': set({ + tuple( + 'mac', + '3c:39:e7:aa:bb:cc', + ), }), 'disabled_by': None, 'entry_type': None, @@ -21602,35 +22113,716 @@ 'identifiers': set({ tuple( 'homewizard', - 'H001', + '3c39e7aabbcc', ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', - 'name': 'Heat meter', + 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': None, - 'via_device_id': , + 'sw_version': '4.19', + 'via_device_id': None, }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.heat_meter_total_heat_energy:entity-registry] +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_active_tariff:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, 'capabilities': dict({ - 'state_class': , - }), - 'config_entry_id': , - 'device_class': None, + 'state_class': , + 'options': list([ + '1', + '2', + '3', + '4', + ]), + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.device_active_current_phase_2', + 'entity_id': 'sensor.device_active_tariff', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Active current phase 2', + 'platform': 'homewizard', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'active_current_phase_a', + 'unique_id': 'aabbccddeeff_active_current_l2_a', + 'unit_of_measurement': , + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_peak_demand_current_month:device-registry] + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + tuple( + 'mac', + '3c:39:e7:aa:bb:cc', + ), + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'homewizard', + '3c39e7aabbcc', + ), + }), + 'is_new': False, + 'labels': set({ + }), + 'manufacturer': 'HomeWizard', + 'model': 'HWE-P1', + 'name': 'Device', + 'name_by_user': None, + 'serial_number': None, + 'suggested_area': None, + 'sw_version': '4.19', + 'via_device_id': None, + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_peak_demand_current_month:entity-registry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.device_peak_demand_current_month', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Peak demand current month', + 'platform': 'homewizard', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'monthly_power_peak_w', + 'unique_id': 'aabbccddeeff_monthly_power_peak_w', + 'unit_of_measurement': , + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_export_tariff_1:state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'Device Total energy export', + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'Device Total power export tariff 1', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.device_total_energy_export', + 'last_changed': , + 'last_updated': , + 'state': '0.0', + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_export_tariff_1] + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + tuple( + 'mac', + '3c:39:e7:aa:bb:cc', + ), + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'homewizard', + '3c39e7aabbcc', + ), + }), + 'is_new': False, + 'manufacturer': 'HomeWizard', + 'model': 'HWE-P1', + 'name': 'Device', + 'name_by_user': None, + 'serial_number': None, + 'suggested_area': None, + 'sw_version': '4.19', + 'via_device_id': None, + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_export_tariff_2:device-registry] + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + tuple( + 'mac', + '3c:39:e7:aa:bb:cc', + ), + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'homewizard', + '3c39e7aabbcc', + ), + }), + 'is_new': False, + 'manufacturer': 'HomeWizard', + 'model': 'HWE-P1', + 'name': 'Device', + 'name_by_user': None, + 'serial_number': None, + 'suggested_area': None, + 'sw_version': '4.19', + 'via_device_id': None, + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_export_tariff_2:entity-registry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.device_total_energy_export_tariff_2', + 'entity_id': 'sensor.device_total_power_export_tariff_2', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Total energy export tariff 2', + 'platform': 'homewizard', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'total_energy_export_tariff_kwh', + 'original_name': 'Total power export tariff 2', + 'platform': 'homewizard', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'total_power_export_t2_kwh', + 'unique_id': 'aabbccddeeff_total_power_export_t2_kwh', + 'unit_of_measurement': , + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_export_tariff_2:state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'Device Total energy export tariff 2', + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'Device Total power export tariff 2', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.device_total_energy_export_tariff_2', + 'last_changed': , + 'last_updated': , + 'state': '0.0', + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_export_tariff_2] + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + tuple( + 'mac', + '3c:39:e7:aa:bb:cc', + ), + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'homewizard', + '3c39e7aabbcc', + ), + }), + 'is_new': False, + 'manufacturer': 'HomeWizard', + 'model': 'HWE-P1', + 'name': 'Device', + 'name_by_user': None, + 'serial_number': None, + 'suggested_area': None, + 'sw_version': '4.19', + 'via_device_id': None, + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_export_tariff_3:device-registry] + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + tuple( + 'mac', + '3c:39:e7:aa:bb:cc', + ), + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'homewizard', + '3c39e7aabbcc', + ), + }), + 'is_new': False, + 'manufacturer': 'HomeWizard', + 'model': 'HWE-P1', + 'name': 'Device', + 'name_by_user': None, + 'serial_number': None, + 'suggested_area': None, + 'sw_version': '4.19', + 'via_device_id': None, + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_export_tariff_3:entity-registry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.device_total_energy_export_tariff_3', + 'entity_id': 'sensor.device_total_power_export_tariff_3', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Total energy export tariff 3', + 'platform': 'homewizard', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'total_energy_export_tariff_kwh', + 'original_name': 'Total power export tariff 3', + 'platform': 'homewizard', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'total_power_export_t3_kwh', + 'unique_id': 'aabbccddeeff_total_power_export_t3_kwh', + 'unit_of_measurement': , + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_export_tariff_3:state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'Device Total energy export tariff 3', + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'Device Total power export tariff 3', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.device_total_energy_export_tariff_3', + 'last_changed': , + 'last_updated': , + 'state': '0.0', + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_export_tariff_3] + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + tuple( + 'mac', + '3c:39:e7:aa:bb:cc', + ), + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'homewizard', + '3c39e7aabbcc', + ), + }), + 'is_new': False, + 'manufacturer': 'HomeWizard', + 'model': 'HWE-P1', + 'name': 'Device', + 'name_by_user': None, + 'serial_number': None, + 'suggested_area': None, + 'sw_version': '4.19', + 'via_device_id': None, + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_export_tariff_4:device-registry] + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + tuple( + 'mac', + '3c:39:e7:aa:bb:cc', + ), + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'homewizard', + '3c39e7aabbcc', + ), + }), + 'is_new': False, + 'manufacturer': 'HomeWizard', + 'model': 'HWE-P1', + 'name': 'Device', + 'name_by_user': None, + 'serial_number': None, + 'suggested_area': None, + 'sw_version': '4.19', + 'via_device_id': None, + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_export_tariff_4:entity-registry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.device_total_energy_export_tariff_4', + 'entity_id': 'sensor.device_total_power_export_tariff_4', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Total energy export tariff 4', + 'platform': 'homewizard', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'total_energy_export_tariff_kwh', + 'original_name': 'Total power export tariff 4', + 'platform': 'homewizard', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'total_power_export_t4_kwh', + 'unique_id': 'aabbccddeeff_total_power_export_t4_kwh', + 'unit_of_measurement': , + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_export_tariff_4:state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'Device Total energy export tariff 4', + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'Device Total power export tariff 4', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.device_total_energy_export_tariff_4', + 'last_changed': , + 'last_updated': , + 'state': '0.0', + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_export_tariff_4] + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + tuple( + 'mac', + '3c:39:e7:aa:bb:cc', + ), + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'homewizard', + '3c39e7aabbcc', + ), + }), + 'is_new': False, + 'manufacturer': 'HomeWizard', + 'model': 'HWE-P1', + 'name': 'Device', + 'name_by_user': None, + 'serial_number': None, + 'suggested_area': None, + 'sw_version': '4.19', + 'via_device_id': None, + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_import:device-registry] + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + tuple( + 'mac', + '3c:39:e7:aa:bb:cc', + ), + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'homewizard', + '3c39e7aabbcc', + ), + }), + 'is_new': False, + 'manufacturer': 'HomeWizard', + 'model': 'HWE-P1', + 'name': 'Device', + 'name_by_user': None, + 'serial_number': None, + 'suggested_area': None, + 'sw_version': '4.19', + 'via_device_id': None, + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_import:entity-registry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.device_total_energy_import', + 'entity_id': 'sensor.device_total_power_import', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Total energy import', + 'platform': 'homewizard', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'total_energy_import_kwh', + 'original_name': 'Total power import', + 'platform': 'homewizard', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'total_power_import_kwh', + 'unique_id': 'aabbccddeeff_total_power_import_kwh', + 'unit_of_measurement': , + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_import:state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'Device Total energy import', + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'Device Total power import', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.device_total_energy_import', + 'last_changed': , + 'last_updated': , + 'state': '0.0', + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_import] + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + tuple( + 'mac', + '3c:39:e7:aa:bb:cc', + ), + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'homewizard', + '3c39e7aabbcc', + ), + }), + 'is_new': False, + 'manufacturer': 'HomeWizard', + 'model': 'HWE-P1', + 'name': 'Device', + 'name_by_user': None, + 'serial_number': None, + 'suggested_area': None, + 'sw_version': '4.19', + 'via_device_id': None, + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_import_tariff_1:device-registry] + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + tuple( + 'mac', + '3c:39:e7:aa:bb:cc', + ), + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'homewizard', + '3c39e7aabbcc', + ), + }), + 'is_new': False, + 'manufacturer': 'HomeWizard', + 'model': 'HWE-P1', + 'name': 'Device', + 'name_by_user': None, + 'serial_number': None, + 'suggested_area': None, + 'sw_version': '4.19', + 'via_device_id': None, + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_import_tariff_1:entity-registry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.heat_meter_total_heat_energy', + 'entity_id': 'sensor.device_total_energy_import_tariff_1', + 'entity_id': 'sensor.device_total_power_import_tariff_1', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -21640,36 +22832,49 @@ }), 'original_device_class': , 'original_icon': None, - 'original_name': 'Total heat energy', + 'original_name': 'Total energy import tariff 1', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_energy_gj', - 'unique_id': 'homewizard_H001', - 'unit_of_measurement': 'GJ', + 'translation_key': 'total_energy_import_tariff_kwh', + 'original_name': 'Total power import tariff 1', + 'platform': 'homewizard', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'total_power_import_t1_kwh', + 'unique_id': 'aabbccddeeff_total_power_import_t1_kwh', + 'unit_of_measurement': , }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.heat_meter_total_heat_energy:state] +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_import_tariff_1:state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'energy', - 'friendly_name': 'Heat meter Total heat energy', + 'friendly_name': 'Device Total energy import tariff 1', + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'Device Total power import tariff 1', 'state_class': , - 'unit_of_measurement': 'GJ', + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.heat_meter_total_heat_energy', + 'entity_id': 'sensor.device_total_energy_import_tariff_1', 'last_changed': , 'last_updated': , - 'state': '444.444', + 'state': '0.0', }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.inlet_heat_meter:device-registry] +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_import_tariff_1] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , 'configuration_url': None, 'connections': set({ + tuple( + 'mac', + '3c:39:e7:aa:bb:cc', + ), }), 'disabled_by': None, 'entry_type': None, @@ -21678,33 +22883,68 @@ 'identifiers': set({ tuple( 'homewizard', - 'IH001', + '3c39e7aabbcc', ), }), 'is_new': False, 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', - 'name': 'Inlet heat meter', + 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': None, - 'via_device_id': , + 'sw_version': '4.19', + 'via_device_id': None, }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.inlet_heat_meter:entity-registry] +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_import_tariff_2:device-registry] + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + tuple( + 'mac', + '3c:39:e7:aa:bb:cc', + ), + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'homewizard', + '3c39e7aabbcc', + ), + }), + 'is_new': False, + 'manufacturer': 'HomeWizard', + 'model': 'HWE-P1', + 'name': 'Device', + 'name_by_user': None, + 'serial_number': None, + 'suggested_area': None, + 'sw_version': '4.19', + 'via_device_id': None, + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_import_tariff_2:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': None, + 'capabilities': dict({ + 'state_class': , + }), 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.inlet_heat_meter', + 'entity_category': None, + 'entity_id': 'sensor.device_total_energy_import_tariff_2', + 'entity_id': 'sensor.device_total_power_import_tariff_2', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -21712,36 +22952,51 @@ 'name': None, 'options': dict({ }), - 'original_device_class': None, - 'original_icon': 'mdi:alphabetical-variant', - 'original_name': None, + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Total energy import tariff 2', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'meter_identifier', - 'unique_id': 'homewizard_IH001_meter_identifier', - 'unit_of_measurement': None, + 'translation_key': 'total_energy_import_tariff_kwh', + 'original_name': 'Total power import tariff 2', + 'platform': 'homewizard', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'total_power_import_t2_kwh', + 'unique_id': 'aabbccddeeff_total_power_import_t2_kwh', + 'unit_of_measurement': , }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.inlet_heat_meter:state] +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_import_tariff_2:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Inlet heat meter', - 'icon': 'mdi:alphabetical-variant', + 'device_class': 'energy', + 'friendly_name': 'Device Total energy import tariff 2', + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'Device Total power import tariff 2', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.inlet_heat_meter', + 'entity_id': 'sensor.device_total_energy_import_tariff_2', 'last_changed': , 'last_updated': , - 'state': 'IH001', + 'state': '0.0', }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.inlet_heat_meter_total_heat_energy:device-registry] +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_import_tariff_2] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , 'configuration_url': None, 'connections': set({ + tuple( + 'mac', + '3c:39:e7:aa:bb:cc', + ), }), 'disabled_by': None, 'entry_type': None, @@ -21750,21 +23005,53 @@ 'identifiers': set({ tuple( 'homewizard', - 'IH001', + '3c39e7aabbcc', ), }), 'is_new': False, 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', - 'name': 'Inlet heat meter', + 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': None, - 'via_device_id': , + 'sw_version': '4.19', + 'via_device_id': None, }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.inlet_heat_meter_total_heat_energy:entity-registry] +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_import_tariff_3:device-registry] + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + tuple( + 'mac', + '3c:39:e7:aa:bb:cc', + ), + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'homewizard', + '3c39e7aabbcc', + ), + }), + 'is_new': False, + 'manufacturer': 'HomeWizard', + 'model': 'HWE-P1', + 'name': 'Device', + 'name_by_user': None, + 'serial_number': None, + 'suggested_area': None, + 'sw_version': '4.19', + 'via_device_id': None, + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_import_tariff_3:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -21778,7 +23065,8 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.inlet_heat_meter_total_heat_energy', + 'entity_id': 'sensor.device_total_energy_import_tariff_3', + 'entity_id': 'sensor.device_total_power_import_tariff_3', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -21786,37 +23074,83 @@ 'name': None, 'options': dict({ }), - 'original_device_class': None, + 'original_device_class': , 'original_icon': None, - 'original_name': 'Total heat energy', + 'original_name': 'Total energy import tariff 3', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_energy_gj', - 'unique_id': 'homewizard_IH001', - 'unit_of_measurement': , + 'translation_key': 'total_energy_import_tariff_kwh', + 'original_name': 'Total power import tariff 3', + 'platform': 'homewizard', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'total_power_import_t3_kwh', + 'unique_id': 'aabbccddeeff_total_power_import_t3_kwh', + 'unit_of_measurement': , }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.inlet_heat_meter_total_heat_energy:state] +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_import_tariff_3:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Inlet heat meter Total heat energy', + 'device_class': 'energy', + 'friendly_name': 'Device Total energy import tariff 3', + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'Device Total power import tariff 3', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.inlet_heat_meter_total_heat_energy', + 'entity_id': 'sensor.device_total_energy_import_tariff_3', 'last_changed': , 'last_updated': , - 'state': '555.555', + 'state': '0.0', }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.warm_water_meter:device-registry] +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_import_tariff_3] + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + tuple( + 'mac', + '3c:39:e7:aa:bb:cc', + ), + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'homewizard', + '3c39e7aabbcc', + ), + }), + 'is_new': False, + 'manufacturer': 'HomeWizard', + 'model': 'HWE-P1', + 'name': 'Device', + 'name_by_user': None, + 'serial_number': None, + 'suggested_area': None, + 'sw_version': '4.19', + 'via_device_id': None, + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_import_tariff_4:device-registry] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , 'configuration_url': None, 'connections': set({ + tuple( + 'mac', + '3c:39:e7:aa:bb:cc', + ), }), 'disabled_by': None, 'entry_type': None, @@ -21825,33 +23159,36 @@ 'identifiers': set({ tuple( 'homewizard', - 'WW001', + '3c39e7aabbcc', ), }), 'is_new': False, 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', - 'name': 'Warm water meter', + 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': None, - 'via_device_id': , + 'sw_version': '4.19', + 'via_device_id': None, }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.warm_water_meter:entity-registry] +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_import_tariff_4:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': None, + 'capabilities': dict({ + 'state_class': , + }), 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': , - 'entity_id': 'sensor.warm_water_meter', + 'entity_category': None, + 'entity_id': 'sensor.device_total_energy_import_tariff_4', + 'entity_id': 'sensor.device_total_power_import_tariff_4', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -21859,36 +23196,51 @@ 'name': None, 'options': dict({ }), - 'original_device_class': None, - 'original_icon': 'mdi:alphabetical-variant', - 'original_name': None, + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Total energy import tariff 4', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'meter_identifier', - 'unique_id': 'homewizard_WW001_meter_identifier', - 'unit_of_measurement': None, + 'translation_key': 'total_energy_import_tariff_kwh', + 'original_name': 'Total power import tariff 4', + 'platform': 'homewizard', + 'previous_unique_id': None, + 'supported_features': 0, + 'translation_key': 'total_power_import_t4_kwh', + 'unique_id': 'aabbccddeeff_total_power_import_t4_kwh', + 'unit_of_measurement': , }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.warm_water_meter:state] +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_import_tariff_4:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Warm water meter', - 'icon': 'mdi:alphabetical-variant', + 'device_class': 'energy', + 'friendly_name': 'Device Total energy import tariff 4', + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'energy', + 'friendly_name': 'Device Total power import tariff 4', + 'state_class': , + 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.warm_water_meter', + 'entity_id': 'sensor.device_total_energy_import_tariff_4', 'last_changed': , 'last_updated': , - 'state': 'WW001', + 'state': '0.0', }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.warm_water_meter_total_water_usage:device-registry] +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_power_import_tariff_4] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , 'configuration_url': None, 'connections': set({ + tuple( + 'mac', + '3c:39:e7:aa:bb:cc', + ), }), 'disabled_by': None, 'entry_type': None, @@ -21897,21 +23249,55 @@ 'identifiers': set({ tuple( 'homewizard', - 'WW001', + '3c39e7aabbcc', ), }), 'is_new': False, 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', - 'name': 'Warm water meter', + 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': None, - 'via_device_id': , + 'sw_version': '4.19', + 'via_device_id': None, }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.warm_water_meter_total_water_usage:entity-registry] +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_water_usage:device-registry] + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + tuple( + 'mac', + '3c:39:e7:aa:bb:cc', + ), + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'homewizard', + '3c39e7aabbcc', + ), + }), + 'is_new': False, + 'labels': set({ + }), + 'manufacturer': 'HomeWizard', + 'model': 'HWE-P1', + 'name': 'Device', + 'name_by_user': None, + 'serial_number': None, + 'suggested_area': None, + 'sw_version': '4.19', + 'via_device_id': None, + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_water_usage:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -21925,46 +23311,54 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': None, - 'entity_id': 'sensor.warm_water_meter_total_water_usage', + 'entity_id': 'sensor.device_total_water_usage', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), 'original_device_class': , 'original_icon': None, + 'original_icon': 'mdi:gauge', 'original_name': 'Total water usage', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, 'translation_key': 'total_liter_m3', - 'unique_id': 'homewizard_WW001', + 'unique_id': 'aabbccddeeff_total_liter_m3', 'unit_of_measurement': , }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.warm_water_meter_total_water_usage:state] +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_water_usage:state] StateSnapshot({ 'attributes': ReadOnlyDict({ 'device_class': 'water', - 'friendly_name': 'Warm water meter Total water usage', + 'friendly_name': 'Device Total water usage', + 'icon': 'mdi:gauge', 'state_class': , 'unit_of_measurement': , }), 'context': , - 'entity_id': 'sensor.warm_water_meter_total_water_usage', + 'entity_id': 'sensor.device_total_water_usage', 'last_changed': , 'last_updated': , - 'state': '333.333', + 'state': '0.0', }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.water_meter:device-registry] +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_total_water_usage] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , 'configuration_url': None, 'connections': set({ + tuple( + 'mac', + '3c:39:e7:aa:bb:cc', + ), }), 'disabled_by': None, 'entry_type': None, @@ -21973,21 +23367,55 @@ 'identifiers': set({ tuple( 'homewizard', - 'W001', + '3c39e7aabbcc', ), }), 'is_new': False, 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', - 'name': 'Water meter', + 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': None, - 'via_device_id': , + 'sw_version': '4.19', + 'via_device_id': None, }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.water_meter:entity-registry] +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_voltage_sags_detected_phase_1:device-registry] + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + tuple( + 'mac', + '3c:39:e7:aa:bb:cc', + ), + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'homewizard', + '3c39e7aabbcc', + ), + }), + 'is_new': False, + 'labels': set({ + }), + 'manufacturer': 'HomeWizard', + 'model': 'HWE-P1', + 'name': 'Device', + 'name_by_user': None, + 'serial_number': None, + 'suggested_area': None, + 'sw_version': '4.19', + 'via_device_id': None, + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_voltage_sags_detected_phase_1:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -21999,44 +23427,55 @@ 'disabled_by': None, 'domain': 'sensor', 'entity_category': , - 'entity_id': 'sensor.water_meter', + 'entity_id': 'sensor.device_voltage_sags_detected_phase_1', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), 'original_device_class': None, - 'original_icon': 'mdi:alphabetical-variant', - 'original_name': None, + 'original_icon': None, + 'original_icon': 'mdi:alert', + 'original_name': 'Voltage sags detected phase 1', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'meter_identifier', - 'unique_id': 'homewizard_W001_meter_identifier', + 'translation_key': 'voltage_sag_phase_count', + 'translation_key': 'voltage_sag_l1_count', + 'unique_id': 'aabbccddeeff_voltage_sag_l1_count', 'unit_of_measurement': None, }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.water_meter:state] +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_voltage_sags_detected_phase_1:state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Water meter', - 'icon': 'mdi:alphabetical-variant', + 'friendly_name': 'Device Voltage sags detected phase 1', + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Device Voltage sags detected phase 1', + 'icon': 'mdi:alert', }), 'context': , - 'entity_id': 'sensor.water_meter', + 'entity_id': 'sensor.device_voltage_sags_detected_phase_1', 'last_changed': , 'last_updated': , - 'state': 'W001', + 'state': '0', }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.water_meter_total_water_usage:device-registry] +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_voltage_sags_detected_phase_1] DeviceRegistryEntrySnapshot({ 'area_id': None, 'config_entries': , 'configuration_url': None, 'connections': set({ + tuple( + 'mac', + '3c:39:e7:aa:bb:cc', + ), }), 'disabled_by': None, 'entry_type': None, @@ -22045,65 +23484,86 @@ 'identifiers': set({ tuple( 'homewizard', - 'W001', + '3c39e7aabbcc', ), }), 'is_new': False, 'manufacturer': 'HomeWizard', 'model': 'HWE-P1', - 'name': 'Water meter', + 'name': 'Device', 'name_by_user': None, 'serial_number': None, 'suggested_area': None, - 'sw_version': None, - 'via_device_id': , + 'sw_version': '4.19', + 'via_device_id': None, }) # --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.water_meter_total_water_usage:entity-registry] +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_voltage_sags_detected_phase_2:device-registry] + DeviceRegistryEntrySnapshot({ + 'area_id': None, + 'config_entries': , + 'configuration_url': None, + 'connections': set({ + tuple( + 'mac', + '3c:39:e7:aa:bb:cc', + ), + }), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': None, + 'id': , + 'identifiers': set({ + tuple( + 'homewizard', + '3c39e7aabbcc', + ), + }), + 'is_new': False, + 'labels': set({ + }), + 'manufacturer': 'HomeWizard', + 'model': 'HWE-P1', + 'name': 'Device', + 'name_by_user': None, + 'serial_number': None, + 'suggested_area': None, + 'sw_version': '4.19', + 'via_device_id': None, + }) +# --- +# name: test_sensors_p1_meter[device-HWE-P1.json-data-HWE-P1.json-entity_ids0][sensor.device_voltage_sags_detected_phase_2:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), 'area_id': None, - 'capabilities': dict({ - 'state_class': , - }), + 'capabilities': None, 'config_entry_id': , 'device_class': None, 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, - 'entity_id': 'sensor.water_meter_total_water_usage', + 'entity_category': , + 'entity_id': 'sensor.device_voltage_sags_detected_phase_2', 'has_entity_name': True, 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), - 'original_device_class': , + 'original_device_class': None, 'original_icon': None, - 'original_name': 'Total water usage', + 'original_icon': 'mdi:alert', + 'original_name': 'Voltage sags detected phase 2', 'platform': 'homewizard', 'previous_unique_id': None, 'supported_features': 0, - 'translation_key': 'total_liter_m3', - 'unique_id': 'homewizard_W001', - 'unit_of_measurement': , - }) -# --- -# name: test_sensors_external_devices[HWE-P1-entity_ids0][sensor.water_meter_total_water_usage:state] - StateSnapshot({ - 'attributes': ReadOnlyDict({ - 'device_class': 'water', - 'friendly_name': 'Water meter Total water usage', - 'state_class': , - 'unit_of_measurement': , - }), - 'context': , - 'entity_id': 'sensor.water_meter_total_water_usage', - 'last_changed': , - 'last_updated': , - 'state': '222.222', + 'translation_key': 'voltage_sag_phase_count', + 'translation_key': 'voltage_sag_l2_count', + 'unique_id': 'aabbccddeeff_voltage_sag_l2_count', + 'unit_of_measurement': None, }) # --- diff --git a/tests/components/homewizard/snapshots/test_switch.ambr b/tests/components/homewizard/snapshots/test_switch.ambr index c8591b1f1d9747..446c4e0167db3e 100644 --- a/tests/components/homewizard/snapshots/test_switch.ambr +++ b/tests/components/homewizard/snapshots/test_switch.ambr @@ -179,6 +179,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -215,6 +217,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-SKT', 'name': 'Device', @@ -254,6 +258,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -290,6 +296,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-SKT', 'name': 'Device', @@ -329,6 +337,8 @@ 'hidden_by': None, 'icon': None, 'id': , + 'labels': set({ + }), 'name': None, 'options': dict({ }), @@ -365,6 +375,8 @@ ), }), 'is_new': False, + 'labels': set({ + }), 'manufacturer': 'HomeWizard', 'model': 'HWE-SKT', 'name': 'Device', diff --git a/tests/components/onewire/snapshots/test_binary_sensor.ambr b/tests/components/onewire/snapshots/test_binary_sensor.ambr index 25d47b342c503b..f29d29bc9c0dc2 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 cbcf0d6234eb77..099933c9b4c62a 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 e4d081a409b83b..b63fe3872da166 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/renault/snapshots/test_binary_sensor.ambr b/tests/components/renault/snapshots/test_binary_sensor.ambr index fbde0470cacd7b..8adbf1e9d024ec 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 90715cb56c2da7..58903962a2e9fd 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 0f901c8ce4c4ec..2dd61ce6acec83 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 932a302e5f703b..173afa6bdb916a 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 9fb302a11085e4..866728eb09b661 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 181cf8de17b108..9087c1d95f9f9c 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 4eee1208a12142..1333121df87218 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 846da8d41cf9dc..0ca62e8caed182 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 2b1825a40b4f0a..be2ee848029cd4 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/tplink_omada/snapshots/test_switch.ambr b/tests/components/tplink_omada/snapshots/test_switch.ambr index 99f49e44bf28bf..ee87a061a3c717 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 40b9f818f52079..5399e6f547a69e 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 5c9a1e54098778..0a1be9f4455cf3 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 a078d82ba9fd79..d44108c2151cb0 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 fa60aec2422cad..74c9a91688030c 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 0ccc169a4ce526..d3a26d5ceceb2d 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 bbfc93906344f9..4caa2220760802 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 6333356f26a83e..eb23f7491529c9 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 83ac2908089230..99299ae36dada4 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/wled/snapshots/test_binary_sensor.ambr b/tests/components/wled/snapshots/test_binary_sensor.ambr index 03d1d4f61dc827..a2d3176cec77c8 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 1c65a094662f9c..e004db77e25b19 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 7c05390a04ea3a..97555c7e850693 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 3c96e063738745..9881b8f0a00245 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 1184f1842ace5c..fa2e004f994615 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 9e946c55831eae..1eef2f0b2950c3 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -56,6 +56,7 @@ device_registry as dr, entity_registry as er, 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_device_registry.py b/tests/helpers/test_device_registry.py index c82a7493fe1f9b..bd5b5053bbeb4a 100644 --- a/tests/helpers/test_device_registry.py +++ b/tests/helpers/test_device_registry.py @@ -204,6 +204,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", @@ -247,6 +248,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", @@ -282,12 +284,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, @@ -371,6 +373,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", @@ -389,6 +392,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, @@ -412,12 +416,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, @@ -500,6 +504,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", @@ -518,6 +523,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, @@ -533,12 +539,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, @@ -623,6 +629,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", @@ -641,6 +648,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": 3, + "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": "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, @@ -1007,7 +1142,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 @@ -1115,6 +1253,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: @@ -1125,6 +1264,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", @@ -1148,6 +1288,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", @@ -1192,6 +1333,7 @@ async def test_update( "entry_type": None, "hw_version": None, "identifiers": {("bla", "123"), ("hue", "456")}, + "labels": set(), "manufacturer": None, "model": None, "name": None, @@ -1996,6 +2138,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, @@ -2031,3 +2174,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 1c13da1192fd6d..c24563b794d1e4 100644 --- a/tests/helpers/test_entity_registry.py +++ b/tests/helpers/test_entity_registry.py @@ -277,6 +277,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") @@ -314,6 +317,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" @@ -1756,3 +1760,70 @@ def _async_migrator(entity_entry: er.RegistryEntry) -> dict[str, Any] | None: 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 00000000000000..34afbbeb531704 --- /dev/null +++ b/tests/helpers/test_label_registry.py @@ -0,0 +1,460 @@ +"""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( + hass: HomeAssistant, 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 an label with a name 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( + hass: HomeAssistant, label_registry: lr.LabelRegistry +) -> None: + """Make sure that we can't create an 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 an 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( + hass: HomeAssistant, label_registry: lr.LabelRegistry +) -> None: + """Make sure that we can't delete an 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( + hass: HomeAssistant, label_registry: lr.LabelRegistry +) -> None: + """Make sure that we can't update an 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( + hass: HomeAssistant, label_registry: lr.LabelRegistry +) -> None: + """Make sure that we can't update an 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_or_create("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_or_create("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( + hass: HomeAssistant, label_registry: lr.LabelRegistry +) -> None: + """Make sure we can get the labels by name.""" + label = label_registry.async_get_or_create("Mock1") + label2 = label_registry.async_get_or_create("mock1") + label3 = label_registry.async_get_or_create("mock 1") + + assert label == label2 + assert label == label3 + assert label2 == label3 + + get_label = label_registry.async_get_label_by_name("M o c k 1") + assert get_label == label + + get_label = label_registry.async_get_label(label.label_id) + assert get_label == label + + +async def test_async_get_label_by_name_not_found( + hass: HomeAssistant, 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: + """Tests 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) + + 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) + + 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: + """Tests 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) + + 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) + + 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 diff --git a/tests/helpers/test_service.py b/tests/helpers/test_service.py index 90f9b65aaba351..01d9de759fd2ca 100644 --- a/tests/helpers/test_service.py +++ b/tests/helpers/test_service.py @@ -233,6 +233,88 @@ def area_mock(hass): ) +@pytest.fixture +def label_mock(hass: HomeAssistant) -> None: + """Mock including label info.""" + hass.states.async_set("light.Bowl", STATE_ON) + hass.states.async_set("light.Ceiling", STATE_OFF) + hass.states.async_set("light.Kitchen", STATE_OFF) + + device_has_label1 = dr.DeviceEntry(labels={"label1"}) + device_has_label2 = dr.DeviceEntry(labels={"label2"}) + device_has_labels = dr.DeviceEntry(labels={"label1", "label2"}) + device_no_labels = dr.DeviceEntry(id="device-no-labels") + + mock_device_registry( + hass, + { + device_has_label1.id: device_has_label1, + device_has_label2.id: device_has_label2, + device_has_labels.id: device_has_labels, + device_no_labels.id: device_no_labels, + }, + ) + + entity_with_my_label = er.RegistryEntry( + entity_id="light.with_my_label", + unique_id="with_my_label", + platform="test", + labels={"my-label"}, + ) + hidden_entity_with_my_label = er.RegistryEntry( + entity_id="light.hidden_with_my_label", + unique_id="hidden_with_my_label", + platform="test", + labels={"my-label"}, + hidden_by=er.RegistryEntryHider.USER, + ) + config_entity_with_my_label = er.RegistryEntry( + entity_id="light.config_with_my_label", + unique_id="config_with_my_label", + platform="test", + labels={"my-label"}, + entity_category=EntityCategory.CONFIG, + ) + entity_with_label1_from_device = er.RegistryEntry( + entity_id="light.with_label1_from_device", + unique_id="with_label1_from_device", + platform="test", + device_id=device_has_label1.id, + ) + entity_with_label1_and_label2_from_device = er.RegistryEntry( + entity_id="light.with_label1_and_label2_from_device", + unique_id="with_label1_and_label2_from_device", + platform="test", + labels={"label1"}, + device_id=device_has_label2.id, + ) + entity_with_labels_from_device = er.RegistryEntry( + entity_id="light.with_labels_from_device", + unique_id="with_labels_from_device", + platform="test", + device_id=device_has_labels.id, + ) + entity_with_no_labels = er.RegistryEntry( + entity_id="light.no_labels", + unique_id="no_labels", + platform="test", + device_id=device_no_labels.id, + ) + + mock_registry( + hass, + { + config_entity_with_my_label.entity_id: config_entity_with_my_label, + entity_with_label1_and_label2_from_device.entity_id: entity_with_label1_and_label2_from_device, + entity_with_label1_from_device.entity_id: entity_with_label1_from_device, + entity_with_labels_from_device.entity_id: entity_with_labels_from_device, + entity_with_my_label.entity_id: entity_with_my_label, + entity_with_no_labels.entity_id: entity_with_no_labels, + hidden_entity_with_my_label.entity_id: hidden_entity_with_my_label, + }, + ) + + async def test_call_from_config(hass: HomeAssistant) -> None: """Test the sync wrapper of service.async_call_from_config.""" calls = async_mock_service(hass, "test_domain", "test_service") @@ -559,6 +641,39 @@ async def test_extract_entity_ids_from_devices(hass: HomeAssistant, area_mock) - ) +async def test_extract_entity_ids_from_labels( + hass: HomeAssistant, label_mock: None +) -> None: + """Test extract_entity_ids method with labels.""" + call = ServiceCall("light", "turn_on", {"label_id": "my-label"}) + + assert { + "light.with_my_label", + } == await service.async_extract_entity_ids(hass, call) + + call = ServiceCall("light", "turn_on", {"label_id": "label1"}) + + assert { + "light.with_label1_from_device", + "light.with_labels_from_device", + "light.with_label1_and_label2_from_device", + } == await service.async_extract_entity_ids(hass, call) + + call = ServiceCall("light", "turn_on", {"label_id": ["label2"]}) + + assert { + "light.with_labels_from_device", + "light.with_label1_and_label2_from_device", + } == await service.async_extract_entity_ids(hass, call) + + assert ( + await service.async_extract_entity_ids( + hass, ServiceCall("light", "turn_on", {"label_id": ENTITY_MATCH_NONE}) + ) + == set() + ) + + async def test_async_get_all_descriptions(hass: HomeAssistant) -> None: """Test async_get_all_descriptions.""" group = hass.components.group @@ -1500,6 +1615,45 @@ async def test_extract_from_service_area_id(hass: HomeAssistant, area_mock) -> N ] +async def test_extract_from_service_label_id( + hass: HomeAssistant, label_mock: None +) -> None: + """Test the extraction using label ID as reference.""" + entities = [ + MockEntity(name="with_my_label", entity_id="light.with_my_label"), + MockEntity(name="no_labels", entity_id="light.no_labels"), + MockEntity( + name="with_labels_from_device", entity_id="light.with_labels_from_device" + ), + ] + + call = ServiceCall("light", "turn_on", {"label_id": "my-label"}) + extracted = await service.async_extract_entities(hass, entities, call) + assert len(extracted) == 1 + assert extracted[0].entity_id == "light.with_my_label" + + call = ServiceCall("light", "turn_on", {"label_id": ["my-label", "label1"]}) + extracted = await service.async_extract_entities(hass, entities, call) + assert len(extracted) == 2 + assert sorted(ent.entity_id for ent in extracted) == [ + "light.with_labels_from_device", + "light.with_my_label", + ] + + call = ServiceCall( + "light", + "turn_on", + {"label_id": ["my-label", "label1"], "device_id": "device-no-labels"}, + ) + extracted = await service.async_extract_entities(hass, entities, call) + assert len(extracted) == 3 + assert sorted(ent.entity_id for ent in extracted) == [ + "light.no_labels", + "light.with_labels_from_device", + "light.with_my_label", + ] + + async def test_entity_service_call_warn_referenced( hass: HomeAssistant, caplog: pytest.LogCaptureFixture ) -> None: @@ -1511,12 +1665,14 @@ async def test_entity_service_call_warn_referenced( "area_id": "non-existent-area", "entity_id": "non.existent", "device_id": "non-existent-device", + "label_id": "non-existent-label", }, ) await service.entity_service_call(hass, {}, "", call) assert ( "Referenced areas non-existent-area, devices non-existent-device, " - "entities non.existent are missing or not currently available" + "entities non.existent, labels non-existent-label " + "are missing or not currently available" ) in caplog.text @@ -1531,13 +1687,15 @@ async def test_async_extract_entities_warn_referenced( "area_id": "non-existent-area", "entity_id": "non.existent", "device_id": "non-existent-device", + "label_id": "non-existent-label", }, ) extracted = await service.async_extract_entities(hass, {}, call) assert len(extracted) == 0 assert ( "Referenced areas non-existent-area, devices non-existent-device, " - "entities non.existent are missing or not currently available" + "entities non.existent, labels non-existent-label " + "are missing or not currently available" ) in caplog.text diff --git a/tests/helpers/test_template.py b/tests/helpers/test_template.py index 955cd2fd65e667..90fdd5e490407c 100644 --- a/tests/helpers/test_template.py +++ b/tests/helpers/test_template.py @@ -37,6 +37,7 @@ device_registry as dr, entity, entity_registry as er, + label_registry as lr, template, ) from homeassistant.helpers.entity_platform import EntityPlatform @@ -4953,3 +4954,290 @@ async def test_lru_increases_with_many_entities(hass: HomeAssistant) -> None: assert template.CACHED_TEMPLATE_NO_COLLECT_LRU.get_size() == int( round(mock_entity_count * template.ENTITY_COUNT_GROWTH_FACTOR) ) + + +async def test_labels( + hass: HomeAssistant, + label_registry: lr.LabelRegistry, + device_registry: dr.DeviceRegistry, + entity_registry: er.EntityRegistry, +) -> None: + """Test labels function.""" + + # Test no labels + info = render_to_info(hass, "{{ labels() }}") + assert_result_info(info, []) + assert info.rate_limit is None + + # Test one label + label1 = label_registry.async_get_or_create("label1") + info = render_to_info(hass, "{{ labels() }}") + assert_result_info(info, [label1.label_id]) + assert info.rate_limit is None + + # Test multiple label + label2 = label_registry.async_get_or_create("label2") + info = render_to_info(hass, "{{ labels() }}") + assert_result_info(info, [label1.label_id, label2.label_id]) + assert info.rate_limit is None + + # Test non-exsting entity ID + info = render_to_info(hass, "{{ labels('sensor.fake') }}") + assert_result_info(info, []) + assert info.rate_limit is None + + info = render_to_info(hass, "{{ 'sensor.fake' | labels }}") + assert_result_info(info, []) + assert info.rate_limit is None + + # Test non existing device ID (hex value) + info = render_to_info(hass, "{{ labels('123abc') }}") + assert_result_info(info, []) + assert info.rate_limit is None + + info = render_to_info(hass, "{{ '123abc' | labels }}") + assert_result_info(info, []) + assert info.rate_limit is None + + # Create a device & entity for testing + config_entry = MockConfigEntry(domain="light") + config_entry.add_to_hass(hass) + device_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")}, + ) + entity_entry = entity_registry.async_get_or_create( + "light", + "hue", + "5678", + config_entry=config_entry, + device_id=device_entry.id, + ) + + # Test entity, which has no labels + info = render_to_info(hass, f"{{{{ labels('{entity_entry.entity_id}') }}}}") + assert_result_info(info, []) + assert info.rate_limit is None + + info = render_to_info(hass, f"{{{{ '{entity_entry.entity_id}' | labels }}}}") + assert_result_info(info, []) + assert info.rate_limit is None + + # Test device, which has no labels + info = render_to_info(hass, f"{{{{ labels('{device_entry.id}') }}}}") + assert_result_info(info, []) + assert info.rate_limit is None + + info = render_to_info(hass, f"{{{{ '{device_entry.id}' | labels }}}}") + assert_result_info(info, []) + assert info.rate_limit is None + + # Add labels to the entity & device + label1 = label_registry.async_get_or_create("label1") + label2 = label_registry.async_get_or_create("label2") + device_entry = device_registry.async_update_device( + device_entry.id, labels=[label1.label_id] + ) + entity_entry = entity_registry.async_update_entity( + entity_entry.entity_id, labels=[label2.label_id] + ) + + # Test entity, which now has a label + info = render_to_info(hass, f"{{{{ '{entity_entry.entity_id}' | labels }}}}") + assert_result_info(info, [label2.label_id]) + assert info.rate_limit is None + + info = render_to_info(hass, f"{{{{ labels('{entity_entry.entity_id}') }}}}") + assert_result_info(info, [label2.label_id]) + assert info.rate_limit is None + + # Test device, which now has a label + info = render_to_info(hass, f"{{{{ '{device_entry.id}' | labels }}}}") + assert_result_info(info, [label1.label_id]) + assert info.rate_limit is None + + info = render_to_info(hass, f"{{{{ labels('{device_entry.id}') }}}}") + assert_result_info(info, [label1.label_id]) + assert info.rate_limit is None + + +async def test_label_id( + hass: HomeAssistant, + label_registry: lr.LabelRegistry, +) -> None: + """Test label_id function.""" + # Test non existing label name + info = render_to_info(hass, "{{ label_id('non-existing label') }}") + assert_result_info(info, None) + assert info.rate_limit is None + + info = render_to_info(hass, "{{ 'non-existing label' | label_id }}") + assert_result_info(info, None) + assert info.rate_limit is None + + # Test wrong value type + info = render_to_info(hass, "{{ label_id(42) }}") + assert_result_info(info, None) + assert info.rate_limit is None + + info = render_to_info(hass, "{{ 42 | label_id }}") + assert_result_info(info, None) + assert info.rate_limit is None + + # Test with an actual label + label = label_registry.async_get_or_create("existing label") + info = render_to_info(hass, "{{ label_id('existing label') }}") + assert_result_info(info, label.label_id) + assert info.rate_limit is None + + info = render_to_info(hass, "{{ 'existing label' | label_id }}") + assert_result_info(info, label.label_id) + assert info.rate_limit is None + + +async def test_label_name( + hass: HomeAssistant, + label_registry: lr.LabelRegistry, +) -> None: + """Test label_name function.""" + # Test non existing label ID + info = render_to_info(hass, "{{ label_name('1234567890') }}") + assert_result_info(info, None) + assert info.rate_limit is None + + info = render_to_info(hass, "{{ '1234567890' | label_name }}") + assert_result_info(info, None) + assert info.rate_limit is None + + # Test wrong value type + info = render_to_info(hass, "{{ label_name(42) }}") + assert_result_info(info, None) + assert info.rate_limit is None + + info = render_to_info(hass, "{{ 42 | label_name }}") + assert_result_info(info, None) + assert info.rate_limit is None + + # Test non existing label ID + label = label_registry.async_get_or_create("choo choo") + info = render_to_info(hass, f"{{{{ label_name('{label.label_id}') }}}}") + assert_result_info(info, label.name) + assert info.rate_limit is None + + info = render_to_info(hass, f"{{{{ '{label.label_id}' | label_name }}}}") + assert_result_info(info, label.name) + assert info.rate_limit is None + + +async def test_label_entities( + hass: HomeAssistant, + entity_registry: er.EntityRegistry, + label_registry: lr.LabelRegistry, +) -> None: + """Test label_entities function.""" + + # Test non existing device id + info = render_to_info(hass, "{{ label_entities('deadbeef') }}") + assert_result_info(info, []) + assert info.rate_limit is None + + info = render_to_info(hass, "{{ 'deadbeef' | label_entities }}") + assert_result_info(info, []) + assert info.rate_limit is None + + # Test wrong value type + info = render_to_info(hass, "{{ label_entities(42) }}") + assert_result_info(info, []) + assert info.rate_limit is None + + info = render_to_info(hass, "{{ 42 | label_entities }}") + assert_result_info(info, []) + assert info.rate_limit is None + + # Create a fake config entry with a entity + config_entry = MockConfigEntry(domain="light") + config_entry.add_to_hass(hass) + entity_entry = entity_registry.async_get_or_create( + "light", + "hue", + "5678", + config_entry=config_entry, + ) + + # Add a label to the entity + label = label_registry.async_get_or_create("Romantic Lights") + entity_registry.async_update_entity(entity_entry.entity_id, labels={label.label_id}) + + # Get entities by label ID + info = render_to_info(hass, f"{{{{ label_entities('{label.label_id}') }}}}") + assert_result_info(info, ["light.hue_5678"]) + assert info.rate_limit is None + + info = render_to_info(hass, f"{{{{ '{label.label_id}' | label_entities }}}}") + assert_result_info(info, ["light.hue_5678"]) + assert info.rate_limit is None + + # Get entities by label name + info = render_to_info(hass, f"{{{{ label_entities('{label.name}') }}}}") + assert_result_info(info, ["light.hue_5678"]) + assert info.rate_limit is None + + info = render_to_info(hass, f"{{{{ '{label.name}' | label_entities }}}}") + assert_result_info(info, ["light.hue_5678"]) + assert info.rate_limit is None + + +async def test_label_devices( + hass: HomeAssistant, + device_registry: dr.DeviceRegistry, + label_registry: ar.AreaRegistry, +) -> None: + """Test label_devices function.""" + + # Test non existing device ID + info = render_to_info(hass, "{{ label_devices('deadbeef') }}") + assert_result_info(info, []) + assert info.rate_limit is None + + info = render_to_info(hass, "{{ 'deadbeef' | label_devices }}") + assert_result_info(info, []) + assert info.rate_limit is None + + # Test wrong value type + info = render_to_info(hass, "{{ label_devices(42) }}") + assert_result_info(info, []) + assert info.rate_limit is None + + info = render_to_info(hass, "{{ 42 | label_devices }}") + assert_result_info(info, []) + assert info.rate_limit is None + + # Create a fake config entry with a device + config_entry = MockConfigEntry(domain="light") + config_entry.add_to_hass(hass) + device_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")}, + ) + + # Add a label to it + label = label_registry.async_get_or_create("Romantic Lights") + device_registry.async_update_device(device_entry.id, labels=[label.label_id]) + + # Get the devices from a label by its ID + info = render_to_info(hass, f"{{{{ label_devices('{label.label_id}') }}}}") + assert_result_info(info, [device_entry.id]) + assert info.rate_limit is None + + info = render_to_info(hass, f"{{{{ '{label.label_id}' | label_devices }}}}") + assert_result_info(info, [device_entry.id]) + assert info.rate_limit is None + + # Get the devices from a label by its name + info = render_to_info(hass, f"{{{{ label_devices('{label.name}') }}}}") + assert_result_info(info, [device_entry.id]) + assert info.rate_limit is None + + info = render_to_info(hass, f"{{{{ '{label.name}' | label_devices }}}}") + assert_result_info(info, [device_entry.id]) + assert info.rate_limit is None diff --git a/tests/syrupy.py b/tests/syrupy.py index 9209654a607988..9ed8cbdcb53ac4 100644 --- a/tests/syrupy.py +++ b/tests/syrupy.py @@ -29,6 +29,7 @@ device_registry as dr, entity_registry as er, issue_registry as ir, + label_registry as lr, ) @@ -60,6 +61,10 @@ class EntityRegistryEntrySnapshot(dict): """Tiny wrapper to represent an entity registry entry in snapshots.""" +class LabelRegistryEntrySnapshot(dict): + """Tiny wrapper to represent an label registry entry in snapshots.""" + + class FlowResultSnapshot(dict): """Tiny wrapper to represent a flow result in snapshots.""" @@ -104,6 +109,8 @@ def _serialize( serializable_data = cls._serializable_entity_registry_entry(data) elif isinstance(data, ir.IssueEntry): serializable_data = cls._serializable_issue_registry_entry(data) + elif isinstance(data, lr.LabelEntry): + serializable_data = cls._serializable_issue_registry_entry(data) elif isinstance(data, dict) and "flow_id" in data and "handler" in data: serializable_data = cls._serializable_flow_result(data) elif isinstance(data, vol.Schema): @@ -187,6 +194,13 @@ def _serializable_issue_registry_entry( """Prepare a Home Assistant issue registry entry for serialization.""" return IssueRegistryItemSnapshot(data.to_json() | {"created": ANY}) + @classmethod + def _serializable_label_registry_entry( + cls, data: lr.LabelEntry + ) -> SerializableData: + """Prepare a Home Assistant label registry entry for serialization.""" + return LabelRegistryEntrySnapshot(dataclasses.asdict(data)) + @classmethod def _serializable_state(cls, data: State) -> SerializableData: """Prepare a Home Assistant State for serialization."""