Improve entity id generation (#160302)

This commit is contained in:
Artur Pragacz
2026-01-14 14:34:52 +01:00
committed by GitHub
parent 200627a695
commit 0130919128
843 changed files with 12208 additions and 577 deletions
@@ -11,13 +11,11 @@ from homeassistant import config_entries
from homeassistant.components import websocket_api
from homeassistant.components.websocket_api import ERR_NOT_FOUND, require_admin
from homeassistant.core import HomeAssistant, callback
from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers import (
config_validation as cv,
device_registry as dr,
entity_registry as er,
)
from homeassistant.helpers.entity_component import async_get_entity_suggested_object_id
from homeassistant.helpers.json import json_dumps
_LOGGER = logging.getLogger(__name__)
@@ -351,26 +349,12 @@ def websocket_get_automatic_entity_ids(
if not (entry := registry.entities.get(entity_id)):
automatic_entity_ids[entity_id] = None
continue
try:
suggested = async_get_entity_suggested_object_id(hass, entity_id)
except HomeAssistantError as err:
# This is raised if the entity has no object.
_LOGGER.debug(
"Unable to get suggested object ID for %s, entity ID: %s (%s)",
entry.entity_id,
entity_id,
err,
)
automatic_entity_ids[entity_id] = None
continue
suggested_entity_id = registry.async_generate_entity_id(
entry.domain,
suggested or f"{entry.platform}_{entry.unique_id}",
current_entity_id=entity_id,
new_entity_id = registry.async_regenerate_entity_id(
entry,
reserved_entity_ids=reserved_entity_ids,
)
automatic_entity_ids[entity_id] = suggested_entity_id
reserved_entity_ids.add(suggested_entity_id)
automatic_entity_ids[entity_id] = new_entity_id
reserved_entity_ids.add(new_entity_id)
connection.send_message(
websocket_api.result_message(msg["id"], automatic_entity_ids)
@@ -46,7 +46,7 @@ class MobileAppFlowHandler(ConfigFlow, domain=DOMAIN):
"device_tracker",
DOMAIN,
user_input[ATTR_DEVICE_ID],
suggested_object_id=user_input[ATTR_DEVICE_NAME],
object_id_base=user_input[ATTR_DEVICE_NAME],
)
await person.async_add_user_device_tracker(
self.hass, user_input[CONF_USER_ID], devt_entry.entity_id
+1 -1
View File
@@ -126,9 +126,9 @@ async def async_migrate_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"media_player",
DOMAIN,
unique_id,
suggested_object_id=new_id,
config_entry=entry,
device_id=e_entry.device_id,
object_id_base=new_id,
)
_LOGGER.debug(
"PlayStation 4 identifier for entity: %s has changed",
+1 -1
View File
@@ -83,8 +83,8 @@ def _create_entry(
DOMAIN,
DOMAIN,
tag_id,
object_id_base=slugify(name) if name else tag_id,
original_name=f"{DEFAULT_NAME} {tag_id}",
suggested_object_id=slugify(name) if name else tag_id,
)
if name:
return entity_registry.async_update_entity(entry.entity_id, name=name)
@@ -250,7 +250,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
else:
# Create tariff selection + one meter sensor for each tariff
entity_entry = entity_registry.async_get_or_create(
Platform.SELECT, DOMAIN, entry.entry_id, suggested_object_id=entry.title
Platform.SELECT, DOMAIN, entry.entry_id, object_id_base=entry.title
)
hass.data[DATA_UTILITY][entry.entry_id][CONF_TARIFF_ENTITY] = (
entity_entry.entity_id
+7 -1
View File
@@ -452,6 +452,11 @@ class Entity(
# Entity description instance for this Entity
entity_description: EntityDescription
# Integration suggested object id, derived from entity_id, if it is set by the
# integration before the entity is added.
# Only handled internally, never to be used by integrations.
internal_integration_suggested_object_id: str | None
# If we reported if this entity was slow
_slow_reported = False
@@ -715,7 +720,7 @@ class Entity(
@property
def suggested_object_id(self) -> str | None:
"""Return input for object id."""
"""Return suggested object id."""
if (
# Check our class has overridden the name property from Entity
# We need to use type.__getattribute__ to retrieve the underlying
@@ -733,6 +738,7 @@ class Entity(
)
else:
name = self.name
return None if name is UNDEFINED else name
@cached_property
+2 -32
View File
@@ -29,8 +29,8 @@ from homeassistant.loader import async_get_integration, bind_hass
from homeassistant.setup import async_prepare_setup_platform
from homeassistant.util.hass_dict import HassKey
from . import device_registry as dr, discovery, entity, entity_registry as er, service
from .entity_platform import EntityPlatform, async_calculate_suggested_object_id
from . import discovery, entity, service
from .entity_platform import EntityPlatform
from .typing import ConfigType, DiscoveryInfoType, VolDictType, VolSchemaType
DEFAULT_SCAN_INTERVAL = timedelta(seconds=15)
@@ -58,36 +58,6 @@ async def async_update_entity(hass: HomeAssistant, entity_id: str) -> None:
await entity_obj.async_update_ha_state(True)
@callback
def async_get_entity_suggested_object_id(
hass: HomeAssistant, entity_id: str
) -> str | None:
"""Get the suggested object id for an entity.
Raises HomeAssistantError if the entity is not in the registry or
is not backed by an object.
"""
entity_registry = er.async_get(hass)
if not (entity_entry := entity_registry.async_get(entity_id)):
raise HomeAssistantError(f"Entity {entity_id} is not in the registry.")
domain = entity_id.partition(".")[0]
if entity_entry.name:
return entity_entry.name
if entity_entry.suggested_object_id:
return entity_entry.suggested_object_id
entity_comp = hass.data.get(DATA_INSTANCES, {}).get(domain)
if not (entity_obj := entity_comp.get_entity(entity_id) if entity_comp else None):
raise HomeAssistantError(f"Entity {entity_id} has no object.")
device: dr.DeviceEntry | None = None
if device_id := entity_entry.device_id:
device = dr.async_get(hass).async_get(device_id)
return async_calculate_suggested_object_id(entity_obj, device)
class EntityComponent[_EntityT: entity.Entity = entity.Entity]:
"""The EntityComponent manages platforms that manage entities.
+68 -64
View File
@@ -7,7 +7,7 @@ from collections.abc import Awaitable, Callable, Coroutine, Iterable, Mapping
from contextvars import ContextVar
from datetime import timedelta
from logging import Logger, getLogger
from typing import TYPE_CHECKING, Any, Protocol
from typing import TYPE_CHECKING, Any, Protocol, overload
from homeassistant import config_entries
from homeassistant.const import (
@@ -786,7 +786,7 @@ class EntityPlatform:
already_exists = True
return (already_exists, restored)
async def _async_add_entity( # noqa: C901
async def _async_add_entity(
self,
entity: Entity,
update_before_add: bool,
@@ -813,12 +813,23 @@ class EntityPlatform:
entity.add_to_platform_abort()
return
suggested_object_id: str | None = None
entity_name = entity.name
if entity_name is UNDEFINED:
entity_name = None
suggested_object_id: str | None = None
# An entity may suggest the entity_id by setting entity_id itself
if not hasattr(entity, "internal_integration_suggested_object_id"):
if entity.entity_id is not None and not valid_entity_id(entity.entity_id):
entity.add_to_platform_abort()
raise HomeAssistantError(f"Invalid entity ID: {entity.entity_id}")
entity.internal_integration_suggested_object_id = (
split_entity_id(entity.entity_id)[1]
if entity.entity_id is not None
else None
)
# Get entity_id from unique ID registration
if entity.unique_id is not None:
registered_entity_id = entity_registry.async_get_entity_id(
@@ -871,23 +882,7 @@ class EntityPlatform:
else:
device = None
calculated_object_id: str | None = None
# An entity may suggest the entity_id by setting entity_id itself
suggested_entity_id: str | None = entity.entity_id
if suggested_entity_id is not None:
suggested_object_id = split_entity_id(entity.entity_id)[1]
if self.entity_namespace is not None:
suggested_object_id = (
f"{self.entity_namespace} {suggested_object_id}"
)
if not registered_entity_id and suggested_entity_id is None:
# Do not bother working out a suggested_object_id
# if the entity is already registered as it will
# be ignored.
#
calculated_object_id = async_calculate_suggested_object_id(
entity, device
)
suggested_object_id, object_id_base = _async_derive_object_ids(entity, self)
disabled_by: RegistryEntryDisabler | None = None
if not entity.entity_registry_enabled_default:
@@ -901,7 +896,6 @@ class EntityPlatform:
self.domain,
self.platform_name,
entity.unique_id,
calculated_object_id=calculated_object_id,
capabilities=entity.capability_attributes,
config_entry=self.config_entry,
config_subentry_id=config_subentry_id,
@@ -911,6 +905,7 @@ class EntityPlatform:
get_initial_options=entity.get_initial_entity_options,
has_entity_name=entity.has_entity_name,
hidden_by=hidden_by,
object_id_base=object_id_base,
original_device_class=entity.device_class,
original_icon=entity.icon,
original_name=entity_name,
@@ -928,40 +923,22 @@ class EntityPlatform:
entity.registry_entry = entry
entity.entity_id = entry.entity_id
else: # entity.unique_id is None
generate_new_entity_id = False
else: # entity.unique_id is None # noqa: PLR5501
# We won't generate an entity ID if the platform has already set one
# We will however make sure that platform cannot pick a registered ID
if entity.entity_id is not None and entity_registry.async_is_registered(
if entity.entity_id is None or entity_registry.async_is_registered(
entity.entity_id
):
# If entity already registered, convert entity id to suggestion
suggested_object_id = split_entity_id(entity.entity_id)[1]
generate_new_entity_id = True
# Generate entity ID
if entity.entity_id is None or generate_new_entity_id:
suggested_object_id = (
suggested_object_id
or entity.suggested_object_id
or DEVICE_DEFAULT_NAME
object_ids = _async_derive_object_ids(
entity, self, fallback_object_id=DEVICE_DEFAULT_NAME
)
if self.entity_namespace is not None:
suggested_object_id = (
f"{self.entity_namespace} {suggested_object_id}"
)
entity.entity_id = entity_registry.async_generate_entity_id(
suggested_object_id = (
object_ids[0] if object_ids[0] is not None else object_ids[1]
)
entity.entity_id = entity_registry.async_get_available_entity_id(
self.domain, suggested_object_id
)
# Make sure it is valid in case an entity set the value themselves
# Avoid calling valid_entity_id if we already know it is valid
# since it already made it in the registry
if not valid_entity_id(entity.entity_id):
entity.add_to_platform_abort()
raise HomeAssistantError(f"Invalid entity ID: {entity.entity_id}")
already_exists, restored = self._entity_id_already_exists(entity.entity_id)
if already_exists:
@@ -1229,25 +1206,52 @@ class EntityPlatform:
return await self.platform_data.async_load_translations()
@overload
def _async_derive_object_ids(
entity: Entity, platform: EntityPlatform, *, fallback_object_id: None = None
) -> tuple[str | None, str | None]: ...
@overload
def _async_derive_object_ids(
entity: Entity, platform: EntityPlatform, *, fallback_object_id: str
) -> tuple[str, None] | tuple[None, str]: ...
@callback
def async_calculate_suggested_object_id(
entity: Entity, device: dr.DeviceEntry | None
) -> str | None:
"""Calculate the suggested object ID for an entity."""
calculated_object_id: str | None = None
if device and entity.has_entity_name:
device_name = device.name_by_user or device.name
if entity.use_device_name:
calculated_object_id = device_name
else:
calculated_object_id = f"{device_name} {entity.suggested_object_id}"
if not calculated_object_id:
calculated_object_id = entity.suggested_object_id
def _async_derive_object_ids(
entity: Entity, platform: EntityPlatform, *, fallback_object_id: str | None = None
) -> tuple[str | None, str | None]:
"""Derive the object IDs for an entity.
if (platform := entity.platform) and platform.entity_namespace is not None:
calculated_object_id = f"{platform.entity_namespace} {calculated_object_id}"
Derives both suggested and base object IDs.
"""
is_base = True
object_id: str | None
return calculated_object_id
if entity.internal_integration_suggested_object_id is not None:
is_base = False
object_id = entity.internal_integration_suggested_object_id
else:
object_id = entity.suggested_object_id
if not object_id and fallback_object_id is not None:
object_id = fallback_object_id
if platform.entity_namespace is not None:
is_base = False
if entity.unique_id is not None and not object_id:
object_id = f"{platform.platform_name}_{entity.unique_id}"
object_id = f"{platform.entity_namespace} {object_id}"
suggested_object_id: str | None = None
object_id_base: str | None = None
if is_base:
object_id_base = object_id
else:
suggested_object_id = object_id
return suggested_object_id, object_id_base
current_platform: ContextVar[EntityPlatform | None] = ContextVar(
+181 -19
View File
@@ -58,6 +58,7 @@ from .device_registry import (
EVENT_DEVICE_REGISTRY_UPDATED,
EventDeviceRegistryUpdatedData,
)
from .frame import ReportBehavior, report_usage
from .json import JSON_DUMP, find_paths_unserializable_data, json_bytes, json_fragment
from .registry import BaseRegistry, BaseRegistryItems, RegistryIndexType
from .singleton import singleton
@@ -79,7 +80,7 @@ EVENT_ENTITY_REGISTRY_UPDATED: EventType[EventEntityRegistryUpdatedData] = Event
_LOGGER = logging.getLogger(__name__)
STORAGE_VERSION_MAJOR = 1
STORAGE_VERSION_MINOR = 19
STORAGE_VERSION_MINOR = 20
STORAGE_KEY = "core.entity_registry"
CLEANUP_INTERVAL = 3600 * 24
@@ -204,6 +205,7 @@ class RegistryEntry:
labels: set[str] = attr.ib(factory=set)
modified_at: datetime = attr.ib(factory=utcnow)
name: str | None = attr.ib(default=None)
object_id_base: str | None = attr.ib()
options: ReadOnlyEntityOptionsType = attr.ib(converter=_protect_entity_options)
# As set by integration
original_device_class: str | None = attr.ib()
@@ -366,6 +368,7 @@ class RegistryEntry:
"labels": list(self.labels),
"modified_at": self.modified_at,
"name": self.name,
"object_id_base": self.object_id_base,
"options": self.options,
"original_device_class": self.original_device_class,
"original_icon": self.original_icon,
@@ -410,6 +413,31 @@ class RegistryEntry:
hass.states.async_set(self.entity_id, STATE_UNAVAILABLE, attrs)
@callback
def _async_get_full_entity_name(
name: str | None,
*,
device: dr.DeviceEntry | None = None,
platform: str,
unique_id: str,
) -> str:
"""Get full name for an entity.
This includes the device name if appropriate.
"""
if device is not None:
device_name = device.name_by_user or device.name
if not name:
name = device_name
else:
name = f"{device_name} {name}"
if not name:
name = f"{platform}_{unique_id}"
return name
@attr.s(frozen=True, slots=True)
class DeletedRegistryEntry:
"""Deleted Entity Registry Entry."""
@@ -619,6 +647,11 @@ class EntityRegistryStore(storage.Store[dict[str, list[dict[str, Any]]]]):
entity["hidden_by_undefined"] = set_to_undefined
entity["options_undefined"] = set_to_undefined
if old_minor_version < 20:
# Version 1.20 adds object_id_base to entities
for entity in data["entities"]:
entity["object_id_base"] = entity["original_name"]
if old_major_version > 1:
raise NotImplementedError
return data
@@ -882,9 +915,41 @@ class EntityRegistry(BaseRegistry):
current_entity_id: str | None = None,
reserved_entity_ids: set[str] | None = None,
) -> str:
"""Generate an entity ID that does not conflict.
"""Get available entity ID.
Conflicts checked against registered and currently existing entities.
This function is deprecated. Use `async_get_available_entity_id` instead.
Entity ID conflicts are checked against registered and currently existing entities,
as well as provided `reserved_entity_ids`.
"""
report_usage(
"calls `entity_registry.async_generate_entity_id`, "
"which is deprecated and will be removed in Home Assistant 2027.2; "
"use `entity_registry.async_get_available_entity_id` instead",
core_behavior=ReportBehavior.LOG,
breaks_in_ha_version="2027.2.0",
)
return self.async_get_available_entity_id(
domain,
suggested_object_id,
current_entity_id=current_entity_id,
reserved_entity_ids=reserved_entity_ids,
)
@callback
def async_get_available_entity_id(
self,
domain: str,
suggested_object_id: str,
*,
current_entity_id: str | None = None,
reserved_entity_ids: set[str] | None = None,
) -> str:
"""Get next available entity ID.
Entity ID conflicts are checked against registered and currently existing entities,
as well as provided `reserved_entity_ids`.
"""
preferred_string = f"{domain}.{slugify(suggested_object_id)}"
@@ -906,6 +971,84 @@ class EntityRegistry(BaseRegistry):
return test_string
def _async_generate_entity_id(
self,
*,
current_entity_id: str | None,
device_id: str | None,
domain: str,
has_entity_name: bool,
name: str | None,
object_id_base: str | None,
platform: str,
reserved_entity_ids: set[str] | None = None,
suggested_object_id: str | None,
unique_id: str,
) -> str:
"""Generate an entity ID, based on all the provided parameters.
`name` has priority over `suggested_object_id`, which has priority
over `object_id_base`.
`name` and `suggested_object_id` do not cause the use of device name,
`object_id_base` does if `has_entity_name` is True.
Entity ID conflicts are checked against registered and currently
existing entities, as well as provided `reserved_entity_ids`.
"""
object_id: str | None
use_device = False
if name is not None:
object_id = name
elif suggested_object_id is not None:
object_id = suggested_object_id
else:
object_id = object_id_base
if has_entity_name:
use_device = True
device = (
dr.async_get(self.hass).async_get(device_id)
if use_device and device_id is not None
else None
)
object_id = _async_get_full_entity_name(
object_id,
device=device,
platform=platform,
unique_id=unique_id,
)
return self.async_get_available_entity_id(
domain,
object_id,
current_entity_id=current_entity_id,
reserved_entity_ids=reserved_entity_ids,
)
@callback
def async_regenerate_entity_id(
self,
entry: RegistryEntry,
*,
reserved_entity_ids: set[str] | None = None,
) -> str:
"""Regenerate an entity ID for an entry.
Entity ID conflicts are checked against registered and currently existing entities,
as well as provided `reserved_entity_ids`.
"""
return self._async_generate_entity_id(
current_entity_id=entry.entity_id,
device_id=entry.device_id,
domain=entry.domain,
has_entity_name=entry.has_entity_name,
name=entry.name,
object_id_base=entry.object_id_base,
platform=entry.platform,
reserved_entity_ids=reserved_entity_ids,
suggested_object_id=entry.suggested_object_id,
unique_id=entry.unique_id,
)
@callback
def async_get_or_create(
self,
@@ -913,9 +1056,10 @@ class EntityRegistry(BaseRegistry):
platform: str,
unique_id: str,
*,
# To influence entity ID generation
calculated_object_id: str | None = None,
suggested_object_id: str | None = None,
# Used for entity ID generation, if entity gets created.
# `suggested_object_id` has priority over `object_id_base`.
object_id_base: str | None | UndefinedType = UNDEFINED,
suggested_object_id: str | None | UndefinedType = UNDEFINED,
# To disable or hide an entity if it gets created, does not affect
# existing entities
disabled_by: RegistryEntryDisabler | None = None,
@@ -948,7 +1092,7 @@ class EntityRegistry(BaseRegistry):
entity_id = self.async_get_entity_id(domain, platform, unique_id)
if entity_id:
return self.async_update_entity(
return self._async_update_entity(
entity_id,
capabilities=capabilities,
config_entry_id=config_entry_id,
@@ -956,9 +1100,11 @@ class EntityRegistry(BaseRegistry):
device_id=device_id,
entity_category=entity_category,
has_entity_name=has_entity_name,
object_id_base=object_id_base,
original_device_class=original_device_class,
original_icon=original_icon,
original_name=original_name,
suggested_object_id=suggested_object_id,
supported_features=supported_features,
translation_key=translation_key,
unit_of_measurement=unit_of_measurement,
@@ -1022,12 +1168,26 @@ class EntityRegistry(BaseRegistry):
name = None
options = get_initial_options() if get_initial_options else None
if not entity_id:
entity_id = self.async_generate_entity_id(
domain,
suggested_object_id
or calculated_object_id
or f"{platform}_{unique_id}",
def none_if_undefined[_T](value: _T | UndefinedType) -> _T | None:
"""Return None if value is UNDEFINED, otherwise return value."""
return None if value is UNDEFINED else value
device_id = none_if_undefined(device_id)
has_entity_name_bool = none_if_undefined(has_entity_name) or False
object_id_base = none_if_undefined(object_id_base)
suggested_object_id = none_if_undefined(suggested_object_id)
if entity_id is None:
entity_id = self._async_generate_entity_id(
current_entity_id=None,
device_id=device_id,
domain=domain,
has_entity_name=has_entity_name_bool,
name=name,
object_id_base=object_id_base,
platform=platform,
suggested_object_id=suggested_object_id,
unique_id=unique_id,
)
if (
@@ -1038,10 +1198,6 @@ class EntityRegistry(BaseRegistry):
):
disabled_by = RegistryEntryDisabler.INTEGRATION
def none_if_undefined[_T](value: _T | UndefinedType) -> _T | None:
"""Return None if value is UNDEFINED, otherwise return value."""
return None if value is UNDEFINED else value
entry = RegistryEntry(
aliases=aliases,
area_id=area_id,
@@ -1051,16 +1207,17 @@ class EntityRegistry(BaseRegistry):
config_subentry_id=none_if_undefined(config_subentry_id),
created_at=created_at,
device_class=device_class,
device_id=none_if_undefined(device_id),
device_id=device_id,
disabled_by=disabled_by,
entity_category=none_if_undefined(entity_category),
entity_id=entity_id,
hidden_by=hidden_by,
has_entity_name=none_if_undefined(has_entity_name) or False,
has_entity_name=has_entity_name_bool,
icon=icon,
id=entity_registry_id,
labels=labels,
name=name,
object_id_base=object_id_base,
options=options,
original_device_class=none_if_undefined(original_device_class),
original_icon=none_if_undefined(original_icon),
@@ -1255,11 +1412,13 @@ class EntityRegistry(BaseRegistry):
name: str | None | UndefinedType = UNDEFINED,
new_entity_id: str | UndefinedType = UNDEFINED,
new_unique_id: str | UndefinedType = UNDEFINED,
object_id_base: str | None | UndefinedType = UNDEFINED,
options: EntityOptionsType | UndefinedType = UNDEFINED,
original_device_class: str | None | UndefinedType = UNDEFINED,
original_icon: str | None | UndefinedType = UNDEFINED,
original_name: str | None | UndefinedType = UNDEFINED,
platform: str | None | UndefinedType = UNDEFINED,
suggested_object_id: str | None | UndefinedType = UNDEFINED,
supported_features: int | UndefinedType = UNDEFINED,
translation_key: str | None | UndefinedType = UNDEFINED,
unit_of_measurement: str | None | UndefinedType = UNDEFINED,
@@ -1286,11 +1445,13 @@ class EntityRegistry(BaseRegistry):
("has_entity_name", has_entity_name),
("labels", labels),
("name", name),
("object_id_base", object_id_base),
("options", options),
("original_device_class", original_device_class),
("original_icon", original_icon),
("original_name", original_name),
("platform", platform),
("suggested_object_id", suggested_object_id),
("supported_features", supported_features),
("translation_key", translation_key),
("unit_of_measurement", unit_of_measurement),
@@ -1552,6 +1713,7 @@ class EntityRegistry(BaseRegistry):
labels=set(entity["labels"]),
modified_at=datetime.fromisoformat(entity["modified_at"]),
name=entity["name"],
object_id_base=entity.get("object_id_base"),
options=entity["options"],
original_device_class=entity["original_device_class"],
original_icon=entity["original_icon"],
+1
View File
@@ -697,6 +697,7 @@ class RegistryEntryWithDefaults(er.RegistryEntry):
converter=attr.converters.default_if_none(factory=uuid_util.random_uuid_hex), # type: ignore[misc]
)
has_entity_name: bool = attr.ib(default=False)
object_id_base: str | None = attr.ib(default=None)
options: er.ReadOnlyEntityOptionsType = attr.ib(
default=None, converter=er._protect_entity_options
)
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Timer running',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.RUNNING: 'running'>,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Reset timer',
'options': dict({
}),
'original_device_class': None,
@@ -68,6 +69,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Start/stop timer',
'options': dict({
}),
'original_device_class': None,
@@ -116,6 +118,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Tare',
'options': dict({
}),
'original_device_class': None,
@@ -22,6 +22,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Battery',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.BATTERY: 'battery'>,
@@ -75,6 +76,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Volume flow rate',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -131,6 +133,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Weight',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -28,6 +28,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Air quality day 0',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
@@ -93,6 +94,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Air quality day 1',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
@@ -158,6 +160,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Air quality day 2',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
@@ -223,6 +226,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Air quality day 3',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
@@ -288,6 +292,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Air quality day 4',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
@@ -347,6 +352,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Apparent temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -404,6 +410,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Cloud ceiling',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -461,6 +468,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Cloud cover',
'options': dict({
}),
'original_device_class': None,
@@ -512,6 +520,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Cloud cover day 0',
'options': dict({
}),
'original_device_class': None,
@@ -562,6 +571,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Cloud cover day 1',
'options': dict({
}),
'original_device_class': None,
@@ -612,6 +622,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Cloud cover day 2',
'options': dict({
}),
'original_device_class': None,
@@ -662,6 +673,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Cloud cover day 3',
'options': dict({
}),
'original_device_class': None,
@@ -712,6 +724,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Cloud cover day 4',
'options': dict({
}),
'original_device_class': None,
@@ -762,6 +775,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Cloud cover night 0',
'options': dict({
}),
'original_device_class': None,
@@ -812,6 +826,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Cloud cover night 1',
'options': dict({
}),
'original_device_class': None,
@@ -862,6 +877,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Cloud cover night 2',
'options': dict({
}),
'original_device_class': None,
@@ -912,6 +928,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Cloud cover night 3',
'options': dict({
}),
'original_device_class': None,
@@ -962,6 +979,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Cloud cover night 4',
'options': dict({
}),
'original_device_class': None,
@@ -1012,6 +1030,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Condition day 0',
'options': dict({
}),
'original_device_class': None,
@@ -1061,6 +1080,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Condition day 1',
'options': dict({
}),
'original_device_class': None,
@@ -1110,6 +1130,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Condition day 2',
'options': dict({
}),
'original_device_class': None,
@@ -1159,6 +1180,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Condition day 3',
'options': dict({
}),
'original_device_class': None,
@@ -1208,6 +1230,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Condition day 4',
'options': dict({
}),
'original_device_class': None,
@@ -1257,6 +1280,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Condition night 0',
'options': dict({
}),
'original_device_class': None,
@@ -1306,6 +1330,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Condition night 1',
'options': dict({
}),
'original_device_class': None,
@@ -1355,6 +1380,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Condition night 2',
'options': dict({
}),
'original_device_class': None,
@@ -1404,6 +1430,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Condition night 3',
'options': dict({
}),
'original_device_class': None,
@@ -1453,6 +1480,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Condition night 4',
'options': dict({
}),
'original_device_class': None,
@@ -1504,6 +1532,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Dew point',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -1559,6 +1588,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Grass pollen day 0',
'options': dict({
}),
'original_device_class': None,
@@ -1610,6 +1640,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Grass pollen day 1',
'options': dict({
}),
'original_device_class': None,
@@ -1661,6 +1692,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Grass pollen day 2',
'options': dict({
}),
'original_device_class': None,
@@ -1712,6 +1744,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Grass pollen day 3',
'options': dict({
}),
'original_device_class': None,
@@ -1763,6 +1796,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Grass pollen day 4',
'options': dict({
}),
'original_device_class': None,
@@ -1814,6 +1848,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Hours of sun day 0',
'options': dict({
}),
'original_device_class': None,
@@ -1864,6 +1899,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Hours of sun day 1',
'options': dict({
}),
'original_device_class': None,
@@ -1914,6 +1950,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Hours of sun day 2',
'options': dict({
}),
'original_device_class': None,
@@ -1964,6 +2001,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Hours of sun day 3',
'options': dict({
}),
'original_device_class': None,
@@ -2014,6 +2052,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Hours of sun day 4',
'options': dict({
}),
'original_device_class': None,
@@ -2066,6 +2105,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Humidity',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.HUMIDITY: 'humidity'>,
@@ -2118,6 +2158,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Mold pollen day 0',
'options': dict({
}),
'original_device_class': None,
@@ -2169,6 +2210,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Mold pollen day 1',
'options': dict({
}),
'original_device_class': None,
@@ -2220,6 +2262,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Mold pollen day 2',
'options': dict({
}),
'original_device_class': None,
@@ -2271,6 +2314,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Mold pollen day 3',
'options': dict({
}),
'original_device_class': None,
@@ -2322,6 +2366,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Mold pollen day 4',
'options': dict({
}),
'original_device_class': None,
@@ -2375,6 +2420,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Precipitation',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -2433,6 +2479,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -2494,6 +2541,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Pressure tendency',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
@@ -2549,6 +2597,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Ragweed pollen day 0',
'options': dict({
}),
'original_device_class': None,
@@ -2600,6 +2649,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Ragweed pollen day 1',
'options': dict({
}),
'original_device_class': None,
@@ -2651,6 +2701,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Ragweed pollen day 2',
'options': dict({
}),
'original_device_class': None,
@@ -2702,6 +2753,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Ragweed pollen day 3',
'options': dict({
}),
'original_device_class': None,
@@ -2753,6 +2805,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Ragweed pollen day 4',
'options': dict({
}),
'original_device_class': None,
@@ -2806,6 +2859,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'RealFeel temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -2861,6 +2915,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'RealFeel temperature max day 0',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -2915,6 +2970,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'RealFeel temperature max day 1',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -2969,6 +3025,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'RealFeel temperature max day 2',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -3023,6 +3080,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'RealFeel temperature max day 3',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -3077,6 +3135,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'RealFeel temperature max day 4',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -3131,6 +3190,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'RealFeel temperature min day 0',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -3185,6 +3245,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'RealFeel temperature min day 1',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -3239,6 +3300,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'RealFeel temperature min day 2',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -3293,6 +3355,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'RealFeel temperature min day 3',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -3347,6 +3410,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'RealFeel temperature min day 4',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -3403,6 +3467,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'RealFeel temperature shade',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -3458,6 +3523,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'RealFeel temperature shade max day 0',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -3512,6 +3578,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'RealFeel temperature shade max day 1',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -3566,6 +3633,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'RealFeel temperature shade max day 2',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -3620,6 +3688,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'RealFeel temperature shade max day 3',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -3674,6 +3743,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'RealFeel temperature shade max day 4',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -3728,6 +3798,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'RealFeel temperature shade min day 0',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -3782,6 +3853,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'RealFeel temperature shade min day 1',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -3836,6 +3908,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'RealFeel temperature shade min day 2',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -3890,6 +3963,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'RealFeel temperature shade min day 3',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -3944,6 +4018,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'RealFeel temperature shade min day 4',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -3998,6 +4073,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Solar irradiance day 0',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -4052,6 +4128,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Solar irradiance day 1',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -4106,6 +4183,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Solar irradiance day 2',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -4160,6 +4238,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Solar irradiance day 3',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -4214,6 +4293,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Solar irradiance day 4',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -4268,6 +4348,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Solar irradiance night 0',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -4322,6 +4403,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Solar irradiance night 1',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -4376,6 +4458,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Solar irradiance night 2',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -4430,6 +4513,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Solar irradiance night 3',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -4484,6 +4568,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Solar irradiance night 4',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -4540,6 +4625,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -4595,6 +4681,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Thunderstorm probability day 0',
'options': dict({
}),
'original_device_class': None,
@@ -4645,6 +4732,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Thunderstorm probability day 1',
'options': dict({
}),
'original_device_class': None,
@@ -4695,6 +4783,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Thunderstorm probability day 2',
'options': dict({
}),
'original_device_class': None,
@@ -4745,6 +4834,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Thunderstorm probability day 3',
'options': dict({
}),
'original_device_class': None,
@@ -4795,6 +4885,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Thunderstorm probability day 4',
'options': dict({
}),
'original_device_class': None,
@@ -4845,6 +4936,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Thunderstorm probability night 0',
'options': dict({
}),
'original_device_class': None,
@@ -4895,6 +4987,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Thunderstorm probability night 1',
'options': dict({
}),
'original_device_class': None,
@@ -4945,6 +5038,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Thunderstorm probability night 2',
'options': dict({
}),
'original_device_class': None,
@@ -4995,6 +5089,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Thunderstorm probability night 3',
'options': dict({
}),
'original_device_class': None,
@@ -5045,6 +5140,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Thunderstorm probability night 4',
'options': dict({
}),
'original_device_class': None,
@@ -5095,6 +5191,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Tree pollen day 0',
'options': dict({
}),
'original_device_class': None,
@@ -5146,6 +5243,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Tree pollen day 1',
'options': dict({
}),
'original_device_class': None,
@@ -5197,6 +5295,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Tree pollen day 2',
'options': dict({
}),
'original_device_class': None,
@@ -5248,6 +5347,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Tree pollen day 3',
'options': dict({
}),
'original_device_class': None,
@@ -5299,6 +5399,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Tree pollen day 4',
'options': dict({
}),
'original_device_class': None,
@@ -5352,6 +5453,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'UV index',
'options': dict({
}),
'original_device_class': None,
@@ -5404,6 +5506,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'UV index day 0',
'options': dict({
}),
'original_device_class': None,
@@ -5455,6 +5558,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'UV index day 1',
'options': dict({
}),
'original_device_class': None,
@@ -5506,6 +5610,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'UV index day 2',
'options': dict({
}),
'original_device_class': None,
@@ -5557,6 +5662,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'UV index day 3',
'options': dict({
}),
'original_device_class': None,
@@ -5608,6 +5714,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'UV index day 4',
'options': dict({
}),
'original_device_class': None,
@@ -5661,6 +5768,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wet bulb temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -5718,6 +5826,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind chill temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -5775,6 +5884,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind gust speed',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -5830,6 +5940,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind gust speed day 0',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -5885,6 +5996,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind gust speed day 1',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -5940,6 +6052,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind gust speed day 2',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -5995,6 +6108,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind gust speed day 3',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -6050,6 +6164,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind gust speed day 4',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -6105,6 +6220,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind gust speed night 0',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -6160,6 +6276,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind gust speed night 1',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -6215,6 +6332,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind gust speed night 2',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -6270,6 +6388,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind gust speed night 3',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -6325,6 +6444,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind gust speed night 4',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -6382,6 +6502,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind speed',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -6437,6 +6558,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind speed day 0',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -6492,6 +6614,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind speed day 1',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -6547,6 +6670,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind speed day 2',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -6602,6 +6726,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind speed day 3',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -6657,6 +6782,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind speed day 4',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -6712,6 +6838,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind speed night 0',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -6767,6 +6894,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind speed night 1',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -6822,6 +6950,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind speed night 2',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -6877,6 +7006,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind speed night 3',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -6932,6 +7062,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind speed night 4',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -437,6 +437,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Away mode',
'options': dict({
}),
'original_device_class': None,
@@ -68,6 +69,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Continuous fan',
'options': dict({
}),
'original_device_class': None,
@@ -116,6 +118,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Quiet mode',
'options': dict({
}),
'original_device_class': None,
@@ -164,6 +167,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Turbo mode',
'options': dict({
}),
'original_device_class': None,
@@ -22,6 +22,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Energy',
'options': dict({
'sensor': dict({
'suggested_display_precision': 3,
@@ -81,6 +82,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -137,6 +139,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Energy',
'options': dict({
'sensor': dict({
'suggested_display_precision': 3,
@@ -196,6 +199,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -252,6 +256,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Energy',
'options': dict({
'sensor': dict({
'suggested_display_precision': 3,
@@ -311,6 +316,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -367,6 +373,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Energy',
'options': dict({
'sensor': dict({
'suggested_display_precision': 3,
@@ -426,6 +433,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Average processing speed',
'options': dict({
}),
'original_device_class': None,
@@ -69,6 +70,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'DNS queries',
'options': dict({
}),
'original_device_class': None,
@@ -118,6 +120,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'DNS queries blocked',
'options': dict({
}),
'original_device_class': None,
@@ -167,6 +170,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'DNS queries blocked ratio',
'options': dict({
}),
'original_device_class': None,
@@ -216,6 +220,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Parental control blocked',
'options': dict({
}),
'original_device_class': None,
@@ -265,6 +270,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Rules count',
'options': dict({
}),
'original_device_class': None,
@@ -314,6 +320,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Safe browsing blocked',
'options': dict({
}),
'original_device_class': None,
@@ -363,6 +370,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Safe searches enforced',
'options': dict({
}),
'original_device_class': None,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Filtering',
'options': dict({
}),
'original_device_class': None,
@@ -68,6 +69,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Parental control',
'options': dict({
}),
'original_device_class': None,
@@ -116,6 +118,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Protection',
'options': dict({
}),
'original_device_class': None,
@@ -164,6 +167,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Query log',
'options': dict({
}),
'original_device_class': None,
@@ -212,6 +216,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Safe browsing',
'options': dict({
}),
'original_device_class': None,
@@ -260,6 +265,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Safe search',
'options': dict({
}),
'original_device_class': None,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Calibrate CO2 sensor',
'options': dict({
}),
'original_device_class': None,
@@ -68,6 +69,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Test LED bar',
'options': dict({
}),
'original_device_class': None,
@@ -116,6 +118,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Calibrate CO2 sensor',
'options': dict({
}),
'original_device_class': None,
@@ -25,6 +25,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Display brightness',
'options': dict({
}),
'original_device_class': None,
@@ -83,6 +84,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'LED bar brightness',
'options': dict({
}),
'original_device_class': None,
@@ -29,6 +29,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'CO2 automatic baseline duration',
'options': dict({
}),
'original_device_class': None,
@@ -90,6 +91,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Configuration source',
'options': dict({
}),
'original_device_class': None,
@@ -147,6 +149,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Display PM standard',
'options': dict({
}),
'original_device_class': None,
@@ -204,6 +207,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Display temperature unit',
'options': dict({
}),
'original_device_class': None,
@@ -262,6 +266,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'LED bar mode',
'options': dict({
}),
'original_device_class': None,
@@ -323,6 +328,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'NOx index learning offset',
'options': dict({
}),
'original_device_class': None,
@@ -386,6 +392,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'VOC index learning offset',
'options': dict({
}),
'original_device_class': None,
@@ -450,6 +457,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'CO2 automatic baseline duration',
'options': dict({
}),
'original_device_class': None,
@@ -511,6 +519,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Configuration source',
'options': dict({
}),
'original_device_class': None,
@@ -571,6 +580,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'NOx index learning offset',
'options': dict({
}),
'original_device_class': None,
@@ -634,6 +644,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'VOC index learning offset',
'options': dict({
}),
'original_device_class': None,
@@ -22,6 +22,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Carbon dioxide',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.CO2: 'carbon_dioxide'>,
@@ -73,6 +74,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Carbon dioxide automatic baseline calibration',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -126,6 +128,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Display brightness',
'options': dict({
}),
'original_device_class': None,
@@ -180,6 +183,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Display PM standard',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
@@ -238,6 +242,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Display temperature unit',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
@@ -293,6 +298,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Humidity',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.HUMIDITY: 'humidity'>,
@@ -344,6 +350,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'LED bar brightness',
'options': dict({
}),
'original_device_class': None,
@@ -399,6 +406,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'LED bar mode',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
@@ -455,6 +463,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'NOx index',
'options': dict({
}),
'original_device_class': None,
@@ -504,6 +513,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'NOx index learning offset',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -559,6 +569,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'PM0.3',
'options': dict({
}),
'original_device_class': None,
@@ -611,6 +622,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'PM1',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.PM1: 'pm1'>,
@@ -664,6 +676,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'PM10',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.PM10: 'pm10'>,
@@ -717,6 +730,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'PM2.5',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.PM25: 'pm25'>,
@@ -770,6 +784,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Raw NOx',
'options': dict({
}),
'original_device_class': None,
@@ -822,6 +837,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Raw PM2.5',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.PM25: 'pm25'>,
@@ -875,6 +891,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Raw VOC',
'options': dict({
}),
'original_device_class': None,
@@ -927,6 +944,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Signal strength',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.SIGNAL_STRENGTH: 'signal_strength'>,
@@ -980,6 +998,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -1036,6 +1055,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'VOC index',
'options': dict({
}),
'original_device_class': None,
@@ -1085,6 +1105,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'VOC index learning offset',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -1138,6 +1159,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Carbon dioxide automatic baseline calibration',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -1193,6 +1215,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'NOx index',
'options': dict({
}),
'original_device_class': None,
@@ -1242,6 +1265,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'NOx index learning offset',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -1297,6 +1321,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Raw NOx',
'options': dict({
}),
'original_device_class': None,
@@ -1349,6 +1374,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Raw VOC',
'options': dict({
}),
'original_device_class': None,
@@ -1401,6 +1427,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Signal strength',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.SIGNAL_STRENGTH: 'signal_strength'>,
@@ -1454,6 +1481,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'VOC index',
'options': dict({
}),
'original_device_class': None,
@@ -1503,6 +1531,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'VOC index learning offset',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Post data to Airgradient',
'options': dict({
}),
'original_device_class': None,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Firmware',
'options': dict({
}),
'original_device_class': <UpdateDeviceClass.FIRMWARE: 'firmware'>,
@@ -22,6 +22,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Carbon monoxide',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -78,6 +79,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Common air quality index',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -136,6 +138,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Humidity',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -193,6 +196,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Nitrogen dioxide',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -252,6 +256,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Ozone',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -311,6 +316,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'PM1',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -368,6 +374,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'PM10',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -427,6 +434,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'PM2.5',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -486,6 +494,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -543,6 +552,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Sulphur dioxide',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -602,6 +612,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Recalibrate CO2 sensor',
'options': dict({
}),
'original_device_class': None,
@@ -68,6 +69,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Restart',
'options': dict({
}),
'original_device_class': <ButtonDeviceClass.RESTART: 'restart'>,
@@ -31,6 +31,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -25,6 +25,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Hysteresis band',
'options': dict({
}),
'original_device_class': <NumberDeviceClass.TEMPERATURE: 'temperature'>,
@@ -22,6 +22,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Air temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -76,6 +77,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Device uptime',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
@@ -127,6 +129,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Error count',
'options': dict({
}),
'original_device_class': None,
@@ -178,6 +181,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Heating uptime',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -237,6 +241,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Humidity',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.HUMIDITY: 'humidity'>,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'DHCP client',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.RUNNING: 'running'>,
@@ -69,6 +70,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'DHCP server',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.RUNNING: 'running'>,
@@ -118,6 +120,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'DHCPv6 server',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.RUNNING: 'running'>,
@@ -167,6 +170,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Port forwarding',
'options': dict({
}),
'original_device_class': None,
@@ -215,6 +219,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'PPPoE link',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.CONNECTIVITY: 'connectivity'>,
@@ -22,6 +22,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Antenna gain',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.SIGNAL_STRENGTH: 'signal_strength'>,
@@ -75,6 +76,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'CPU load',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -130,6 +132,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Download capacity',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -192,6 +195,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Network role',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
@@ -247,6 +251,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Throughput receive (actual)',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -306,6 +311,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Throughput transmit (actual)',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -365,6 +371,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Upload capacity',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -422,6 +429,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Uptime',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -478,6 +486,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wireless distance',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -536,6 +545,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wireless frequency',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.FREQUENCY: 'frequency'>,
@@ -592,6 +602,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wireless mode',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
@@ -650,6 +661,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wireless role',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
@@ -703,6 +715,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wireless SSID',
'options': dict({
}),
'original_device_class': None,
@@ -37,6 +37,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -119,6 +120,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -22,6 +22,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Humidity',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.HUMIDITY: 'humidity'>,
@@ -75,6 +76,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -22,6 +22,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Atmospheric pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -81,6 +82,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Battery',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -137,6 +139,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Carbon dioxide',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -193,6 +196,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Humidity',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -249,6 +253,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'PM1',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -305,6 +310,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'PM2.5',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -361,6 +367,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Radon',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -416,6 +423,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -472,6 +480,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Volatile organic compounds parts',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -528,6 +537,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Atmospheric pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -587,6 +597,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Battery',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -643,6 +654,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Carbon dioxide',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -699,6 +711,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Humidity',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -755,6 +768,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Illuminance',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -811,6 +825,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Sound pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -867,6 +882,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -923,6 +939,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Volatile organic compounds parts',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -979,6 +996,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Atmospheric pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -1038,6 +1056,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Battery',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -1094,6 +1113,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Carbon dioxide',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -1150,6 +1170,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Humidity',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -1206,6 +1227,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Radon',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -1261,6 +1283,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -1317,6 +1340,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Volatile organic compounds parts',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Damper',
'options': dict({
}),
'original_device_class': <CoverDeviceClass.DAMPER: 'damper'>,
@@ -71,6 +72,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Damper',
'options': dict({
}),
'original_device_class': <CoverDeviceClass.DAMPER: 'damper'>,
@@ -22,6 +22,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Humidity',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.HUMIDITY: 'humidity'>,
@@ -75,6 +76,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -131,6 +133,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -187,6 +190,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'RSSI',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.SIGNAL_STRENGTH: 'signal_strength'>,
@@ -240,6 +244,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -296,6 +301,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Battery',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.BATTERY: 'battery'>,
@@ -349,6 +355,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Humidity',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.HUMIDITY: 'humidity'>,
@@ -402,6 +409,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Signal strength',
'options': dict({
}),
'original_device_class': None,
@@ -454,6 +462,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -510,6 +519,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -566,6 +576,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Battery',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.BATTERY: 'battery'>,
@@ -619,6 +630,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Humidity',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.HUMIDITY: 'humidity'>,
@@ -672,6 +684,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Signal strength',
'options': dict({
}),
'original_device_class': None,
@@ -724,6 +737,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -780,6 +794,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Battery',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.BATTERY: 'battery'>,
@@ -833,6 +848,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Humidity',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.HUMIDITY: 'humidity'>,
@@ -886,6 +902,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Signal strength',
'options': dict({
}),
'original_device_class': None,
@@ -938,6 +955,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -994,6 +1012,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Battery',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.BATTERY: 'battery'>,
@@ -1047,6 +1066,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Humidity',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.HUMIDITY: 'humidity'>,
@@ -1100,6 +1120,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Signal strength',
'options': dict({
}),
'original_device_class': None,
@@ -1152,6 +1173,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -1208,6 +1230,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Humidity',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.HUMIDITY: 'humidity'>,
@@ -1261,6 +1284,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Connectivity',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.CONNECTIVITY: 'connectivity'>,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Announce',
'options': dict({
}),
'original_device_class': None,
@@ -69,6 +70,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Speak',
'options': dict({
}),
'original_device_class': None,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Next alarm',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
@@ -69,6 +70,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Next reminder',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
@@ -118,6 +120,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Next timer',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
@@ -169,6 +172,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Do not disturb',
'options': dict({
}),
'original_device_class': None,
@@ -22,6 +22,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Average noise',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -78,6 +79,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'BME280 humidity',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -134,6 +136,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'BME280 pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -193,6 +196,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'BME280 temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -249,6 +253,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Maximum noise',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -305,6 +310,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'PM10',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -361,6 +367,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'PM2.5',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -417,6 +424,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Radiation level',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -472,6 +480,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Signal strength',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -22,6 +22,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Absolute pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -83,6 +84,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Daily rain',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -144,6 +146,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Dew point',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -202,6 +205,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Feels like',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -260,6 +264,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Hourly rain',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -321,6 +326,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Humidity',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -379,6 +385,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Irradiance',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -435,6 +442,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Last rain',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
@@ -488,6 +496,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Max daily gust',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -549,6 +558,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Monthly rain',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -610,6 +620,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Relative pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -671,6 +682,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -729,6 +741,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'UV index',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -786,6 +799,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Weekly rain',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -847,6 +861,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind direction',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -905,6 +920,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind gust',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -966,6 +982,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind speed',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -1027,6 +1044,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Absolute pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -1088,6 +1106,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Daily rain',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -1149,6 +1168,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Dew point',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -1207,6 +1227,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Feels like',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -1265,6 +1286,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Hourly rain',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -1326,6 +1348,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Humidity',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -1384,6 +1407,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Irradiance',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -1440,6 +1464,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Last rain',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
@@ -1493,6 +1518,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Max daily gust',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -1554,6 +1580,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Monthly rain',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -1615,6 +1642,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Relative pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -1676,6 +1704,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -1734,6 +1763,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'UV index',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -1791,6 +1821,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Weekly rain',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -1852,6 +1883,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind direction',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -1910,6 +1942,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind gust',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -1971,6 +2004,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind speed',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -2032,6 +2066,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Absolute pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -2092,6 +2127,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Daily rain',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -2152,6 +2188,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Dew point',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -2209,6 +2246,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Feels like',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -2266,6 +2304,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Hourly rain',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -2326,6 +2365,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Humidity',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -2383,6 +2423,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Irradiance',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -2440,6 +2481,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Max daily gust',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -2500,6 +2542,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Monthly rain',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -2560,6 +2603,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Relative pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -2620,6 +2664,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -2677,6 +2722,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'UV index',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -2733,6 +2779,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Weekly rain',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -2793,6 +2840,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind direction',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -2850,6 +2898,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind gust',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -2910,6 +2959,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wind speed',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -1201,6 +1201,7 @@ async def test_devices_payload_with_entities(
entity_category=EntityCategory.CONFIG,
has_entity_name=True,
original_device_class=NumberDeviceClass.TEMPERATURE,
suggested_object_id="hue_1",
)
hass.states.async_set("number.hue_1", "2")
# Entity with assumed state
@@ -1210,6 +1211,7 @@ async def test_devices_payload_with_entities(
unique_id="2",
device_id=device_entry.id,
has_entity_name=True,
suggested_object_id="hue_2",
)
hass.states.async_set("light.hue_2", "on", {ATTR_ASSUMED_STATE: True})
# Entity from a different integration
@@ -22,6 +22,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'core_samba',
'options': dict({
}),
'original_device_class': None,
@@ -74,6 +75,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'hacs (custom)',
'options': dict({
}),
'original_device_class': None,
@@ -126,6 +128,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'myq',
'options': dict({
}),
'original_device_class': None,
@@ -178,6 +181,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'spotify',
'options': dict({
}),
'original_device_class': None,
@@ -230,6 +234,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Total active installations',
'options': dict({
}),
'original_device_class': None,
@@ -282,6 +287,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Total reported integrations',
'options': dict({
}),
'original_device_class': None,
@@ -334,6 +340,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'YouTube',
'options': dict({
}),
'original_device_class': None,
@@ -22,6 +22,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Latest reading',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -76,6 +77,7 @@
'labels': set({
}),
'name': None,
'object_id_base': "Yesterday's sewerage cost",
'options': dict({
}),
'original_device_class': <SensorDeviceClass.MONETARY: 'monetary'>,
@@ -128,6 +130,7 @@
'labels': set({
}),
'name': None,
'object_id_base': "Yesterday's usage",
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -182,6 +185,7 @@
'labels': set({
}),
'name': None,
'object_id_base': "Yesterday's water cost",
'options': dict({
}),
'original_device_class': <SensorDeviceClass.MONETARY: 'monetary'>,
@@ -27,6 +27,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'hot_water_plus_level',
'options': dict({
}),
'original_device_class': None,
@@ -22,6 +22,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Energy usage',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -76,6 +77,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Hot water availability',
'options': dict({
}),
'original_device_class': None,
@@ -23,6 +23,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -87,6 +88,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Online status',
'options': dict({
}),
'original_device_class': None,
@@ -260,6 +260,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Alarm delay',
'options': dict({
}),
'original_device_class': None,
@@ -311,6 +312,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Battery',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.BATTERY: 'battery'>,
@@ -362,6 +364,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Battery nominal voltage',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -415,6 +418,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Battery replaced',
'options': dict({
}),
'original_device_class': None,
@@ -463,6 +467,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Battery shutdown',
'options': dict({
}),
'original_device_class': None,
@@ -512,6 +517,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Battery timeout',
'options': dict({
}),
'original_device_class': None,
@@ -563,6 +569,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Battery voltage',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -617,6 +624,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Cable type',
'options': dict({
}),
'original_device_class': None,
@@ -665,6 +673,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Daemon version',
'options': dict({
}),
'original_device_class': None,
@@ -713,6 +722,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Date and time',
'options': dict({
}),
'original_device_class': None,
@@ -761,6 +771,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Driver',
'options': dict({
}),
'original_device_class': None,
@@ -809,6 +820,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Firmware version',
'options': dict({
}),
'original_device_class': None,
@@ -859,6 +871,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Input voltage',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -915,6 +928,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Internal temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -969,6 +983,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Last self-test',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
@@ -1018,6 +1033,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Last transfer',
'options': dict({
}),
'original_device_class': None,
@@ -1068,6 +1084,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Load',
'options': dict({
}),
'original_device_class': None,
@@ -1118,6 +1135,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Master update',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
@@ -1167,6 +1185,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Mode',
'options': dict({
}),
'original_device_class': None,
@@ -1215,6 +1234,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Model',
'options': dict({
}),
'original_device_class': None,
@@ -1263,6 +1283,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Model',
'options': dict({
}),
'original_device_class': None,
@@ -1311,6 +1332,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Name',
'options': dict({
}),
'original_device_class': None,
@@ -1359,6 +1381,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Nominal apparent power',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -1412,6 +1435,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Nominal input voltage',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -1465,6 +1489,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Nominal output power',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -1520,6 +1545,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Output current',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -1574,6 +1600,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Self-test interval',
'options': dict({
}),
'original_device_class': None,
@@ -1623,6 +1650,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Self-test result',
'options': dict({
}),
'original_device_class': None,
@@ -1671,6 +1699,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Sensitivity',
'options': dict({
}),
'original_device_class': None,
@@ -1719,6 +1748,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Serial number',
'options': dict({
}),
'original_device_class': None,
@@ -1767,6 +1797,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Shutdown time',
'options': dict({
}),
'original_device_class': None,
@@ -1816,6 +1847,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Startup time',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
@@ -1865,6 +1897,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Status',
'options': dict({
}),
'original_device_class': None,
@@ -1913,6 +1946,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Status data',
'options': dict({
}),
'original_device_class': None,
@@ -1961,6 +1995,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Status date',
'options': dict({
}),
'original_device_class': None,
@@ -2009,6 +2044,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Status flag',
'options': dict({
}),
'original_device_class': None,
@@ -2059,6 +2095,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Time left',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -2115,6 +2152,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Time on battery',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -2171,6 +2209,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Total time on battery',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -2227,6 +2266,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Transfer count',
'options': dict({
}),
'original_device_class': None,
@@ -2276,6 +2316,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Transfer from battery',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
@@ -2325,6 +2366,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Transfer high',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -2378,6 +2420,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Transfer low',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -2431,6 +2474,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Transfer to battery',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'DC 1 short circuit error status',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -69,6 +70,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'DC 2 short circuit error status',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -118,6 +120,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Off-grid status',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -167,6 +170,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Output fault status',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -25,6 +25,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Max output',
'options': dict({
}),
'original_device_class': <NumberDeviceClass.POWER: 'power'>,
@@ -22,6 +22,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Lifetime production of P1',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -78,6 +79,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Lifetime production of P2',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -134,6 +136,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Power of P1',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -190,6 +193,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Power of P2',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -246,6 +250,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Production of today',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -302,6 +307,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Production of today from P1',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -358,6 +364,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Production of today from P2',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -414,6 +421,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Total lifetime production',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -470,6 +478,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Total power',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Inverter status',
'options': dict({
}),
'original_device_class': <SwitchDeviceClass.SWITCH: 'switch'>,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Battery',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.BATTERY: 'battery'>,
@@ -70,6 +71,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Last update',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
@@ -121,6 +123,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Salt left side percentage',
'options': dict({
}),
'original_device_class': None,
@@ -171,6 +174,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Salt left side time remaining',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -226,6 +230,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Salt right side percentage',
'options': dict({
}),
'original_device_class': None,
@@ -276,6 +281,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Salt right side time remaining',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -335,6 +341,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Wi-Fi strength',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
@@ -22,6 +22,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Air quality index',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.AQI: 'aqi'>,
@@ -59,6 +60,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Carbon dioxide',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.CO2: 'carbon_dioxide'>,
@@ -96,6 +98,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Humidity',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.HUMIDITY: 'humidity'>,
@@ -133,6 +136,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'PM10',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.PM10: 'pm10'>,
@@ -170,6 +174,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'PM2.5',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.PM25: 'pm25'>,
@@ -207,6 +212,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -247,6 +253,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Total volatile organic compounds',
'options': dict({
}),
'original_device_class': None,
@@ -22,6 +22,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Charged month',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -78,6 +79,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Charged today',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -134,6 +136,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Charged total',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -190,6 +193,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Discharged month',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -246,6 +250,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Discharged today',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -302,6 +307,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Discharged total',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -358,6 +364,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Flow now',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -414,6 +421,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'State of charge',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.BATTERY: 'battery'>,
@@ -467,6 +475,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Energy AC output total',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -523,6 +532,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Power AC output',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -579,6 +589,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Energy AC output total',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -635,6 +646,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Power AC output',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -691,6 +703,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Energy production month',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -747,6 +760,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Energy production today',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -803,6 +817,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Energy production total',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -859,6 +874,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Power production',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -22,6 +22,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Carbon dioxide',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.CO2: 'carbon_dioxide'>,
@@ -77,6 +78,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Humidity',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.HUMIDITY: 'humidity'>,
@@ -132,6 +134,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'PM10',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.PM10: 'pm10'>,
@@ -187,6 +190,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'PM2.5',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.PM25: 'pm25'>,
@@ -242,6 +246,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Score',
'options': dict({
}),
'original_device_class': None,
@@ -295,6 +300,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -353,6 +359,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Volatile organic compounds parts',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS_PARTS: 'volatile_organic_compounds_parts'>,
@@ -408,6 +415,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Carbon dioxide',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.CO2: 'carbon_dioxide'>,
@@ -463,6 +471,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Humidity',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.HUMIDITY: 'humidity'>,
@@ -518,6 +527,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'PM2.5',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.PM25: 'pm25'>,
@@ -573,6 +583,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Score',
'options': dict({
}),
'original_device_class': None,
@@ -626,6 +637,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -684,6 +696,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Volatile organic compounds parts',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS_PARTS: 'volatile_organic_compounds_parts'>,
@@ -739,6 +752,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Carbon dioxide',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.CO2: 'carbon_dioxide'>,
@@ -794,6 +808,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Humidity',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.HUMIDITY: 'humidity'>,
@@ -849,6 +864,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Score',
'options': dict({
}),
'original_device_class': None,
@@ -902,6 +918,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -960,6 +977,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Volatile organic compounds parts',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS_PARTS: 'volatile_organic_compounds_parts'>,
@@ -1015,6 +1033,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Humidity',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.HUMIDITY: 'humidity'>,
@@ -1070,6 +1089,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Illuminance',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ILLUMINANCE: 'illuminance'>,
@@ -1124,6 +1144,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'PM2.5',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.PM25: 'pm25'>,
@@ -1179,6 +1200,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Score',
'options': dict({
}),
'original_device_class': None,
@@ -1232,6 +1254,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -1290,6 +1313,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Volatile organic compounds parts',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS_PARTS: 'volatile_organic_compounds_parts'>,
@@ -1345,6 +1369,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Carbon dioxide',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.CO2: 'carbon_dioxide'>,
@@ -1400,6 +1425,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Humidity',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.HUMIDITY: 'humidity'>,
@@ -1455,6 +1481,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Illuminance',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ILLUMINANCE: 'illuminance'>,
@@ -1509,6 +1536,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'PM2.5',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.PM25: 'pm25'>,
@@ -1564,6 +1592,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Score',
'options': dict({
}),
'original_device_class': None,
@@ -1617,6 +1646,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Sound level',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.SOUND_PRESSURE: 'sound_pressure'>,
@@ -1671,6 +1701,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -1729,6 +1760,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Volatile organic compounds parts',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS_PARTS: 'volatile_organic_compounds_parts'>,
@@ -1784,6 +1816,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Absolute humidity',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -1841,6 +1874,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Carbon dioxide',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.CO2: 'carbon_dioxide'>,
@@ -1895,6 +1929,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Dew point',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -1952,6 +1987,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Humidity',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.HUMIDITY: 'humidity'>,
@@ -2006,6 +2042,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'PM2.5',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.PM25: 'pm25'>,
@@ -2060,6 +2097,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Score',
'options': dict({
}),
'original_device_class': None,
@@ -2113,6 +2151,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -2170,6 +2209,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Volatile organic compounds parts',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS_PARTS: 'volatile_organic_compounds_parts'>,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'DayNight 1',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.LIGHT: 'light'>,
@@ -69,6 +70,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Object Analytics Device1Scenario8',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.MOTION: 'motion'>,
@@ -118,6 +120,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Sound 1',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.SOUND: 'sound'>,
@@ -167,6 +170,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'PIR sensor',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.CONNECTIVITY: 'connectivity'>,
@@ -216,6 +220,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'PIR 0',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.MOTION: 'motion'>,
@@ -265,6 +270,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Fence Guard Profile 1',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.MOTION: 'motion'>,
@@ -314,6 +320,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Motion Guard Profile 1',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.MOTION: 'motion'>,
@@ -363,6 +370,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Loitering Guard Profile 1',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.MOTION: 'motion'>,
@@ -412,6 +420,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'VMD4 Profile 1',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.MOTION: 'motion'>,
@@ -461,6 +470,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Object Analytics Scenario 1',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.MOTION: 'motion'>,
@@ -510,6 +520,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'VMD4 Camera1Profile9',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.MOTION: 'motion'>,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -71,6 +72,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -24,6 +24,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'IR Light 0',
'options': dict({
}),
'original_device_class': None,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Doorbell',
'options': dict({
}),
'original_device_class': <SwitchDeviceClass.OUTLET: 'outlet'>,
@@ -69,6 +70,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Relay 1',
'options': dict({
}),
'original_device_class': <SwitchDeviceClass.OUTLET: 'outlet'>,
@@ -118,6 +120,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Doorbell',
'options': dict({
}),
'original_device_class': <SwitchDeviceClass.OUTLET: 'outlet'>,
@@ -167,6 +170,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Relay 1',
'options': dict({
}),
'original_device_class': <SwitchDeviceClass.OUTLET: 'outlet'>,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'CI latest build',
'options': dict({
}),
'original_device_class': None,
@@ -80,6 +81,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'CI latest build finish time',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
@@ -129,6 +131,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'CI latest build ID',
'options': dict({
}),
'original_device_class': None,
@@ -177,6 +180,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'CI latest build queue time',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
@@ -226,6 +230,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'CI latest build reason',
'options': dict({
}),
'original_device_class': None,
@@ -274,6 +279,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'CI latest build result',
'options': dict({
}),
'original_device_class': None,
@@ -322,6 +328,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'CI latest build source branch',
'options': dict({
}),
'original_device_class': None,
@@ -370,6 +377,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'CI latest build source version',
'options': dict({
}),
'original_device_class': None,
@@ -418,6 +426,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'CI latest build start time',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
@@ -467,6 +476,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'CI latest build URL',
'options': dict({
}),
'original_device_class': None,
@@ -26,6 +26,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Automatic backup',
'options': dict({
}),
'original_device_class': None,
@@ -28,6 +28,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Backup Manager state',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
@@ -84,6 +85,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Last attempted automatic backup',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
@@ -133,6 +135,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Last successful automatic backup',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
@@ -182,6 +185,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Next scheduled automatic backup',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Circulation pump',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.RUNNING: 'running'>,
@@ -69,6 +70,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Filter cycle 1',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.RUNNING: 'running'>,
@@ -118,6 +120,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Filter cycle 2',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.RUNNING: 'running'>,
@@ -31,6 +31,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -41,6 +41,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Fault',
'options': dict({
}),
'original_device_class': None,
@@ -22,6 +22,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Pump 1',
'options': dict({
}),
'original_device_class': None,
@@ -24,6 +24,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Light',
'options': dict({
}),
'original_device_class': None,
@@ -25,6 +25,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature range',
'options': dict({
}),
'original_device_class': None,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Filter cycle 2 enabled',
'options': dict({
}),
'original_device_class': None,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Filter cycle 1 end',
'options': dict({
}),
'original_device_class': None,
@@ -68,6 +69,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Filter cycle 1 start',
'options': dict({
}),
'original_device_class': None,
@@ -116,6 +118,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Filter cycle 2 end',
'options': dict({
}),
'original_device_class': None,
@@ -164,6 +167,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Filter cycle 2 start',
'options': dict({
}),
'original_device_class': None,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Reboot',
'options': dict({
}),
'original_device_class': <ButtonDeviceClass.RESTART: 'restart'>,
@@ -69,6 +70,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Reset',
'options': dict({
}),
'original_device_class': <ButtonDeviceClass.RESTART: 'restart'>,
@@ -118,6 +120,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Stop charge session',
'options': dict({
}),
'original_device_class': None,
@@ -22,6 +22,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Battery',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.BATTERY: 'battery'>,
@@ -75,6 +76,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Dew point',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -131,6 +133,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Humidity',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.HUMIDITY: 'humidity'>,
@@ -184,6 +187,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Signal strength',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.SIGNAL_STRENGTH: 'signal_strength'>,
@@ -237,6 +241,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Charging status',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.BATTERY_CHARGING: 'battery_charging'>,
@@ -69,6 +70,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Check control messages',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -118,6 +120,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Condition-based services',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -173,6 +176,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Connection status',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PLUG: 'plug'>,
@@ -222,6 +226,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Door lock state',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.LOCK: 'lock'>,
@@ -272,6 +277,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Lids',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.OPENING: 'opening'>,
@@ -328,6 +334,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Pre-entry climatization',
'options': dict({
}),
'original_device_class': None,
@@ -376,6 +383,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Windows',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.OPENING: 'opening'>,
@@ -427,6 +435,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Charging status',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.BATTERY_CHARGING: 'battery_charging'>,
@@ -476,6 +485,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Check control messages',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -526,6 +536,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Condition-based services',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -586,6 +597,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Connection status',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PLUG: 'plug'>,
@@ -635,6 +647,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Door lock state',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.LOCK: 'lock'>,
@@ -685,6 +698,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Lids',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.OPENING: 'opening'>,
@@ -740,6 +754,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Pre-entry climatization',
'options': dict({
}),
'original_device_class': None,
@@ -788,6 +803,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Windows',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.OPENING: 'opening'>,
@@ -842,6 +858,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Charging status',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.BATTERY_CHARGING: 'battery_charging'>,
@@ -891,6 +908,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Check control messages',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -941,6 +959,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Condition-based services',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -1001,6 +1020,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Connection status',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PLUG: 'plug'>,
@@ -1050,6 +1070,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Door lock state',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.LOCK: 'lock'>,
@@ -1100,6 +1121,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Lids',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.OPENING: 'opening'>,
@@ -1156,6 +1178,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Pre-entry climatization',
'options': dict({
}),
'original_device_class': None,
@@ -1204,6 +1227,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Windows',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.OPENING: 'opening'>,
@@ -1258,6 +1282,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Check control messages',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -1309,6 +1334,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Condition-based services',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -1372,6 +1398,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Door lock state',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.LOCK: 'lock'>,
@@ -1422,6 +1449,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Lids',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.OPENING: 'opening'>,
@@ -1477,6 +1505,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Windows',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.OPENING: 'opening'>,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Activate air conditioning',
'options': dict({
}),
'original_device_class': None,
@@ -68,6 +69,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Find vehicle',
'options': dict({
}),
'original_device_class': None,
@@ -116,6 +118,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Flash lights',
'options': dict({
}),
'original_device_class': None,
@@ -164,6 +167,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Sound horn',
'options': dict({
}),
'original_device_class': None,
@@ -212,6 +216,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Activate air conditioning',
'options': dict({
}),
'original_device_class': None,
@@ -260,6 +265,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Deactivate air conditioning',
'options': dict({
}),
'original_device_class': None,
@@ -308,6 +314,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Find vehicle',
'options': dict({
}),
'original_device_class': None,
@@ -356,6 +363,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Flash lights',
'options': dict({
}),
'original_device_class': None,
@@ -404,6 +412,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Sound horn',
'options': dict({
}),
'original_device_class': None,
@@ -452,6 +461,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Activate air conditioning',
'options': dict({
}),
'original_device_class': None,
@@ -500,6 +510,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Deactivate air conditioning',
'options': dict({
}),
'original_device_class': None,
@@ -548,6 +559,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Find vehicle',
'options': dict({
}),
'original_device_class': None,
@@ -596,6 +608,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Flash lights',
'options': dict({
}),
'original_device_class': None,
@@ -644,6 +657,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Sound horn',
'options': dict({
}),
'original_device_class': None,
@@ -692,6 +706,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Activate air conditioning',
'options': dict({
}),
'original_device_class': None,
@@ -740,6 +755,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Deactivate air conditioning',
'options': dict({
}),
'original_device_class': None,
@@ -788,6 +804,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Find vehicle',
'options': dict({
}),
'original_device_class': None,
@@ -836,6 +853,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Flash lights',
'options': dict({
}),
'original_device_class': None,
@@ -884,6 +902,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Sound horn',
'options': dict({
}),
'original_device_class': None,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Lock',
'options': dict({
}),
'original_device_class': None,
@@ -70,6 +71,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Lock',
'options': dict({
}),
'original_device_class': None,
@@ -120,6 +122,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Lock',
'options': dict({
}),
'original_device_class': None,
@@ -170,6 +173,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Lock',
'options': dict({
}),
'original_device_class': None,
@@ -25,6 +25,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Target SoC',
'options': dict({
}),
'original_device_class': <NumberDeviceClass.BATTERY: 'battery'>,
@@ -83,6 +84,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Target SoC',
'options': dict({
}),
'original_device_class': <NumberDeviceClass.BATTERY: 'battery'>,
@@ -26,6 +26,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Charging mode',
'options': dict({
}),
'original_device_class': None,
@@ -95,6 +96,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'AC charging limit',
'options': dict({
}),
'original_device_class': None,
@@ -165,6 +167,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Charging mode',
'options': dict({
}),
'original_device_class': None,
@@ -234,6 +237,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'AC charging limit',
'options': dict({
}),
'original_device_class': None,
@@ -304,6 +308,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Charging mode',
'options': dict({
}),
'original_device_class': None,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'AC current limit',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -73,6 +74,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Charging end time',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
@@ -122,6 +124,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Charging start time',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
@@ -186,6 +189,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Charging status',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
@@ -249,6 +253,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Charging target',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -303,6 +308,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Mileage',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -359,6 +365,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Remaining battery percent',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -415,6 +422,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Remaining fuel',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -471,6 +479,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Remaining fuel percent',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -526,6 +535,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Remaining range electric',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -582,6 +592,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Remaining range fuel',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -638,6 +649,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Remaining range total',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -692,6 +704,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'AC current limit',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -745,6 +758,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Charging end time',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
@@ -794,6 +808,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Charging start time',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
@@ -858,6 +873,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Charging status',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
@@ -921,6 +937,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Charging target',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -981,6 +998,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Climate status',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
@@ -1039,6 +1057,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Front left target pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -1098,6 +1117,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Front left tire pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -1157,6 +1177,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Front right target pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -1216,6 +1237,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Front right tire pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -1275,6 +1297,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Mileage',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -1331,6 +1354,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Rear left target pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -1390,6 +1414,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Rear left tire pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -1449,6 +1474,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Rear right target pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -1508,6 +1534,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Rear right tire pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -1567,6 +1594,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Remaining battery percent',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -1623,6 +1651,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Remaining range electric',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -1679,6 +1708,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Remaining range total',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -1733,6 +1763,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'AC current limit',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -1786,6 +1817,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Charging end time',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
@@ -1835,6 +1867,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Charging start time',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
@@ -1899,6 +1932,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Charging status',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
@@ -1962,6 +1996,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Charging target',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -2022,6 +2057,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Climate status',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
@@ -2080,6 +2116,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Front left target pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -2139,6 +2176,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Front left tire pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -2198,6 +2236,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Front right target pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -2257,6 +2296,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Front right tire pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -2316,6 +2356,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Mileage',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -2372,6 +2413,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Rear left target pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -2431,6 +2473,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Rear left tire pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -2490,6 +2533,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Rear right target pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -2549,6 +2593,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Rear right tire pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -2608,6 +2653,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Remaining battery percent',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -2664,6 +2710,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Remaining range electric',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -2720,6 +2767,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Remaining range total',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -2782,6 +2830,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Climate status',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
@@ -2840,6 +2889,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Front left target pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -2899,6 +2949,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Front left tire pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -2958,6 +3009,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Front right target pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -3017,6 +3069,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Front right tire pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -3076,6 +3129,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Mileage',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -3132,6 +3186,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Rear left target pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -3191,6 +3246,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Rear left tire pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -3250,6 +3306,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Rear right target pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -3309,6 +3366,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Rear right tire pressure',
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
@@ -3368,6 +3426,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Remaining fuel',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -3424,6 +3483,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Remaining fuel percent',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -3479,6 +3539,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Remaining range fuel',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -3535,6 +3596,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Remaining range total',
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Climate',
'options': dict({
}),
'original_device_class': None,
@@ -68,6 +69,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Charging',
'options': dict({
}),
'original_device_class': None,
@@ -116,6 +118,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Climate',
'options': dict({
}),
'original_device_class': None,
@@ -164,6 +167,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Climate',
'options': dict({
}),
'original_device_class': None,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -72,6 +73,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -124,6 +126,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Area ready to arm away',
'options': dict({
}),
'original_device_class': None,
@@ -68,6 +69,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Area ready to arm home',
'options': dict({
}),
'original_device_class': None,
@@ -116,6 +118,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -164,6 +167,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'AC failure',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -213,6 +217,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Battery',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.BATTERY: 'battery'>,
@@ -262,6 +267,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Battery missing',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -311,6 +317,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'CRC failure in panel configuration',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -360,6 +367,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Failure to call RPS since last RPS connection',
'options': dict({
}),
'original_device_class': None,
@@ -408,6 +416,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Log overflow',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -457,6 +466,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Log threshold reached',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -506,6 +516,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Phone line failure',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.CONNECTIVITY: 'connectivity'>,
@@ -555,6 +566,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Point bus failure since last RPS connection',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -604,6 +616,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Problem',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -653,6 +666,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'SDI failure since last RPS connection',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -702,6 +716,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'User code tamper since last RPS connection',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -751,6 +766,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -799,6 +815,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -847,6 +864,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -895,6 +913,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -943,6 +962,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -991,6 +1011,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -1039,6 +1060,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Area ready to arm away',
'options': dict({
}),
'original_device_class': None,
@@ -1087,6 +1109,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Area ready to arm home',
'options': dict({
}),
'original_device_class': None,
@@ -1135,6 +1158,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -1183,6 +1207,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'AC failure',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -1232,6 +1257,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Battery',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.BATTERY: 'battery'>,
@@ -1281,6 +1307,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Battery missing',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -1330,6 +1357,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'CRC failure in panel configuration',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -1379,6 +1407,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Failure to call RPS since last RPS connection',
'options': dict({
}),
'original_device_class': None,
@@ -1427,6 +1456,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Log overflow',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -1476,6 +1506,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Log threshold reached',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -1525,6 +1556,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Phone line failure',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.CONNECTIVITY: 'connectivity'>,
@@ -1574,6 +1606,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Point bus failure since last RPS connection',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -1623,6 +1656,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Problem',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -1672,6 +1706,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'SDI failure since last RPS connection',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -1721,6 +1756,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'User code tamper since last RPS connection',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -1770,6 +1806,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -1818,6 +1855,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -1866,6 +1904,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -1914,6 +1953,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -1962,6 +2002,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -2010,6 +2051,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -2058,6 +2100,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Area ready to arm away',
'options': dict({
}),
'original_device_class': None,
@@ -2106,6 +2149,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Area ready to arm home',
'options': dict({
}),
'original_device_class': None,
@@ -2154,6 +2198,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -2202,6 +2247,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'AC failure',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -2251,6 +2297,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Battery',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.BATTERY: 'battery'>,
@@ -2300,6 +2347,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Battery missing',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -2349,6 +2397,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'CRC failure in panel configuration',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -2398,6 +2447,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Failure to call RPS since last RPS connection',
'options': dict({
}),
'original_device_class': None,
@@ -2446,6 +2496,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Log overflow',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -2495,6 +2546,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Log threshold reached',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -2544,6 +2596,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Phone line failure',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.CONNECTIVITY: 'connectivity'>,
@@ -2593,6 +2646,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Point bus failure since last RPS connection',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -2642,6 +2696,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Problem',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -2691,6 +2746,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'SDI failure since last RPS connection',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -2740,6 +2796,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'User code tamper since last RPS connection',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
@@ -2789,6 +2846,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -2837,6 +2895,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -2885,6 +2944,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -2933,6 +2993,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -2981,6 +3042,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -3029,6 +3091,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Burglary alarm issues',
'options': dict({
}),
'original_device_class': None,
@@ -68,6 +69,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Faulting points',
'options': dict({
}),
'original_device_class': None,
@@ -117,6 +119,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Fire alarm issues',
'options': dict({
}),
'original_device_class': None,
@@ -165,6 +168,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Gas alarm issues',
'options': dict({
}),
'original_device_class': None,
@@ -213,6 +217,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Burglary alarm issues',
'options': dict({
}),
'original_device_class': None,
@@ -261,6 +266,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Faulting points',
'options': dict({
}),
'original_device_class': None,
@@ -310,6 +316,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Fire alarm issues',
'options': dict({
}),
'original_device_class': None,
@@ -358,6 +365,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Gas alarm issues',
'options': dict({
}),
'original_device_class': None,
@@ -406,6 +414,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Burglary alarm issues',
'options': dict({
}),
'original_device_class': None,
@@ -454,6 +463,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Faulting points',
'options': dict({
}),
'original_device_class': None,
@@ -503,6 +513,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Fire alarm issues',
'options': dict({
}),
'original_device_class': None,
@@ -551,6 +562,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Gas alarm issues',
'options': dict({
}),
'original_device_class': None,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Locked',
'options': dict({
}),
'original_device_class': None,
@@ -68,6 +69,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Momentarily unlocked',
'options': dict({
}),
'original_device_class': None,
@@ -116,6 +118,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Secured',
'options': dict({
}),
'original_device_class': None,
@@ -164,6 +167,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -212,6 +216,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Locked',
'options': dict({
}),
'original_device_class': None,
@@ -260,6 +265,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Momentarily unlocked',
'options': dict({
}),
'original_device_class': None,
@@ -308,6 +314,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Secured',
'options': dict({
}),
'original_device_class': None,
@@ -356,6 +363,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -404,6 +412,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Locked',
'options': dict({
}),
'original_device_class': None,
@@ -452,6 +461,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Momentarily unlocked',
'options': dict({
}),
'original_device_class': None,
@@ -500,6 +510,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Secured',
'options': dict({
}),
'original_device_class': None,
@@ -548,6 +559,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -26,6 +26,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Activities',
'options': dict({
}),
'original_device_class': None,
@@ -111,6 +112,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Activities',
'options': dict({
}),
'original_device_class': None,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Discount only',
'options': dict({
}),
'original_device_class': None,
@@ -75,6 +76,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'List access',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
@@ -129,6 +131,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'On occasion',
'options': dict({
}),
'original_device_class': None,
@@ -201,6 +204,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Region & language',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
@@ -272,6 +276,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Urgent',
'options': dict({
}),
'original_device_class': None,
@@ -321,6 +326,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Discount only',
'options': dict({
}),
'original_device_class': None,
@@ -376,6 +382,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'List access',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
@@ -430,6 +437,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'On occasion',
'options': dict({
}),
'original_device_class': None,
@@ -502,6 +510,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Region & language',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
@@ -573,6 +582,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Urgent',
'options': dict({
}),
'original_device_class': None,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -69,6 +70,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -22,6 +22,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'B/W pages',
'options': dict({
}),
'original_device_class': None,
@@ -74,6 +75,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Belt unit remaining lifetime',
'options': dict({
}),
'original_device_class': None,
@@ -126,6 +128,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Black drum page counter',
'options': dict({
}),
'original_device_class': None,
@@ -178,6 +181,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Black drum remaining lifetime',
'options': dict({
}),
'original_device_class': None,
@@ -230,6 +234,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Black drum remaining pages',
'options': dict({
}),
'original_device_class': None,
@@ -282,6 +287,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Black toner remaining',
'options': dict({
}),
'original_device_class': None,
@@ -334,6 +340,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Color pages',
'options': dict({
}),
'original_device_class': None,
@@ -386,6 +393,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Cyan drum page counter',
'options': dict({
}),
'original_device_class': None,
@@ -438,6 +446,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Cyan drum remaining lifetime',
'options': dict({
}),
'original_device_class': None,
@@ -490,6 +499,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Cyan drum remaining pages',
'options': dict({
}),
'original_device_class': None,
@@ -542,6 +552,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Cyan toner remaining',
'options': dict({
}),
'original_device_class': None,
@@ -594,6 +605,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Drum page counter',
'options': dict({
}),
'original_device_class': None,
@@ -646,6 +658,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Drum remaining lifetime',
'options': dict({
}),
'original_device_class': None,
@@ -698,6 +711,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Drum remaining pages',
'options': dict({
}),
'original_device_class': None,
@@ -750,6 +764,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Duplex unit page counter',
'options': dict({
}),
'original_device_class': None,
@@ -802,6 +817,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Fuser remaining lifetime',
'options': dict({
}),
'original_device_class': None,
@@ -852,6 +868,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Last restart',
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
@@ -903,6 +920,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Magenta drum page counter',
'options': dict({
}),
'original_device_class': None,
@@ -955,6 +973,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Magenta drum remaining lifetime',
'options': dict({
}),
'original_device_class': None,
@@ -1007,6 +1026,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Magenta drum remaining pages',
'options': dict({
}),
'original_device_class': None,
@@ -1059,6 +1079,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Magenta toner remaining',
'options': dict({
}),
'original_device_class': None,
@@ -1111,6 +1132,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Page counter',
'options': dict({
}),
'original_device_class': None,
@@ -1163,6 +1185,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'PF Kit 1 remaining lifetime',
'options': dict({
}),
'original_device_class': None,
@@ -1213,6 +1236,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Status',
'options': dict({
}),
'original_device_class': None,
@@ -1263,6 +1287,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Yellow drum page counter',
'options': dict({
}),
'original_device_class': None,
@@ -1315,6 +1340,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Yellow drum remaining lifetime',
'options': dict({
}),
'original_device_class': None,
@@ -1367,6 +1393,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Yellow drum remaining pages',
'options': dict({
}),
'original_device_class': None,
@@ -1419,6 +1446,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Yellow toner remaining',
'options': dict({
}),
'original_device_class': None,
@@ -35,6 +35,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -32,6 +32,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -107,6 +108,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -22,6 +22,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Current temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -78,6 +79,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Outside temperature',
'options': dict({
'sensor': dict({
'suggested_display_precision': 1,
@@ -28,6 +28,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -26,6 +26,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Audio output',
'options': dict({
}),
'original_device_class': None,
@@ -85,6 +86,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Control Bus mode',
'options': dict({
}),
'original_device_class': None,
@@ -144,6 +146,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Display brightness',
'options': dict({
}),
'original_device_class': None,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Early update',
'options': dict({
}),
'original_device_class': None,
@@ -68,6 +69,7 @@
'labels': set({
}),
'name': None,
'object_id_base': 'Pre-Amp',
'options': dict({
}),
'original_device_class': None,
@@ -42,6 +42,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -99,6 +100,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -236,6 +238,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -293,6 +296,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
@@ -20,6 +20,7 @@
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': <CoverDeviceClass.SHUTTER: 'shutter'>,

Some files were not shown because too many files have changed in this diff Show More