diff --git a/homeassistant/components/zha/core/device.py b/homeassistant/components/zha/core/device.py index 9e8a8450ec1..82e2b85173e 100644 --- a/homeassistant/components/zha/core/device.py +++ b/homeassistant/components/zha/core/device.py @@ -503,7 +503,7 @@ class ZHADevice(LogMixin): names.append( { ATTR_NAME: f"unknown {endpoint.device_type} device_type " - f"of 0x{endpoint.profile_id:04x} profile id" + f"of 0x{(endpoint.profile_id or 0xFFFF):04x} profile id" } ) device_info[ATTR_ENDPOINT_NAMES] = names diff --git a/tests/components/zha/common.py b/tests/components/zha/common.py index 97890b287e8..0115838c70d 100644 --- a/tests/components/zha/common.py +++ b/tests/components/zha/common.py @@ -1,75 +1,14 @@ """Common test objects.""" import asyncio import math -import time from unittest.mock import AsyncMock, Mock -import zigpy.device as zigpy_dev -import zigpy.endpoint as zigpy_ep -import zigpy.profiles.zha -import zigpy.types -import zigpy.zcl -import zigpy.zcl.clusters.general import zigpy.zcl.foundation as zcl_f -import zigpy.zdo.types import homeassistant.components.zha.core.const as zha_const from homeassistant.util import slugify -class FakeEndpoint: - """Fake endpoint for moking zigpy.""" - - def __init__(self, manufacturer, model, epid=1): - """Init fake endpoint.""" - self.device = None - self.endpoint_id = epid - self.in_clusters = {} - self.out_clusters = {} - self._cluster_attr = {} - self.member_of = {} - self.status = zigpy_ep.Status.ZDO_INIT - self.manufacturer = manufacturer - self.model = model - self.profile_id = zigpy.profiles.zha.PROFILE_ID - self.device_type = None - self.request = AsyncMock(return_value=[0]) - - def add_input_cluster(self, cluster_id, _patch_cluster=True): - """Add an input cluster.""" - cluster = zigpy.zcl.Cluster.from_id(self, cluster_id, is_server=True) - if _patch_cluster: - patch_cluster(cluster) - self.in_clusters[cluster_id] = cluster - ep_attribute = cluster.ep_attribute - if ep_attribute: - setattr(self, ep_attribute, cluster) - - def add_output_cluster(self, cluster_id, _patch_cluster=True): - """Add an output cluster.""" - cluster = zigpy.zcl.Cluster.from_id(self, cluster_id, is_server=False) - if _patch_cluster: - patch_cluster(cluster) - self.out_clusters[cluster_id] = cluster - - reply = AsyncMock(return_value=[0]) - request = AsyncMock(return_value=[0]) - - @property - def __class__(self): - """Fake being Zigpy endpoint.""" - return zigpy_ep.Endpoint - - @property - def unique_id(self): - """Return the unique id for the endpoint.""" - return self.device.ieee, self.endpoint_id - - -FakeEndpoint.add_to_group = zigpy_ep.Endpoint.add_to_group -FakeEndpoint.remove_from_group = zigpy_ep.Endpoint.remove_from_group - - def patch_cluster(cluster): """Patch a cluster for testing.""" cluster.PLUGGED_ATTR_READS = {} @@ -115,35 +54,6 @@ def patch_cluster(cluster): cluster.add = AsyncMock(return_value=[0]) -class FakeDevice: - """Fake device for mocking zigpy.""" - - def __init__(self, app, ieee, manufacturer, model, node_desc=None, nwk=0xB79C): - """Init fake device.""" - self._application = app - self.application = app - self.ieee = zigpy.types.EUI64.convert(ieee) - self.nwk = nwk - self.zdo = Mock() - self.endpoints = {0: self.zdo} - self.lqi = 255 - self.rssi = 8 - self.last_seen = time.time() - self.status = zigpy_dev.Status.ENDPOINTS_INIT - self.initializing = False - self.skip_configuration = False - self.manufacturer = manufacturer - self.model = model - self.remove_from_group = AsyncMock() - if node_desc is None: - node_desc = b"\x02@\x807\x10\x7fd\x00\x00*d\x00\x00" - self.node_desc = zigpy.zdo.types.NodeDescriptor.deserialize(node_desc)[0] - self.neighbors = [] - - -FakeDevice.add_to_group = zigpy_dev.Device.add_to_group - - def get_zha_gateway(hass): """Return ZHA gateway from hass.data.""" try: diff --git a/tests/components/zha/conftest.py b/tests/components/zha/conftest.py index df90256b3a8..da76b7015c9 100644 --- a/tests/components/zha/conftest.py +++ b/tests/components/zha/conftest.py @@ -1,22 +1,26 @@ """Test configuration for the ZHA component.""" +import time from unittest.mock import AsyncMock, MagicMock, PropertyMock, patch import pytest import zigpy from zigpy.application import ControllerApplication import zigpy.config +from zigpy.const import SIG_EP_INPUT, SIG_EP_OUTPUT, SIG_EP_PROFILE, SIG_EP_TYPE +import zigpy.device import zigpy.group +import zigpy.profiles import zigpy.types +import zigpy.zdo.types as zdo_t from homeassistant.components.zha import DOMAIN import homeassistant.components.zha.core.const as zha_const import homeassistant.components.zha.core.device as zha_core_device from homeassistant.setup import async_setup_component -from .common import FakeDevice, FakeEndpoint, get_zha_gateway - from tests.common import MockConfigEntry from tests.components.light.conftest import mock_light_profiles # noqa: F401 +from tests.components.zha import common FIXTURE_GRP_ID = 0x1001 FIXTURE_GRP_NAME = "fixture group" @@ -114,23 +118,29 @@ def zigpy_device_mock(zigpy_app_controller): patch_cluster=True, ): """Make a fake device using the specified cluster classes.""" - device = FakeDevice( - zigpy_app_controller, ieee, manufacturer, model, node_descriptor, nwk=nwk + device = zigpy.device.Device( + zigpy_app_controller, zigpy.types.EUI64.convert(ieee), nwk ) + device.manufacturer = manufacturer + device.model = model + device.node_desc = zdo_t.NodeDescriptor.deserialize(node_descriptor)[0] + device.last_seen = time.time() + for epid, ep in endpoints.items(): - endpoint = FakeEndpoint(manufacturer, model, epid) - endpoint.device = device - device.endpoints[epid] = endpoint - endpoint.device_type = ep["device_type"] - profile_id = ep.get("profile_id") - if profile_id: - endpoint.profile_id = profile_id + endpoint = device.add_endpoint(epid) + endpoint.device_type = ep[SIG_EP_TYPE] + endpoint.profile_id = ep.get(SIG_EP_PROFILE) + endpoint.request = AsyncMock(return_value=[0]) - for cluster_id in ep.get("in_clusters", []): - endpoint.add_input_cluster(cluster_id, _patch_cluster=patch_cluster) + for cluster_id in ep.get(SIG_EP_INPUT, []): + cluster = endpoint.add_input_cluster(cluster_id) + if patch_cluster: + common.patch_cluster(cluster) - for cluster_id in ep.get("out_clusters", []): - endpoint.add_output_cluster(cluster_id, _patch_cluster=patch_cluster) + for cluster_id in ep.get(SIG_EP_OUTPUT, []): + cluster = endpoint.add_output_cluster(cluster_id) + if patch_cluster: + common.patch_cluster(cluster) return device @@ -143,7 +153,7 @@ def zha_device_joined(hass, setup_zha): async def _zha_device(zigpy_dev): await setup_zha() - zha_gateway = get_zha_gateway(hass) + zha_gateway = common.get_zha_gateway(hass) await zha_gateway.async_device_initialized(zigpy_dev) await hass.async_block_till_done() return zha_gateway.get_device(zigpy_dev.ieee) diff --git a/tests/components/zha/test_alarm_control_panel.py b/tests/components/zha/test_alarm_control_panel.py index c3428a044a4..39063225e50 100644 --- a/tests/components/zha/test_alarm_control_panel.py +++ b/tests/components/zha/test_alarm_control_panel.py @@ -18,6 +18,7 @@ from homeassistant.const import ( ) from .common import async_enable_traffic, find_entity_id +from .conftest import SIG_EP_INPUT, SIG_EP_OUTPUT, SIG_EP_PROFILE, SIG_EP_TYPE @pytest.fixture @@ -25,9 +26,10 @@ def zigpy_device(zigpy_device_mock): """Device tracker zigpy device.""" endpoints = { 1: { - "in_clusters": [security.IasAce.cluster_id], - "out_clusters": [], - "device_type": zha.DeviceType.IAS_ANCILLARY_CONTROL, + SIG_EP_INPUT: [security.IasAce.cluster_id], + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zha.DeviceType.IAS_ANCILLARY_CONTROL, + SIG_EP_PROFILE: zha.PROFILE_ID, } } return zigpy_device_mock( diff --git a/tests/components/zha/test_api.py b/tests/components/zha/test_api.py index 288f886a865..4e97f35bf1d 100644 --- a/tests/components/zha/test_api.py +++ b/tests/components/zha/test_api.py @@ -40,7 +40,14 @@ from homeassistant.components.zha.core.const import ( from homeassistant.const import ATTR_NAME from homeassistant.core import Context -from .conftest import FIXTURE_GRP_ID, FIXTURE_GRP_NAME +from .conftest import ( + FIXTURE_GRP_ID, + FIXTURE_GRP_NAME, + SIG_EP_INPUT, + SIG_EP_OUTPUT, + SIG_EP_PROFILE, + SIG_EP_TYPE, +) IEEE_SWITCH_DEVICE = "01:2d:6f:00:0a:90:69:e7" IEEE_GROUPABLE_DEVICE = "01:2d:6f:00:0a:90:69:e8" @@ -53,9 +60,10 @@ async def device_switch(hass, zigpy_device_mock, zha_device_joined): zigpy_device = zigpy_device_mock( { 1: { - "in_clusters": [general.OnOff.cluster_id, general.Basic.cluster_id], - "out_clusters": [], - "device_type": zigpy.profiles.zha.DeviceType.ON_OFF_SWITCH, + SIG_EP_INPUT: [general.OnOff.cluster_id, general.Basic.cluster_id], + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zigpy.profiles.zha.DeviceType.ON_OFF_SWITCH, + SIG_EP_PROFILE: zigpy.profiles.zha.PROFILE_ID, } }, ieee=IEEE_SWITCH_DEVICE, @@ -72,13 +80,14 @@ async def device_groupable(hass, zigpy_device_mock, zha_device_joined): zigpy_device = zigpy_device_mock( { 1: { - "in_clusters": [ + SIG_EP_INPUT: [ general.OnOff.cluster_id, general.Basic.cluster_id, general.Groups.cluster_id, ], - "out_clusters": [], - "device_type": zigpy.profiles.zha.DeviceType.ON_OFF_SWITCH, + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zigpy.profiles.zha.DeviceType.ON_OFF_SWITCH, + SIG_EP_PROFILE: zigpy.profiles.zha.PROFILE_ID, } }, ieee=IEEE_GROUPABLE_DEVICE, diff --git a/tests/components/zha/test_binary_sensor.py b/tests/components/zha/test_binary_sensor.py index 7a2217521ad..1ab638d0b26 100644 --- a/tests/components/zha/test_binary_sensor.py +++ b/tests/components/zha/test_binary_sensor.py @@ -13,21 +13,24 @@ from .common import ( find_entity_id, send_attributes_report, ) +from .conftest import SIG_EP_INPUT, SIG_EP_OUTPUT, SIG_EP_PROFILE, SIG_EP_TYPE DEVICE_IAS = { 1: { - "device_type": zigpy.profiles.zha.DeviceType.IAS_ZONE, - "in_clusters": [security.IasZone.cluster_id], - "out_clusters": [], + SIG_EP_PROFILE: zigpy.profiles.zha.PROFILE_ID, + SIG_EP_TYPE: zigpy.profiles.zha.DeviceType.IAS_ZONE, + SIG_EP_INPUT: [security.IasZone.cluster_id], + SIG_EP_OUTPUT: [], } } DEVICE_OCCUPANCY = { 1: { - "device_type": zigpy.profiles.zha.DeviceType.OCCUPANCY_SENSOR, - "in_clusters": [measurement.OccupancySensing.cluster_id], - "out_clusters": [], + SIG_EP_PROFILE: zigpy.profiles.zha.PROFILE_ID, + SIG_EP_TYPE: zigpy.profiles.zha.DeviceType.OCCUPANCY_SENSOR, + SIG_EP_INPUT: [measurement.OccupancySensing.cluster_id], + SIG_EP_OUTPUT: [], } } diff --git a/tests/components/zha/test_channels.py b/tests/components/zha/test_channels.py index 45fbf648806..c1e60db31dd 100644 --- a/tests/components/zha/test_channels.py +++ b/tests/components/zha/test_channels.py @@ -15,6 +15,7 @@ import homeassistant.components.zha.core.const as zha_const import homeassistant.components.zha.core.registries as registries from .common import get_zha_gateway, make_zcl_header +from .conftest import SIG_EP_INPUT, SIG_EP_OUTPUT, SIG_EP_TYPE from tests.common import async_capture_events @@ -43,7 +44,7 @@ def zigpy_coordinator_device(zigpy_device_mock): """Coordinator device fixture.""" coordinator = zigpy_device_mock( - {1: {"in_clusters": [0x1000], "out_clusters": [], "device_type": 0x1234}}, + {1: {SIG_EP_INPUT: [0x1000], SIG_EP_OUTPUT: [], SIG_EP_TYPE: 0x1234}}, "00:11:22:33:44:55:66:77", "test manufacturer", "test model", @@ -69,7 +70,7 @@ def poll_control_ch(channel_pool, zigpy_device_mock): """Poll control channel fixture.""" cluster_id = zigpy.zcl.clusters.general.PollControl.cluster_id zigpy_dev = zigpy_device_mock( - {1: {"in_clusters": [cluster_id], "out_clusters": [], "device_type": 0x1234}}, + {1: {SIG_EP_INPUT: [cluster_id], SIG_EP_OUTPUT: [], SIG_EP_TYPE: 0x1234}}, "00:11:22:33:44:55:66:77", "test manufacturer", "test model", @@ -85,7 +86,7 @@ async def poll_control_device(zha_device_restored, zigpy_device_mock): """Poll control device fixture.""" cluster_id = zigpy.zcl.clusters.general.PollControl.cluster_id zigpy_dev = zigpy_device_mock( - {1: {"in_clusters": [cluster_id], "out_clusters": [], "device_type": 0x1234}}, + {1: {SIG_EP_INPUT: [cluster_id], SIG_EP_OUTPUT: [], SIG_EP_TYPE: 0x1234}}, "00:11:22:33:44:55:66:77", "test manufacturer", "test model", @@ -159,7 +160,7 @@ async def test_in_channel_config( ): """Test ZHA core channel configuration for input clusters.""" zigpy_dev = zigpy_device_mock( - {1: {"in_clusters": [cluster_id], "out_clusters": [], "device_type": 0x1234}}, + {1: {SIG_EP_INPUT: [cluster_id], SIG_EP_OUTPUT: [], SIG_EP_TYPE: 0x1234}}, "00:11:22:33:44:55:66:77", "test manufacturer", "test model", @@ -221,7 +222,7 @@ async def test_out_channel_config( ): """Test ZHA core channel configuration for output clusters.""" zigpy_dev = zigpy_device_mock( - {1: {"out_clusters": [cluster_id], "in_clusters": [], "device_type": 0x1234}}, + {1: {SIG_EP_OUTPUT: [cluster_id], SIG_EP_INPUT: [], SIG_EP_TYPE: 0x1234}}, "00:11:22:33:44:55:66:77", "test manufacturer", "test model", @@ -328,14 +329,14 @@ def test_ep_channels_all_channels(m1, zha_device_mock): zha_device = zha_device_mock( { 1: { - "in_clusters": [0, 1, 6, 8], - "out_clusters": [], - "device_type": zigpy.profiles.zha.DeviceType.ON_OFF_SWITCH, + SIG_EP_INPUT: [0, 1, 6, 8], + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zigpy.profiles.zha.DeviceType.ON_OFF_SWITCH, }, 2: { - "in_clusters": [0, 1, 6, 8, 768], - "out_clusters": [], - "device_type": 0x0000, + SIG_EP_INPUT: [0, 1, 6, 8, 768], + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: 0x0000, }, } ) @@ -379,11 +380,11 @@ def test_channel_power_config(m1, zha_device_mock): in_clusters = [0, 1, 6, 8] zha_device = zha_device_mock( { - 1: {"in_clusters": in_clusters, "out_clusters": [], "device_type": 0x0000}, + 1: {SIG_EP_INPUT: in_clusters, SIG_EP_OUTPUT: [], SIG_EP_TYPE: 0x0000}, 2: { - "in_clusters": [*in_clusters, 768], - "out_clusters": [], - "device_type": 0x0000, + SIG_EP_INPUT: [*in_clusters, 768], + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: 0x0000, }, } ) @@ -402,8 +403,8 @@ def test_channel_power_config(m1, zha_device_mock): zha_device = zha_device_mock( { - 1: {"in_clusters": [], "out_clusters": [], "device_type": 0x0000}, - 2: {"in_clusters": in_clusters, "out_clusters": [], "device_type": 0x0000}, + 1: {SIG_EP_INPUT: [], SIG_EP_OUTPUT: [], SIG_EP_TYPE: 0x0000}, + 2: {SIG_EP_INPUT: in_clusters, SIG_EP_OUTPUT: [], SIG_EP_TYPE: 0x0000}, } ) channels = zha_channels.Channels.new(zha_device) @@ -412,7 +413,7 @@ def test_channel_power_config(m1, zha_device_mock): assert "2:0x0001" in pools[2].all_channels zha_device = zha_device_mock( - {2: {"in_clusters": in_clusters, "out_clusters": [], "device_type": 0x0000}} + {2: {SIG_EP_INPUT: in_clusters, SIG_EP_OUTPUT: [], SIG_EP_TYPE: 0x0000}} ) channels = zha_channels.Channels.new(zha_device) pools = {pool.id: pool for pool in channels.pools} @@ -556,7 +557,7 @@ def zigpy_zll_device(zigpy_device_mock): """ZLL device fixture.""" return zigpy_device_mock( - {1: {"in_clusters": [0x1000], "out_clusters": [], "device_type": 0x1234}}, + {1: {SIG_EP_INPUT: [0x1000], SIG_EP_OUTPUT: [], SIG_EP_TYPE: 0x1234}}, "00:11:22:33:44:55:66:77", "test manufacturer", "test model", diff --git a/tests/components/zha/test_climate.py b/tests/components/zha/test_climate.py index ea2d6dfb7e3..f3808fee78d 100644 --- a/tests/components/zha/test_climate.py +++ b/tests/components/zha/test_climate.py @@ -3,6 +3,7 @@ from unittest.mock import patch import pytest +import zigpy.profiles import zigpy.zcl.clusters from zigpy.zcl.clusters.hvac import Thermostat import zigpy.zcl.foundation as zcl_f @@ -51,74 +52,79 @@ from homeassistant.components.zha.core.const import PRESET_COMPLEX, PRESET_SCHED from homeassistant.const import ATTR_ENTITY_ID, ATTR_TEMPERATURE, STATE_UNKNOWN from .common import async_enable_traffic, find_entity_id, send_attributes_report +from .conftest import SIG_EP_INPUT, SIG_EP_OUTPUT, SIG_EP_PROFILE, SIG_EP_TYPE CLIMATE = { 1: { - "device_type": zigpy.profiles.zha.DeviceType.THERMOSTAT, - "in_clusters": [ + SIG_EP_PROFILE: zigpy.profiles.zha.PROFILE_ID, + SIG_EP_TYPE: zigpy.profiles.zha.DeviceType.THERMOSTAT, + SIG_EP_INPUT: [ zigpy.zcl.clusters.general.Basic.cluster_id, zigpy.zcl.clusters.general.Identify.cluster_id, zigpy.zcl.clusters.hvac.Thermostat.cluster_id, zigpy.zcl.clusters.hvac.UserInterface.cluster_id, ], - "out_clusters": [zigpy.zcl.clusters.general.Ota.cluster_id], + SIG_EP_OUTPUT: [zigpy.zcl.clusters.general.Ota.cluster_id], } } CLIMATE_FAN = { 1: { - "device_type": zigpy.profiles.zha.DeviceType.THERMOSTAT, - "in_clusters": [ + SIG_EP_PROFILE: zigpy.profiles.zha.PROFILE_ID, + SIG_EP_TYPE: zigpy.profiles.zha.DeviceType.THERMOSTAT, + SIG_EP_INPUT: [ zigpy.zcl.clusters.general.Basic.cluster_id, zigpy.zcl.clusters.general.Identify.cluster_id, zigpy.zcl.clusters.hvac.Fan.cluster_id, zigpy.zcl.clusters.hvac.Thermostat.cluster_id, zigpy.zcl.clusters.hvac.UserInterface.cluster_id, ], - "out_clusters": [zigpy.zcl.clusters.general.Ota.cluster_id], + SIG_EP_OUTPUT: [zigpy.zcl.clusters.general.Ota.cluster_id], } } CLIMATE_SINOPE = { 1: { - "device_type": zigpy.profiles.zha.DeviceType.THERMOSTAT, - "in_clusters": [ + SIG_EP_PROFILE: zigpy.profiles.zha.PROFILE_ID, + SIG_EP_TYPE: zigpy.profiles.zha.DeviceType.THERMOSTAT, + SIG_EP_INPUT: [ zigpy.zcl.clusters.general.Basic.cluster_id, zigpy.zcl.clusters.general.Identify.cluster_id, zigpy.zcl.clusters.hvac.Thermostat.cluster_id, zigpy.zcl.clusters.hvac.UserInterface.cluster_id, 65281, ], - "out_clusters": [zigpy.zcl.clusters.general.Ota.cluster_id, 65281], - "profile_id": 260, + SIG_EP_OUTPUT: [zigpy.zcl.clusters.general.Ota.cluster_id, 65281], }, } CLIMATE_ZEN = { 1: { - "device_type": zigpy.profiles.zha.DeviceType.THERMOSTAT, - "in_clusters": [ + SIG_EP_PROFILE: zigpy.profiles.zha.PROFILE_ID, + SIG_EP_TYPE: zigpy.profiles.zha.DeviceType.THERMOSTAT, + SIG_EP_INPUT: [ zigpy.zcl.clusters.general.Basic.cluster_id, zigpy.zcl.clusters.general.Identify.cluster_id, zigpy.zcl.clusters.hvac.Fan.cluster_id, zigpy.zcl.clusters.hvac.Thermostat.cluster_id, zigpy.zcl.clusters.hvac.UserInterface.cluster_id, ], - "out_clusters": [zigpy.zcl.clusters.general.Ota.cluster_id], + SIG_EP_OUTPUT: [zigpy.zcl.clusters.general.Ota.cluster_id], } } CLIMATE_MOES = { 1: { - "device_type": zigpy.profiles.zha.DeviceType.THERMOSTAT, - "in_clusters": [ + SIG_EP_PROFILE: zigpy.profiles.zha.PROFILE_ID, + SIG_EP_TYPE: zigpy.profiles.zha.DeviceType.THERMOSTAT, + SIG_EP_INPUT: [ zigpy.zcl.clusters.general.Basic.cluster_id, zigpy.zcl.clusters.general.Identify.cluster_id, zigpy.zcl.clusters.hvac.Thermostat.cluster_id, zigpy.zcl.clusters.hvac.UserInterface.cluster_id, 61148, ], - "out_clusters": [zigpy.zcl.clusters.general.Ota.cluster_id], + SIG_EP_OUTPUT: [zigpy.zcl.clusters.general.Ota.cluster_id], } } MANUF_SINOPE = "Sinope Technologies" diff --git a/tests/components/zha/test_cover.py b/tests/components/zha/test_cover.py index c926618813c..e002e2c26f0 100644 --- a/tests/components/zha/test_cover.py +++ b/tests/components/zha/test_cover.py @@ -32,6 +32,7 @@ from .common import ( make_zcl_header, send_attributes_report, ) +from .conftest import SIG_EP_INPUT, SIG_EP_OUTPUT, SIG_EP_PROFILE, SIG_EP_TYPE from tests.common import async_capture_events, mock_coro, mock_restore_cache @@ -42,9 +43,10 @@ def zigpy_cover_device(zigpy_device_mock): endpoints = { 1: { - "device_type": zigpy.profiles.zha.DeviceType.IAS_ZONE, - "in_clusters": [closures.WindowCovering.cluster_id], - "out_clusters": [], + SIG_EP_PROFILE: zigpy.profiles.zha.PROFILE_ID, + SIG_EP_TYPE: zigpy.profiles.zha.DeviceType.IAS_ZONE, + SIG_EP_INPUT: [closures.WindowCovering.cluster_id], + SIG_EP_OUTPUT: [], } } return zigpy_device_mock(endpoints) @@ -56,9 +58,10 @@ def zigpy_cover_remote(zigpy_device_mock): endpoints = { 1: { - "device_type": zigpy.profiles.zha.DeviceType.WINDOW_COVERING_CONTROLLER, - "in_clusters": [], - "out_clusters": [closures.WindowCovering.cluster_id], + SIG_EP_PROFILE: zigpy.profiles.zha.PROFILE_ID, + SIG_EP_TYPE: zigpy.profiles.zha.DeviceType.WINDOW_COVERING_CONTROLLER, + SIG_EP_INPUT: [], + SIG_EP_OUTPUT: [closures.WindowCovering.cluster_id], } } return zigpy_device_mock(endpoints) @@ -70,13 +73,14 @@ def zigpy_shade_device(zigpy_device_mock): endpoints = { 1: { - "device_type": zigpy.profiles.zha.DeviceType.SHADE, - "in_clusters": [ + SIG_EP_PROFILE: zigpy.profiles.zha.PROFILE_ID, + SIG_EP_TYPE: zigpy.profiles.zha.DeviceType.SHADE, + SIG_EP_INPUT: [ closures.Shade.cluster_id, general.LevelControl.cluster_id, general.OnOff.cluster_id, ], - "out_clusters": [], + SIG_EP_OUTPUT: [], } } return zigpy_device_mock(endpoints) @@ -88,9 +92,10 @@ def zigpy_keen_vent(zigpy_device_mock): endpoints = { 1: { - "device_type": zigpy.profiles.zha.DeviceType.LEVEL_CONTROLLABLE_OUTPUT, - "in_clusters": [general.LevelControl.cluster_id, general.OnOff.cluster_id], - "out_clusters": [], + SIG_EP_PROFILE: zigpy.profiles.zha.PROFILE_ID, + SIG_EP_TYPE: zigpy.profiles.zha.DeviceType.LEVEL_CONTROLLABLE_OUTPUT, + SIG_EP_INPUT: [general.LevelControl.cluster_id, general.OnOff.cluster_id], + SIG_EP_OUTPUT: [], } } return zigpy_device_mock( diff --git a/tests/components/zha/test_device.py b/tests/components/zha/test_device.py index 0f696f21572..76877e71ffc 100644 --- a/tests/components/zha/test_device.py +++ b/tests/components/zha/test_device.py @@ -17,6 +17,7 @@ import homeassistant.helpers.device_registry as dr import homeassistant.util.dt as dt_util from .common import async_enable_traffic, make_zcl_header +from .conftest import SIG_EP_INPUT, SIG_EP_OUTPUT, SIG_EP_TYPE from tests.common import async_fire_time_changed @@ -32,9 +33,9 @@ def zigpy_device(zigpy_device_mock): endpoints = { 3: { - "in_clusters": in_clusters, - "out_clusters": [], - "device_type": zigpy.profiles.zha.DeviceType.ON_OFF_SWITCH, + SIG_EP_INPUT: in_clusters, + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zigpy.profiles.zha.DeviceType.ON_OFF_SWITCH, } } return zigpy_device_mock(endpoints) @@ -53,9 +54,9 @@ def zigpy_device_mains(zigpy_device_mock): endpoints = { 3: { - "in_clusters": in_clusters, - "out_clusters": [], - "device_type": zigpy.profiles.zha.DeviceType.ON_OFF_SWITCH, + SIG_EP_INPUT: in_clusters, + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zigpy.profiles.zha.DeviceType.ON_OFF_SWITCH, } } return zigpy_device_mock( @@ -83,9 +84,9 @@ async def ota_zha_device(zha_device_restored, zigpy_device_mock): zigpy_dev = zigpy_device_mock( { 1: { - "in_clusters": [general.Basic.cluster_id], - "out_clusters": [general.Ota.cluster_id], - "device_type": 0x1234, + SIG_EP_INPUT: [general.Basic.cluster_id], + SIG_EP_OUTPUT: [general.Ota.cluster_id], + SIG_EP_TYPE: 0x1234, } }, "00:11:22:33:44:55:66:77", diff --git a/tests/components/zha/test_device_action.py b/tests/components/zha/test_device_action.py index 49fa11de26c..b67f54a0a16 100644 --- a/tests/components/zha/test_device_action.py +++ b/tests/components/zha/test_device_action.py @@ -12,6 +12,8 @@ from homeassistant.components.zha import DOMAIN from homeassistant.helpers import device_registry as dr from homeassistant.setup import async_setup_component +from .conftest import SIG_EP_INPUT, SIG_EP_OUTPUT, SIG_EP_TYPE + from tests.common import async_get_device_automations, async_mock_service, mock_coro from tests.components.blueprint.conftest import stub_blueprint_populate # noqa: F401 @@ -28,9 +30,9 @@ async def device_ias(hass, zigpy_device_mock, zha_device_joined_restored): zigpy_device = zigpy_device_mock( { 1: { - "in_clusters": [c.cluster_id for c in clusters], - "out_clusters": [general.OnOff.cluster_id], - "device_type": zigpy.profiles.zha.DeviceType.ON_OFF_SWITCH, + SIG_EP_INPUT: [c.cluster_id for c in clusters], + SIG_EP_OUTPUT: [general.OnOff.cluster_id], + SIG_EP_TYPE: zigpy.profiles.zha.DeviceType.ON_OFF_SWITCH, } }, ) diff --git a/tests/components/zha/test_device_tracker.py b/tests/components/zha/test_device_tracker.py index 0cc2b6f25c1..60dd136b9fd 100644 --- a/tests/components/zha/test_device_tracker.py +++ b/tests/components/zha/test_device_tracker.py @@ -3,6 +3,7 @@ from datetime import timedelta import time import pytest +import zigpy.profiles.zha import zigpy.zcl.clusters.general as general from homeassistant.components.device_tracker import DOMAIN, SOURCE_TYPE_ROUTER @@ -18,6 +19,7 @@ from .common import ( find_entity_id, send_attributes_report, ) +from .conftest import SIG_EP_INPUT, SIG_EP_OUTPUT, SIG_EP_PROFILE, SIG_EP_TYPE from tests.common import async_fire_time_changed @@ -27,15 +29,16 @@ def zigpy_device_dt(zigpy_device_mock): """Device tracker zigpy device.""" endpoints = { 1: { - "in_clusters": [ + SIG_EP_INPUT: [ general.Basic.cluster_id, general.PowerConfiguration.cluster_id, general.Identify.cluster_id, general.PollControl.cluster_id, general.BinaryInput.cluster_id, ], - "out_clusters": [general.Identify.cluster_id, general.Ota.cluster_id], - "device_type": SMARTTHINGS_ARRIVAL_SENSOR_DEVICE_TYPE, + SIG_EP_OUTPUT: [general.Identify.cluster_id, general.Ota.cluster_id], + SIG_EP_TYPE: SMARTTHINGS_ARRIVAL_SENSOR_DEVICE_TYPE, + SIG_EP_PROFILE: zigpy.profiles.zha.PROFILE_ID, } } return zigpy_device_mock(endpoints) diff --git a/tests/components/zha/test_device_trigger.py b/tests/components/zha/test_device_trigger.py index 841d6b43400..fbfc2144a6a 100644 --- a/tests/components/zha/test_device_trigger.py +++ b/tests/components/zha/test_device_trigger.py @@ -12,6 +12,7 @@ from homeassistant.setup import async_setup_component import homeassistant.util.dt as dt_util from .common import async_enable_traffic +from .conftest import SIG_EP_INPUT, SIG_EP_OUTPUT, SIG_EP_PROFILE, SIG_EP_TYPE from tests.common import ( async_fire_time_changed, @@ -57,9 +58,10 @@ async def mock_devices(hass, zigpy_device_mock, zha_device_joined_restored): zigpy_device = zigpy_device_mock( { 1: { - "in_clusters": [general.Basic.cluster_id], - "out_clusters": [general.OnOff.cluster_id], - "device_type": zigpy.profiles.zha.DeviceType.ON_OFF_SWITCH, + SIG_EP_INPUT: [general.Basic.cluster_id], + SIG_EP_OUTPUT: [general.OnOff.cluster_id], + SIG_EP_TYPE: zigpy.profiles.zha.DeviceType.ON_OFF_SWITCH, + SIG_EP_PROFILE: zigpy.profiles.zha.PROFILE_ID, } } ) diff --git a/tests/components/zha/test_discover.py b/tests/components/zha/test_discover.py index 9dc71d4aa25..86cdcaa1c60 100644 --- a/tests/components/zha/test_discover.py +++ b/tests/components/zha/test_discover.py @@ -5,6 +5,7 @@ from unittest import mock from unittest.mock import AsyncMock, patch import pytest +from zigpy.const import SIG_ENDPOINTS, SIG_MANUFACTURER, SIG_MODEL, SIG_NODE_DESC import zigpy.profiles.zha import zigpy.quirks import zigpy.types @@ -29,7 +30,15 @@ import homeassistant.components.zha.switch import homeassistant.helpers.entity_registry from .common import get_zha_gateway -from .zha_devices_list import DEVICES +from .conftest import SIG_EP_INPUT, SIG_EP_OUTPUT, SIG_EP_PROFILE, SIG_EP_TYPE +from .zha_devices_list import ( + DEV_SIG_CHANNELS, + DEV_SIG_ENT_MAP, + DEV_SIG_ENT_MAP_CLASS, + DEV_SIG_ENT_MAP_ID, + DEV_SIG_EVT_CHANNELS, + DEVICES, +) NO_TAIL_ID = re.compile("_\\d$") @@ -72,11 +81,11 @@ async def test_devices( ) zigpy_device = zigpy_device_mock( - device["endpoints"], + device[SIG_ENDPOINTS], "00:11:22:33:44:55:66:77", - device["manufacturer"], - device["model"], - node_descriptor=device["node_descriptor"], + device[SIG_MANUFACTURER], + device[SIG_MODEL], + node_descriptor=device[SIG_NODE_DESC], patch_cluster=False, ) @@ -120,11 +129,13 @@ async def test_devices( ch.id for pool in zha_dev.channels.pools for ch in pool.client_channels.values() } - entity_map = device["entity_map"] + entity_map = device[DEV_SIG_ENT_MAP] assert zha_entity_ids == { - e["entity_id"] for e in entity_map.values() if not e.get("default_match", False) + e[DEV_SIG_ENT_MAP_ID] + for e in entity_map.values() + if not e.get("default_match", False) } - assert event_channels == set(device["event_channels"]) + assert event_channels == set(device[DEV_SIG_EVT_CHANNELS]) for call in _dispatch.call_args_list: _, component, entity_cls, unique_id, channels = call[0] @@ -133,10 +144,10 @@ async def test_devices( assert key in entity_map assert entity_id is not None - no_tail_id = NO_TAIL_ID.sub("", entity_map[key]["entity_id"]) + no_tail_id = NO_TAIL_ID.sub("", entity_map[key][DEV_SIG_ENT_MAP_ID]) assert entity_id.startswith(no_tail_id) - assert {ch.name for ch in channels} == set(entity_map[key]["channels"]) - assert entity_cls.__name__ == entity_map[key]["entity_class"] + assert {ch.name for ch in channels} == set(entity_map[key][DEV_SIG_CHANNELS]) + assert entity_cls.__name__ == entity_map[key][DEV_SIG_ENT_MAP_CLASS] def _get_first_identify_cluster(zigpy_device): @@ -258,20 +269,20 @@ async def test_discover_endpoint(device_info, channels_mock, hass): "homeassistant.components.zha.core.channels.Channels.async_new_entity" ) as new_ent: channels = channels_mock( - device_info["endpoints"], - manufacturer=device_info["manufacturer"], - model=device_info["model"], - node_desc=device_info["node_descriptor"], + device_info[SIG_ENDPOINTS], + manufacturer=device_info[SIG_MANUFACTURER], + model=device_info[SIG_MODEL], + node_desc=device_info[SIG_NODE_DESC], patch_cluster=False, ) - assert device_info["event_channels"] == sorted( + assert device_info[DEV_SIG_EVT_CHANNELS] == sorted( ch.id for pool in channels.pools for ch in pool.client_channels.values() ) assert new_ent.call_count == len( [ device_info - for device_info in device_info["entity_map"].values() + for device_info in device_info[DEV_SIG_ENT_MAP].values() if not device_info.get("default_match", False) ] ) @@ -279,10 +290,10 @@ async def test_discover_endpoint(device_info, channels_mock, hass): for call_args in new_ent.call_args_list: comp, ent_cls, unique_id, channels = call_args[0] map_id = (comp, unique_id) - assert map_id in device_info["entity_map"] - entity_info = device_info["entity_map"][map_id] - assert {ch.name for ch in channels} == set(entity_info["channels"]) - assert ent_cls.__name__ == entity_info["entity_class"] + assert map_id in device_info[DEV_SIG_ENT_MAP] + entity_info = device_info[DEV_SIG_ENT_MAP][map_id] + assert {ch.name for ch in channels} == set(entity_info[DEV_SIG_CHANNELS]) + assert ent_cls.__name__ == entity_info[DEV_SIG_ENT_MAP_CLASS] def _ch_mock(cluster): @@ -377,11 +388,11 @@ async def test_device_override( zigpy_device = zigpy_device_mock( { 1: { - "device_type": zigpy.profiles.zha.DeviceType.COLOR_DIMMABLE_LIGHT, + SIG_EP_TYPE: zigpy.profiles.zha.DeviceType.COLOR_DIMMABLE_LIGHT, "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 6, 8, 768, 2821, 64513], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 8, 768, 2821, 64513], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, } }, "00:11:22:33:44:55:66:77", diff --git a/tests/components/zha/test_fan.py b/tests/components/zha/test_fan.py index eed0e0b691e..65b2df725dc 100644 --- a/tests/components/zha/test_fan.py +++ b/tests/components/zha/test_fan.py @@ -49,6 +49,7 @@ from .common import ( get_zha_gateway, send_attributes_report, ) +from .conftest import SIG_EP_INPUT, SIG_EP_OUTPUT, SIG_EP_PROFILE, SIG_EP_TYPE from tests.components.zha.common import async_wait_for_updates @@ -61,9 +62,10 @@ def zigpy_device(zigpy_device_mock): """Device tracker zigpy device.""" endpoints = { 1: { - "in_clusters": [hvac.Fan.cluster_id], - "out_clusters": [], - "device_type": zha.DeviceType.ON_OFF_SWITCH, + SIG_EP_INPUT: [hvac.Fan.cluster_id], + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zha.DeviceType.ON_OFF_SWITCH, + SIG_EP_PROFILE: zha.PROFILE_ID, } } return zigpy_device_mock( @@ -78,9 +80,10 @@ async def coordinator(hass, zigpy_device_mock, zha_device_joined): zigpy_device = zigpy_device_mock( { 1: { - "in_clusters": [general.Groups.cluster_id], - "out_clusters": [], - "device_type": zha.DeviceType.COLOR_DIMMABLE_LIGHT, + SIG_EP_INPUT: [general.Groups.cluster_id], + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zha.DeviceType.COLOR_DIMMABLE_LIGHT, + SIG_EP_PROFILE: zha.PROFILE_ID, } }, ieee="00:15:8d:00:02:32:4f:32", @@ -99,13 +102,14 @@ async def device_fan_1(hass, zigpy_device_mock, zha_device_joined): zigpy_device = zigpy_device_mock( { 1: { - "in_clusters": [ + SIG_EP_INPUT: [ general.Groups.cluster_id, general.OnOff.cluster_id, hvac.Fan.cluster_id, ], - "out_clusters": [], - "device_type": zha.DeviceType.ON_OFF_LIGHT, + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zha.DeviceType.ON_OFF_LIGHT, + SIG_EP_PROFILE: zha.PROFILE_ID, }, }, ieee=IEEE_GROUPABLE_DEVICE, @@ -123,14 +127,15 @@ async def device_fan_2(hass, zigpy_device_mock, zha_device_joined): zigpy_device = zigpy_device_mock( { 1: { - "in_clusters": [ + SIG_EP_INPUT: [ general.Groups.cluster_id, general.OnOff.cluster_id, hvac.Fan.cluster_id, general.LevelControl.cluster_id, ], - "out_clusters": [], - "device_type": zha.DeviceType.ON_OFF_LIGHT, + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zha.DeviceType.ON_OFF_LIGHT, + SIG_EP_PROFILE: zha.PROFILE_ID, }, }, ieee=IEEE_GROUPABLE_DEVICE2, diff --git a/tests/components/zha/test_gateway.py b/tests/components/zha/test_gateway.py index 4b3a9bec50c..6662f0c2c9f 100644 --- a/tests/components/zha/test_gateway.py +++ b/tests/components/zha/test_gateway.py @@ -13,6 +13,7 @@ from homeassistant.components.zha.core.group import GroupMember from homeassistant.components.zha.core.store import TOMBSTONE_LIFETIME from .common import async_enable_traffic, async_find_group_entity_id, get_zha_gateway +from .conftest import SIG_EP_INPUT, SIG_EP_OUTPUT, SIG_EP_PROFILE, SIG_EP_TYPE IEEE_GROUPABLE_DEVICE = "01:2d:6f:00:0a:90:69:e8" IEEE_GROUPABLE_DEVICE2 = "02:2d:6f:00:0a:90:69:e8" @@ -24,9 +25,10 @@ def zigpy_dev_basic(zigpy_device_mock): return zigpy_device_mock( { 1: { - "in_clusters": [general.Basic.cluster_id], - "out_clusters": [], - "device_type": zha.DeviceType.ON_OFF_SWITCH, + SIG_EP_INPUT: [general.Basic.cluster_id], + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zha.DeviceType.ON_OFF_SWITCH, + SIG_EP_PROFILE: zha.PROFILE_ID, } } ) @@ -47,9 +49,10 @@ async def coordinator(hass, zigpy_device_mock, zha_device_joined): zigpy_device = zigpy_device_mock( { 1: { - "in_clusters": [], - "out_clusters": [], - "device_type": zha.DeviceType.COLOR_DIMMABLE_LIGHT, + SIG_EP_INPUT: [], + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zha.DeviceType.COLOR_DIMMABLE_LIGHT, + SIG_EP_PROFILE: zha.PROFILE_ID, } }, ieee="00:15:8d:00:02:32:4f:32", @@ -68,14 +71,15 @@ async def device_light_1(hass, zigpy_device_mock, zha_device_joined): zigpy_device = zigpy_device_mock( { 1: { - "in_clusters": [ + SIG_EP_INPUT: [ general.OnOff.cluster_id, general.LevelControl.cluster_id, lighting.Color.cluster_id, general.Groups.cluster_id, ], - "out_clusters": [], - "device_type": zha.DeviceType.COLOR_DIMMABLE_LIGHT, + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zha.DeviceType.COLOR_DIMMABLE_LIGHT, + SIG_EP_PROFILE: zha.PROFILE_ID, } }, ieee=IEEE_GROUPABLE_DEVICE, @@ -92,14 +96,15 @@ async def device_light_2(hass, zigpy_device_mock, zha_device_joined): zigpy_device = zigpy_device_mock( { 1: { - "in_clusters": [ + SIG_EP_INPUT: [ general.OnOff.cluster_id, general.LevelControl.cluster_id, lighting.Color.cluster_id, general.Groups.cluster_id, ], - "out_clusters": [], - "device_type": zha.DeviceType.COLOR_DIMMABLE_LIGHT, + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zha.DeviceType.COLOR_DIMMABLE_LIGHT, + SIG_EP_PROFILE: zha.PROFILE_ID, } }, ieee=IEEE_GROUPABLE_DEVICE2, diff --git a/tests/components/zha/test_light.py b/tests/components/zha/test_light.py index 915fc77462b..d1a3b5dabb0 100644 --- a/tests/components/zha/test_light.py +++ b/tests/components/zha/test_light.py @@ -1,6 +1,6 @@ """Test zha light.""" from datetime import timedelta -from unittest.mock import AsyncMock, MagicMock, call, patch, sentinel +from unittest.mock import AsyncMock, call, patch, sentinel import pytest import zigpy.profiles.zha as zha @@ -23,6 +23,7 @@ from .common import ( get_zha_gateway, send_attributes_report, ) +from .conftest import SIG_EP_INPUT, SIG_EP_OUTPUT, SIG_EP_PROFILE, SIG_EP_TYPE from tests.common import async_fire_time_changed from tests.components.zha.common import async_wait_for_updates @@ -35,39 +36,42 @@ IEEE_GROUPABLE_DEVICE3 = "03:2d:6f:00:0a:90:69:e7" LIGHT_ON_OFF = { 1: { - "device_type": zha.DeviceType.ON_OFF_LIGHT, - "in_clusters": [ + SIG_EP_PROFILE: zha.PROFILE_ID, + SIG_EP_TYPE: zha.DeviceType.ON_OFF_LIGHT, + SIG_EP_INPUT: [ general.Basic.cluster_id, general.Identify.cluster_id, general.OnOff.cluster_id, ], - "out_clusters": [general.Ota.cluster_id], + SIG_EP_OUTPUT: [general.Ota.cluster_id], } } LIGHT_LEVEL = { 1: { - "device_type": zha.DeviceType.DIMMABLE_LIGHT, - "in_clusters": [ + SIG_EP_PROFILE: zha.PROFILE_ID, + SIG_EP_TYPE: zha.DeviceType.DIMMABLE_LIGHT, + SIG_EP_INPUT: [ general.Basic.cluster_id, general.LevelControl.cluster_id, general.OnOff.cluster_id, ], - "out_clusters": [general.Ota.cluster_id], + SIG_EP_OUTPUT: [general.Ota.cluster_id], } } LIGHT_COLOR = { 1: { - "device_type": zha.DeviceType.COLOR_DIMMABLE_LIGHT, - "in_clusters": [ + SIG_EP_PROFILE: zha.PROFILE_ID, + SIG_EP_TYPE: zha.DeviceType.COLOR_DIMMABLE_LIGHT, + SIG_EP_INPUT: [ general.Basic.cluster_id, general.Identify.cluster_id, general.LevelControl.cluster_id, general.OnOff.cluster_id, lighting.Color.cluster_id, ], - "out_clusters": [general.Ota.cluster_id], + SIG_EP_OUTPUT: [general.Ota.cluster_id], } } @@ -79,9 +83,10 @@ async def coordinator(hass, zigpy_device_mock, zha_device_joined): zigpy_device = zigpy_device_mock( { 1: { - "in_clusters": [general.Groups.cluster_id], - "out_clusters": [], - "device_type": zha.DeviceType.COLOR_DIMMABLE_LIGHT, + SIG_EP_INPUT: [general.Groups.cluster_id], + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zha.DeviceType.COLOR_DIMMABLE_LIGHT, + SIG_EP_PROFILE: zha.PROFILE_ID, } }, ieee="00:15:8d:00:02:32:4f:32", @@ -100,15 +105,16 @@ async def device_light_1(hass, zigpy_device_mock, zha_device_joined): zigpy_device = zigpy_device_mock( { 1: { - "in_clusters": [ + SIG_EP_INPUT: [ general.OnOff.cluster_id, general.LevelControl.cluster_id, lighting.Color.cluster_id, general.Groups.cluster_id, general.Identify.cluster_id, ], - "out_clusters": [], - "device_type": zha.DeviceType.COLOR_DIMMABLE_LIGHT, + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zha.DeviceType.COLOR_DIMMABLE_LIGHT, + SIG_EP_PROFILE: zha.PROFILE_ID, } }, ieee=IEEE_GROUPABLE_DEVICE, @@ -126,15 +132,16 @@ async def device_light_2(hass, zigpy_device_mock, zha_device_joined): zigpy_device = zigpy_device_mock( { 1: { - "in_clusters": [ + SIG_EP_INPUT: [ general.OnOff.cluster_id, general.LevelControl.cluster_id, lighting.Color.cluster_id, general.Groups.cluster_id, general.Identify.cluster_id, ], - "out_clusters": [], - "device_type": zha.DeviceType.COLOR_DIMMABLE_LIGHT, + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zha.DeviceType.COLOR_DIMMABLE_LIGHT, + SIG_EP_PROFILE: zha.PROFILE_ID, } }, ieee=IEEE_GROUPABLE_DEVICE2, @@ -152,15 +159,16 @@ async def device_light_3(hass, zigpy_device_mock, zha_device_joined): zigpy_device = zigpy_device_mock( { 1: { - "in_clusters": [ + SIG_EP_INPUT: [ general.OnOff.cluster_id, general.LevelControl.cluster_id, lighting.Color.cluster_id, general.Groups.cluster_id, general.Identify.cluster_id, ], - "out_clusters": [], - "device_type": zha.DeviceType.COLOR_DIMMABLE_LIGHT, + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zha.DeviceType.COLOR_DIMMABLE_LIGHT, + SIG_EP_PROFILE: zha.PROFILE_ID, } }, ieee=IEEE_GROUPABLE_DEVICE3, @@ -171,14 +179,14 @@ async def device_light_3(hass, zigpy_device_mock, zha_device_joined): return zha_device -@patch("zigpy.zcl.clusters.general.OnOff.read_attributes", new=MagicMock()) async def test_light_refresh(hass, zigpy_device_mock, zha_device_joined_restored): """Test zha light platform refresh.""" # create zigpy devices zigpy_device = zigpy_device_mock(LIGHT_ON_OFF) - zha_device = await zha_device_joined_restored(zigpy_device) on_off_cluster = zigpy_device.endpoints[1].on_off + on_off_cluster.PLUGGED_ATTR_READS = {"on_off": 0} + zha_device = await zha_device_joined_restored(zigpy_device) entity_id = await find_entity_id(DOMAIN, zha_device, hass) # allow traffic to flow through the gateway and device @@ -193,7 +201,7 @@ async def test_light_refresh(hass, zigpy_device_mock, zha_device_joined_restored assert hass.states.get(entity_id).state == STATE_OFF # 1 interval - 1 call - on_off_cluster.read_attributes.return_value = [{"on_off": 1}, {}] + on_off_cluster.PLUGGED_ATTR_READS = {"on_off": 1} async_fire_time_changed(hass, dt_util.utcnow() + timedelta(minutes=80)) await hass.async_block_till_done() assert on_off_cluster.read_attributes.call_count == 1 @@ -201,7 +209,7 @@ async def test_light_refresh(hass, zigpy_device_mock, zha_device_joined_restored assert hass.states.get(entity_id).state == STATE_ON # 2 intervals - 2 calls - on_off_cluster.read_attributes.return_value = [{"on_off": 0}, {}] + on_off_cluster.PLUGGED_ATTR_READS = {"on_off": 0} async_fire_time_changed(hass, dt_util.utcnow() + timedelta(minutes=80)) await hass.async_block_till_done() assert on_off_cluster.read_attributes.call_count == 2 diff --git a/tests/components/zha/test_lock.py b/tests/components/zha/test_lock.py index 72ba0aba9c5..ca9b7961d38 100644 --- a/tests/components/zha/test_lock.py +++ b/tests/components/zha/test_lock.py @@ -11,6 +11,7 @@ from homeassistant.components.lock import DOMAIN from homeassistant.const import STATE_LOCKED, STATE_UNAVAILABLE, STATE_UNLOCKED from .common import async_enable_traffic, find_entity_id, send_attributes_report +from .conftest import SIG_EP_INPUT, SIG_EP_OUTPUT, SIG_EP_TYPE from tests.common import mock_coro @@ -28,9 +29,9 @@ async def lock(hass, zigpy_device_mock, zha_device_joined_restored): zigpy_device = zigpy_device_mock( { 1: { - "in_clusters": [closures.DoorLock.cluster_id, general.Basic.cluster_id], - "out_clusters": [], - "device_type": zigpy.profiles.zha.DeviceType.DOOR_LOCK, + SIG_EP_INPUT: [closures.DoorLock.cluster_id, general.Basic.cluster_id], + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zigpy.profiles.zha.DeviceType.DOOR_LOCK, } }, ) diff --git a/tests/components/zha/test_number.py b/tests/components/zha/test_number.py index 1bb9aa947ff..9623a89a8c2 100644 --- a/tests/components/zha/test_number.py +++ b/tests/components/zha/test_number.py @@ -17,6 +17,7 @@ from .common import ( find_entity_id, send_attributes_report, ) +from .conftest import SIG_EP_INPUT, SIG_EP_OUTPUT, SIG_EP_TYPE from tests.common import mock_coro @@ -27,9 +28,9 @@ def zigpy_analog_output_device(zigpy_device_mock): endpoints = { 1: { - "device_type": zigpy.profiles.zha.DeviceType.LEVEL_CONTROL_SWITCH, - "in_clusters": [general.AnalogOutput.cluster_id, general.Basic.cluster_id], - "out_clusters": [], + SIG_EP_TYPE: zigpy.profiles.zha.DeviceType.LEVEL_CONTROL_SWITCH, + SIG_EP_INPUT: [general.AnalogOutput.cluster_id, general.Basic.cluster_id], + SIG_EP_OUTPUT: [], } } return zigpy_device_mock(endpoints) diff --git a/tests/components/zha/test_sensor.py b/tests/components/zha/test_sensor.py index b6b4b343e3b..ddccb5117d5 100644 --- a/tests/components/zha/test_sensor.py +++ b/tests/components/zha/test_sensor.py @@ -34,6 +34,7 @@ from .common import ( send_attribute_report, send_attributes_report, ) +from .conftest import SIG_EP_INPUT, SIG_EP_OUTPUT, SIG_EP_TYPE async def async_test_humidity(hass, cluster, entity_id): @@ -163,9 +164,9 @@ async def test_sensor( zigpy_device = zigpy_device_mock( { 1: { - "in_clusters": [cluster_id, general.Basic.cluster_id], - "out_cluster": [], - "device_type": zigpy.profiles.zha.DeviceType.ON_OFF_SWITCH, + SIG_EP_INPUT: [cluster_id, general.Basic.cluster_id], + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zigpy.profiles.zha.DeviceType.ON_OFF_SWITCH, } } ) @@ -284,12 +285,12 @@ async def test_temp_uom( zigpy_device = zigpy_device_mock( { 1: { - "in_clusters": [ + SIG_EP_INPUT: [ measurement.TemperatureMeasurement.cluster_id, general.Basic.cluster_id, ], - "out_cluster": [], - "device_type": zigpy.profiles.zha.DeviceType.ON_OFF_SWITCH, + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zigpy.profiles.zha.DeviceType.ON_OFF_SWITCH, } } ) @@ -327,9 +328,9 @@ async def test_electrical_measurement_init( zigpy_device = zigpy_device_mock( { 1: { - "in_clusters": [cluster_id, general.Basic.cluster_id], - "out_cluster": [], - "device_type": zigpy.profiles.zha.DeviceType.ON_OFF_SWITCH, + SIG_EP_INPUT: [cluster_id, general.Basic.cluster_id], + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zigpy.profiles.zha.DeviceType.ON_OFF_SWITCH, } } ) diff --git a/tests/components/zha/test_switch.py b/tests/components/zha/test_switch.py index 4cec0753c68..04f43344b98 100644 --- a/tests/components/zha/test_switch.py +++ b/tests/components/zha/test_switch.py @@ -18,6 +18,7 @@ from .common import ( get_zha_gateway, send_attributes_report, ) +from .conftest import SIG_EP_INPUT, SIG_EP_OUTPUT, SIG_EP_TYPE from tests.common import mock_coro from tests.components.zha.common import async_wait_for_updates @@ -33,9 +34,9 @@ def zigpy_device(zigpy_device_mock): """Device tracker zigpy device.""" endpoints = { 1: { - "in_clusters": [general.Basic.cluster_id, general.OnOff.cluster_id], - "out_clusters": [], - "device_type": zha.DeviceType.ON_OFF_SWITCH, + SIG_EP_INPUT: [general.Basic.cluster_id, general.OnOff.cluster_id], + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zha.DeviceType.ON_OFF_SWITCH, } } return zigpy_device_mock(endpoints) @@ -48,9 +49,9 @@ async def coordinator(hass, zigpy_device_mock, zha_device_joined): zigpy_device = zigpy_device_mock( { 1: { - "in_clusters": [], - "out_clusters": [], - "device_type": zha.DeviceType.COLOR_DIMMABLE_LIGHT, + SIG_EP_INPUT: [], + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zha.DeviceType.COLOR_DIMMABLE_LIGHT, } }, ieee="00:15:8d:00:02:32:4f:32", @@ -69,9 +70,9 @@ async def device_switch_1(hass, zigpy_device_mock, zha_device_joined): zigpy_device = zigpy_device_mock( { 1: { - "in_clusters": [general.OnOff.cluster_id, general.Groups.cluster_id], - "out_clusters": [], - "device_type": zha.DeviceType.ON_OFF_SWITCH, + SIG_EP_INPUT: [general.OnOff.cluster_id, general.Groups.cluster_id], + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zha.DeviceType.ON_OFF_SWITCH, } }, ieee=IEEE_GROUPABLE_DEVICE, @@ -89,9 +90,9 @@ async def device_switch_2(hass, zigpy_device_mock, zha_device_joined): zigpy_device = zigpy_device_mock( { 1: { - "in_clusters": [general.OnOff.cluster_id, general.Groups.cluster_id], - "out_clusters": [], - "device_type": zha.DeviceType.ON_OFF_SWITCH, + SIG_EP_INPUT: [general.OnOff.cluster_id, general.Groups.cluster_id], + SIG_EP_OUTPUT: [], + SIG_EP_TYPE: zha.DeviceType.ON_OFF_SWITCH, } }, ieee=IEEE_GROUPABLE_DEVICE2, diff --git a/tests/components/zha/zha_devices_list.py b/tests/components/zha/zha_devices_list.py index 004be25d21f..30780bcaa86 100644 --- a/tests/components/zha/zha_devices_list.py +++ b/tests/components/zha/zha_devices_list.py @@ -1,1022 +1,1051 @@ """Example Zigbee Devices.""" +from zigpy.const import ( + SIG_ENDPOINTS, + SIG_EP_INPUT, + SIG_EP_OUTPUT, + SIG_EP_PROFILE, + SIG_EP_TYPE, + SIG_MANUFACTURER, + SIG_MODEL, + SIG_NODE_DESC, +) + +DEV_SIG_CHANNELS = "channels" +DEV_SIG_DEV_NO = "device_no" +DEV_SIG_ENTITIES = "entities" +DEV_SIG_ENT_MAP = "entity_map" +DEV_SIG_ENT_MAP_CLASS = "entity_class" +DEV_SIG_ENT_MAP_ID = "entity_id" +DEV_SIG_EP_ID = "endpoint_id" +DEV_SIG_EVT_CHANNELS = "event_channels" +DEV_SIG_ZHA_QUIRK = "zha_quirk" + DEVICES = [ { - "device_no": 0, - "endpoints": { + DEV_SIG_DEV_NO: 0, + SIG_ENDPOINTS: { 1: { - "device_type": 2080, - "endpoint_id": 1, - "in_clusters": [0, 3, 4096, 64716], - "out_clusters": [3, 4, 6, 8, 4096, 64716], - "profile_id": 260, + SIG_EP_TYPE: 2080, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4096, 64716], + SIG_EP_OUTPUT: [3, 4, 6, 8, 4096, 64716], + SIG_EP_PROFILE: 260, } }, - "entities": [], - "entity_map": {}, - "event_channels": ["1:0x0006", "1:0x0008"], - "manufacturer": "ADUROLIGHT", - "model": "Adurolight_NCC", - "node_descriptor": b"\x02@\x807\x10\x7fd\x00\x00*d\x00\x00", - "zha_quirks": "AdurolightNCC", + DEV_SIG_ENTITIES: [], + DEV_SIG_ENT_MAP: {}, + DEV_SIG_EVT_CHANNELS: ["1:0x0006", "1:0x0008"], + SIG_MANUFACTURER: "ADUROLIGHT", + SIG_MODEL: "Adurolight_NCC", + SIG_NODE_DESC: b"\x02@\x807\x10\x7fd\x00\x00*d\x00\x00", + DEV_SIG_ZHA_QUIRK: "AdurolightNCC", }, { - "device_no": 1, - "endpoints": { + DEV_SIG_DEV_NO: 1, + SIG_ENDPOINTS: { 5: { - "device_type": 1026, - "endpoint_id": 5, - "in_clusters": [0, 1, 3, 32, 1026, 1280, 2821], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 1026, + DEV_SIG_EP_ID: 5, + SIG_EP_INPUT: [0, 1, 3, 32, 1026, 1280, 2821], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.bosch_isw_zpr1_wp13_77665544_ias_zone", "sensor.bosch_isw_zpr1_wp13_77665544_power", "sensor.bosch_isw_zpr1_wp13_77665544_temperature", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-5-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.bosch_isw_zpr1_wp13_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.bosch_isw_zpr1_wp13_77665544_power", }, ("sensor", "00:11:22:33:44:55:66:77-5-1026"): { - "channels": ["temperature"], - "entity_class": "Temperature", - "entity_id": "sensor.bosch_isw_zpr1_wp13_77665544_temperature", + DEV_SIG_CHANNELS: ["temperature"], + DEV_SIG_ENT_MAP_CLASS: "Temperature", + DEV_SIG_ENT_MAP_ID: "sensor.bosch_isw_zpr1_wp13_77665544_temperature", }, ("binary_sensor", "00:11:22:33:44:55:66:77-5-1280"): { - "channels": ["ias_zone"], - "entity_class": "IASZone", - "entity_id": "binary_sensor.bosch_isw_zpr1_wp13_77665544_ias_zone", + DEV_SIG_CHANNELS: ["ias_zone"], + DEV_SIG_ENT_MAP_CLASS: "IASZone", + DEV_SIG_ENT_MAP_ID: "binary_sensor.bosch_isw_zpr1_wp13_77665544_ias_zone", }, }, - "event_channels": ["5:0x0019"], - "manufacturer": "Bosch", - "model": "ISW-ZPR1-WP13", - "node_descriptor": b"\x02@\x08\x00\x00l\x00\x00\x00\x00\x00\x00\x00", + DEV_SIG_EVT_CHANNELS: ["5:0x0019"], + SIG_MANUFACTURER: "Bosch", + SIG_MODEL: "ISW-ZPR1-WP13", + SIG_NODE_DESC: b"\x02@\x08\x00\x00l\x00\x00\x00\x00\x00\x00\x00", }, { - "device_no": 2, - "endpoints": { + DEV_SIG_DEV_NO: 2, + SIG_ENDPOINTS: { 1: { - "device_type": 1, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 32, 2821], - "out_clusters": [3, 6, 8, 25], - "profile_id": 260, + SIG_EP_TYPE: 1, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 32, 2821], + SIG_EP_OUTPUT: [3, 6, 8, 25], + SIG_EP_PROFILE: 260, } }, - "entities": ["sensor.centralite_3130_77665544_power"], - "entity_map": { + DEV_SIG_ENTITIES: ["sensor.centralite_3130_77665544_power"], + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.centralite_3130_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.centralite_3130_77665544_power", } }, - "event_channels": ["1:0x0006", "1:0x0008", "1:0x0019"], - "manufacturer": "CentraLite", - "model": "3130", - "node_descriptor": b"\x02@\x80N\x10RR\x00\x00\x00R\x00\x00", - "zha_quirks": "CentraLite3130", + DEV_SIG_EVT_CHANNELS: ["1:0x0006", "1:0x0008", "1:0x0019"], + SIG_MANUFACTURER: "CentraLite", + SIG_MODEL: "3130", + SIG_NODE_DESC: b"\x02@\x80N\x10RR\x00\x00\x00R\x00\x00", + DEV_SIG_ZHA_QUIRK: "CentraLite3130", }, { - "device_no": 3, - "endpoints": { + DEV_SIG_DEV_NO: 3, + SIG_ENDPOINTS: { 1: { - "device_type": 81, - "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 6, 1794, 2820, 2821, 64515], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 81, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 1794, 2820, 2821, 64515], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "sensor.centralite_3210_l_77665544_electrical_measurement", "sensor.centralite_3210_l_77665544_smartenergy_metering", "switch.centralite_3210_l_77665544_on_off", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("switch", "00:11:22:33:44:55:66:77-1"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.centralite_3210_l_77665544_on_off", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.centralite_3210_l_77665544_on_off", }, ("sensor", "00:11:22:33:44:55:66:77-1-1794"): { - "channels": ["smartenergy_metering"], - "entity_class": "SmartEnergyMetering", - "entity_id": "sensor.centralite_3210_l_77665544_smartenergy_metering", + DEV_SIG_CHANNELS: ["smartenergy_metering"], + DEV_SIG_ENT_MAP_CLASS: "SmartEnergyMetering", + DEV_SIG_ENT_MAP_ID: "sensor.centralite_3210_l_77665544_smartenergy_metering", }, ("sensor", "00:11:22:33:44:55:66:77-1-2820"): { - "channels": ["electrical_measurement"], - "entity_class": "ElectricalMeasurement", - "entity_id": "sensor.centralite_3210_l_77665544_electrical_measurement", + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurement", + DEV_SIG_ENT_MAP_ID: "sensor.centralite_3210_l_77665544_electrical_measurement", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "CentraLite", - "model": "3210-L", - "node_descriptor": b"\x01@\x8eN\x10RR\x00\x00\x00R\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "CentraLite", + SIG_MODEL: "3210-L", + SIG_NODE_DESC: b"\x01@\x8eN\x10RR\x00\x00\x00R\x00\x00", }, { - "device_no": 4, - "endpoints": { + DEV_SIG_DEV_NO: 4, + SIG_ENDPOINTS: { 1: { - "device_type": 770, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 32, 1026, 2821, 64581], - "out_clusters": [3, 25], - "profile_id": 260, + SIG_EP_TYPE: 770, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 32, 1026, 2821, 64581], + SIG_EP_OUTPUT: [3, 25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "sensor.centralite_3310_s_77665544_manufacturer_specific", "sensor.centralite_3310_s_77665544_power", "sensor.centralite_3310_s_77665544_temperature", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.centralite_3310_s_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.centralite_3310_s_77665544_power", }, ("sensor", "00:11:22:33:44:55:66:77-1-1026"): { - "channels": ["temperature"], - "entity_class": "Temperature", - "entity_id": "sensor.centralite_3310_s_77665544_temperature", + DEV_SIG_CHANNELS: ["temperature"], + DEV_SIG_ENT_MAP_CLASS: "Temperature", + DEV_SIG_ENT_MAP_ID: "sensor.centralite_3310_s_77665544_temperature", }, ("sensor", "00:11:22:33:44:55:66:77-1-64581"): { - "channels": ["manufacturer_specific"], - "entity_class": "Humidity", - "entity_id": "sensor.centralite_3310_s_77665544_manufacturer_specific", + DEV_SIG_CHANNELS: ["manufacturer_specific"], + DEV_SIG_ENT_MAP_CLASS: "Humidity", + DEV_SIG_ENT_MAP_ID: "sensor.centralite_3310_s_77665544_manufacturer_specific", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "CentraLite", - "model": "3310-S", - "node_descriptor": b"\x02@\x80\xdf\xc2RR\x00\x00\x00R\x00\x00", - "zha_quirks": "CentraLite3310S", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "CentraLite", + SIG_MODEL: "3310-S", + SIG_NODE_DESC: b"\x02@\x80\xdf\xc2RR\x00\x00\x00R\x00\x00", + DEV_SIG_ZHA_QUIRK: "CentraLite3310S", }, { - "device_no": 5, - "endpoints": { + DEV_SIG_DEV_NO: 5, + SIG_ENDPOINTS: { 1: { - "device_type": 1026, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 32, 1026, 1280, 2821], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 1026, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 32, 1026, 1280, 2821], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, }, 2: { - "device_type": 12, - "endpoint_id": 2, - "in_clusters": [0, 3, 2821, 64527], - "out_clusters": [3], - "profile_id": 49887, + SIG_EP_TYPE: 12, + DEV_SIG_EP_ID: 2, + SIG_EP_INPUT: [0, 3, 2821, 64527], + SIG_EP_OUTPUT: [3], + SIG_EP_PROFILE: 49887, }, }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.centralite_3315_s_77665544_ias_zone", "sensor.centralite_3315_s_77665544_power", "sensor.centralite_3315_s_77665544_temperature", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.centralite_3315_s_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.centralite_3315_s_77665544_power", }, ("sensor", "00:11:22:33:44:55:66:77-1-1026"): { - "channels": ["temperature"], - "entity_class": "Temperature", - "entity_id": "sensor.centralite_3315_s_77665544_temperature", + DEV_SIG_CHANNELS: ["temperature"], + DEV_SIG_ENT_MAP_CLASS: "Temperature", + DEV_SIG_ENT_MAP_ID: "sensor.centralite_3315_s_77665544_temperature", }, ("binary_sensor", "00:11:22:33:44:55:66:77-1-1280"): { - "channels": ["ias_zone"], - "entity_class": "IASZone", - "entity_id": "binary_sensor.centralite_3315_s_77665544_ias_zone", + DEV_SIG_CHANNELS: ["ias_zone"], + DEV_SIG_ENT_MAP_CLASS: "IASZone", + DEV_SIG_ENT_MAP_ID: "binary_sensor.centralite_3315_s_77665544_ias_zone", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "CentraLite", - "model": "3315-S", - "node_descriptor": b"\x02@\x80\xdf\xc2RR\x00\x00\x00R\x00\x00", - "zha_quirks": "CentraLiteIASSensor", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "CentraLite", + SIG_MODEL: "3315-S", + SIG_NODE_DESC: b"\x02@\x80\xdf\xc2RR\x00\x00\x00R\x00\x00", + DEV_SIG_ZHA_QUIRK: "CentraLiteIASSensor", }, { - "device_no": 6, - "endpoints": { + DEV_SIG_DEV_NO: 6, + SIG_ENDPOINTS: { 1: { - "device_type": 1026, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 32, 1026, 1280, 2821], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 1026, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 32, 1026, 1280, 2821], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, }, 2: { - "device_type": 12, - "endpoint_id": 2, - "in_clusters": [0, 3, 2821, 64527], - "out_clusters": [3], - "profile_id": 49887, + SIG_EP_TYPE: 12, + DEV_SIG_EP_ID: 2, + SIG_EP_INPUT: [0, 3, 2821, 64527], + SIG_EP_OUTPUT: [3], + SIG_EP_PROFILE: 49887, }, }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.centralite_3320_l_77665544_ias_zone", "sensor.centralite_3320_l_77665544_power", "sensor.centralite_3320_l_77665544_temperature", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.centralite_3320_l_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.centralite_3320_l_77665544_power", }, ("sensor", "00:11:22:33:44:55:66:77-1-1026"): { - "channels": ["temperature"], - "entity_class": "Temperature", - "entity_id": "sensor.centralite_3320_l_77665544_temperature", + DEV_SIG_CHANNELS: ["temperature"], + DEV_SIG_ENT_MAP_CLASS: "Temperature", + DEV_SIG_ENT_MAP_ID: "sensor.centralite_3320_l_77665544_temperature", }, ("binary_sensor", "00:11:22:33:44:55:66:77-1-1280"): { - "channels": ["ias_zone"], - "entity_class": "IASZone", - "entity_id": "binary_sensor.centralite_3320_l_77665544_ias_zone", + DEV_SIG_CHANNELS: ["ias_zone"], + DEV_SIG_ENT_MAP_CLASS: "IASZone", + DEV_SIG_ENT_MAP_ID: "binary_sensor.centralite_3320_l_77665544_ias_zone", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "CentraLite", - "model": "3320-L", - "node_descriptor": b"\x02@\x80\xdf\xc2RR\x00\x00\x00R\x00\x00", - "zha_quirks": "CentraLiteIASSensor", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "CentraLite", + SIG_MODEL: "3320-L", + SIG_NODE_DESC: b"\x02@\x80\xdf\xc2RR\x00\x00\x00R\x00\x00", + DEV_SIG_ZHA_QUIRK: "CentraLiteIASSensor", }, { - "device_no": 7, - "endpoints": { + DEV_SIG_DEV_NO: 7, + SIG_ENDPOINTS: { 1: { - "device_type": 1026, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 32, 1026, 1280, 2821], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 1026, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 32, 1026, 1280, 2821], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, }, 2: { - "device_type": 263, - "endpoint_id": 2, - "in_clusters": [0, 3, 2821, 64582], - "out_clusters": [3], - "profile_id": 49887, + SIG_EP_TYPE: 263, + DEV_SIG_EP_ID: 2, + SIG_EP_INPUT: [0, 3, 2821, 64582], + SIG_EP_OUTPUT: [3], + SIG_EP_PROFILE: 49887, }, }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.centralite_3326_l_77665544_ias_zone", "sensor.centralite_3326_l_77665544_power", "sensor.centralite_3326_l_77665544_temperature", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.centralite_3326_l_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.centralite_3326_l_77665544_power", }, ("sensor", "00:11:22:33:44:55:66:77-1-1026"): { - "channels": ["temperature"], - "entity_class": "Temperature", - "entity_id": "sensor.centralite_3326_l_77665544_temperature", + DEV_SIG_CHANNELS: ["temperature"], + DEV_SIG_ENT_MAP_CLASS: "Temperature", + DEV_SIG_ENT_MAP_ID: "sensor.centralite_3326_l_77665544_temperature", }, ("binary_sensor", "00:11:22:33:44:55:66:77-1-1280"): { - "channels": ["ias_zone"], - "entity_class": "IASZone", - "entity_id": "binary_sensor.centralite_3326_l_77665544_ias_zone", + DEV_SIG_CHANNELS: ["ias_zone"], + DEV_SIG_ENT_MAP_CLASS: "IASZone", + DEV_SIG_ENT_MAP_ID: "binary_sensor.centralite_3326_l_77665544_ias_zone", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "CentraLite", - "model": "3326-L", - "node_descriptor": b"\x02@\x80\xdf\xc2RR\x00\x00\x00R\x00\x00", - "zha_quirks": "CentraLiteMotionSensor", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "CentraLite", + SIG_MODEL: "3326-L", + SIG_NODE_DESC: b"\x02@\x80\xdf\xc2RR\x00\x00\x00R\x00\x00", + DEV_SIG_ZHA_QUIRK: "CentraLiteMotionSensor", }, { - "device_no": 8, - "endpoints": { + DEV_SIG_DEV_NO: 8, + SIG_ENDPOINTS: { 1: { - "device_type": 1026, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 32, 1026, 1280, 2821], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 1026, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 32, 1026, 1280, 2821], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, }, 2: { - "device_type": 263, - "endpoint_id": 2, - "in_clusters": [0, 3, 1030, 2821], - "out_clusters": [3], - "profile_id": 260, + SIG_EP_TYPE: 263, + DEV_SIG_EP_ID: 2, + SIG_EP_INPUT: [0, 3, 1030, 2821], + SIG_EP_OUTPUT: [3], + SIG_EP_PROFILE: 260, }, }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.centralite_motion_sensor_a_77665544_ias_zone", "binary_sensor.centralite_motion_sensor_a_77665544_occupancy", "sensor.centralite_motion_sensor_a_77665544_power", "sensor.centralite_motion_sensor_a_77665544_temperature", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.centralite_motion_sensor_a_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.centralite_motion_sensor_a_77665544_power", }, ("sensor", "00:11:22:33:44:55:66:77-1-1026"): { - "channels": ["temperature"], - "entity_class": "Temperature", - "entity_id": "sensor.centralite_motion_sensor_a_77665544_temperature", + DEV_SIG_CHANNELS: ["temperature"], + DEV_SIG_ENT_MAP_CLASS: "Temperature", + DEV_SIG_ENT_MAP_ID: "sensor.centralite_motion_sensor_a_77665544_temperature", }, ("binary_sensor", "00:11:22:33:44:55:66:77-1-1280"): { - "channels": ["ias_zone"], - "entity_class": "IASZone", - "entity_id": "binary_sensor.centralite_motion_sensor_a_77665544_ias_zone", + DEV_SIG_CHANNELS: ["ias_zone"], + DEV_SIG_ENT_MAP_CLASS: "IASZone", + DEV_SIG_ENT_MAP_ID: "binary_sensor.centralite_motion_sensor_a_77665544_ias_zone", }, ("binary_sensor", "00:11:22:33:44:55:66:77-2-1030"): { - "channels": ["occupancy"], - "entity_class": "Occupancy", - "entity_id": "binary_sensor.centralite_motion_sensor_a_77665544_occupancy", + DEV_SIG_CHANNELS: ["occupancy"], + DEV_SIG_ENT_MAP_CLASS: "Occupancy", + DEV_SIG_ENT_MAP_ID: "binary_sensor.centralite_motion_sensor_a_77665544_occupancy", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "CentraLite", - "model": "Motion Sensor-A", - "node_descriptor": b"\x02@\x80N\x10RR\x00\x00\x00R\x00\x00", - "zha_quirks": "CentraLite3305S", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "CentraLite", + SIG_MODEL: "Motion Sensor-A", + SIG_NODE_DESC: b"\x02@\x80N\x10RR\x00\x00\x00R\x00\x00", + DEV_SIG_ZHA_QUIRK: "CentraLite3305S", }, { - "device_no": 9, - "endpoints": { + DEV_SIG_DEV_NO: 9, + SIG_ENDPOINTS: { 1: { - "device_type": 81, - "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 6, 1794], - "out_clusters": [0], - "profile_id": 260, + SIG_EP_TYPE: 81, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 1794], + SIG_EP_OUTPUT: [0], + SIG_EP_PROFILE: 260, }, 4: { - "device_type": 9, - "endpoint_id": 4, - "in_clusters": [], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 9, + DEV_SIG_EP_ID: 4, + SIG_EP_INPUT: [], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, }, }, - "entities": [ + DEV_SIG_ENTITIES: [ "sensor.climaxtechnology_psmp5_00_00_02_02tc_77665544_smartenergy_metering", "switch.climaxtechnology_psmp5_00_00_02_02tc_77665544_on_off", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("switch", "00:11:22:33:44:55:66:77-1"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.climaxtechnology_psmp5_00_00_02_02tc_77665544_on_off", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.climaxtechnology_psmp5_00_00_02_02tc_77665544_on_off", }, ("sensor", "00:11:22:33:44:55:66:77-1-1794"): { - "channels": ["smartenergy_metering"], - "entity_class": "SmartEnergyMetering", - "entity_id": "sensor.climaxtechnology_psmp5_00_00_02_02tc_77665544_smartenergy_metering", + DEV_SIG_CHANNELS: ["smartenergy_metering"], + DEV_SIG_ENT_MAP_CLASS: "SmartEnergyMetering", + DEV_SIG_ENT_MAP_ID: "sensor.climaxtechnology_psmp5_00_00_02_02tc_77665544_smartenergy_metering", }, }, - "event_channels": ["4:0x0019"], - "manufacturer": "ClimaxTechnology", - "model": "PSMP5_00.00.02.02TC", - "node_descriptor": b"\x01@\x8e\x00\x00P\xa0\x00\x00\x00\xa0\x00\x00", + DEV_SIG_EVT_CHANNELS: ["4:0x0019"], + SIG_MANUFACTURER: "ClimaxTechnology", + SIG_MODEL: "PSMP5_00.00.02.02TC", + SIG_NODE_DESC: b"\x01@\x8e\x00\x00P\xa0\x00\x00\x00\xa0\x00\x00", }, { - "device_no": 10, - "endpoints": { + DEV_SIG_DEV_NO: 10, + SIG_ENDPOINTS: { 1: { - "device_type": 1026, - "endpoint_id": 1, - "in_clusters": [0, 3, 1280, 1282], - "out_clusters": [0], - "profile_id": 260, + SIG_EP_TYPE: 1026, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 1280, 1282], + SIG_EP_OUTPUT: [0], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.climaxtechnology_sd8sc_00_00_03_12tc_77665544_ias_zone" ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("binary_sensor", "00:11:22:33:44:55:66:77-1-1280"): { - "channels": ["ias_zone"], - "entity_class": "IASZone", - "entity_id": "binary_sensor.climaxtechnology_sd8sc_00_00_03_12tc_77665544_ias_zone", + DEV_SIG_CHANNELS: ["ias_zone"], + DEV_SIG_ENT_MAP_CLASS: "IASZone", + DEV_SIG_ENT_MAP_ID: "binary_sensor.climaxtechnology_sd8sc_00_00_03_12tc_77665544_ias_zone", } }, - "event_channels": [], - "manufacturer": "ClimaxTechnology", - "model": "SD8SC_00.00.03.12TC", - "node_descriptor": b"\x02@\x80\x00\x00P\xa0\x00\x00\x00\xa0\x00\x00", + DEV_SIG_EVT_CHANNELS: [], + SIG_MANUFACTURER: "ClimaxTechnology", + SIG_MODEL: "SD8SC_00.00.03.12TC", + SIG_NODE_DESC: b"\x02@\x80\x00\x00P\xa0\x00\x00\x00\xa0\x00\x00", }, { - "device_no": 11, - "endpoints": { + DEV_SIG_DEV_NO: 11, + SIG_ENDPOINTS: { 1: { - "device_type": 1026, - "endpoint_id": 1, - "in_clusters": [0, 3, 1280], - "out_clusters": [0], - "profile_id": 260, + SIG_EP_TYPE: 1026, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 1280], + SIG_EP_OUTPUT: [0], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.climaxtechnology_ws15_00_00_03_03tc_77665544_ias_zone" ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("binary_sensor", "00:11:22:33:44:55:66:77-1-1280"): { - "channels": ["ias_zone"], - "entity_class": "IASZone", - "entity_id": "binary_sensor.climaxtechnology_ws15_00_00_03_03tc_77665544_ias_zone", + DEV_SIG_CHANNELS: ["ias_zone"], + DEV_SIG_ENT_MAP_CLASS: "IASZone", + DEV_SIG_ENT_MAP_ID: "binary_sensor.climaxtechnology_ws15_00_00_03_03tc_77665544_ias_zone", } }, - "event_channels": [], - "manufacturer": "ClimaxTechnology", - "model": "WS15_00.00.03.03TC", - "node_descriptor": b"\x02@\x80\x00\x00P\xa0\x00\x00\x00\xa0\x00\x00", + DEV_SIG_EVT_CHANNELS: [], + SIG_MANUFACTURER: "ClimaxTechnology", + SIG_MODEL: "WS15_00.00.03.03TC", + SIG_NODE_DESC: b"\x02@\x80\x00\x00P\xa0\x00\x00\x00\xa0\x00\x00", }, { - "device_no": 12, - "endpoints": { + DEV_SIG_DEV_NO: 12, + SIG_ENDPOINTS: { 11: { - "device_type": 528, - "endpoint_id": 11, - "in_clusters": [0, 3, 4, 5, 6, 8, 768], - "out_clusters": [], - "profile_id": 49246, + SIG_EP_TYPE: 528, + DEV_SIG_EP_ID: 11, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 8, 768], + SIG_EP_OUTPUT: [], + SIG_EP_PROFILE: 49246, }, 13: { - "device_type": 57694, - "endpoint_id": 13, - "in_clusters": [4096], - "out_clusters": [4096], - "profile_id": 49246, + SIG_EP_TYPE: 57694, + DEV_SIG_EP_ID: 13, + SIG_EP_INPUT: [4096], + SIG_EP_OUTPUT: [4096], + SIG_EP_PROFILE: 49246, }, }, - "entities": [ + DEV_SIG_ENTITIES: [ "light.feibit_inc_co_fb56_zcw08ku1_1_77665544_level_light_color_on_off" ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("light", "00:11:22:33:44:55:66:77-11"): { - "channels": ["level", "light_color", "on_off"], - "entity_class": "Light", - "entity_id": "light.feibit_inc_co_fb56_zcw08ku1_1_77665544_level_light_color_on_off", + DEV_SIG_CHANNELS: ["level", "light_color", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.feibit_inc_co_fb56_zcw08ku1_1_77665544_level_light_color_on_off", } }, - "event_channels": [], - "manufacturer": "Feibit Inc co.", - "model": "FB56-ZCW08KU1.1", - "node_descriptor": b"\x01@\x8e\x00\x00P\xa0\x00\x00\x00\xa0\x00\x00", + DEV_SIG_EVT_CHANNELS: [], + SIG_MANUFACTURER: "Feibit Inc co.", + SIG_MODEL: "FB56-ZCW08KU1.1", + SIG_NODE_DESC: b"\x01@\x8e\x00\x00P\xa0\x00\x00\x00\xa0\x00\x00", }, { - "device_no": 13, - "endpoints": { + DEV_SIG_DEV_NO: 13, + SIG_ENDPOINTS: { 1: { - "device_type": 1026, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 1280, 1282], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 1026, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 1280, 1282], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.heiman_smokesensor_em_77665544_ias_zone", "sensor.heiman_smokesensor_em_77665544_power", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.heiman_smokesensor_em_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.heiman_smokesensor_em_77665544_power", }, ("binary_sensor", "00:11:22:33:44:55:66:77-1-1280"): { - "channels": ["ias_zone"], - "entity_class": "IASZone", - "entity_id": "binary_sensor.heiman_smokesensor_em_77665544_ias_zone", + DEV_SIG_CHANNELS: ["ias_zone"], + DEV_SIG_ENT_MAP_CLASS: "IASZone", + DEV_SIG_ENT_MAP_ID: "binary_sensor.heiman_smokesensor_em_77665544_ias_zone", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "HEIMAN", - "model": "SmokeSensor-EM", - "node_descriptor": b"\x02@\x80\x0b\x12RR\x00\x00\x00R\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "HEIMAN", + SIG_MODEL: "SmokeSensor-EM", + SIG_NODE_DESC: b"\x02@\x80\x0b\x12RR\x00\x00\x00R\x00\x00", }, { - "device_no": 14, - "endpoints": { + DEV_SIG_DEV_NO: 14, + SIG_ENDPOINTS: { 1: { - "device_type": 1026, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 9, 1280], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 1026, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 9, 1280], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, } }, - "entities": ["binary_sensor.heiman_co_v16_77665544_ias_zone"], - "entity_map": { + DEV_SIG_ENTITIES: ["binary_sensor.heiman_co_v16_77665544_ias_zone"], + DEV_SIG_ENT_MAP: { ("binary_sensor", "00:11:22:33:44:55:66:77-1-1280"): { - "channels": ["ias_zone"], - "entity_class": "IASZone", - "entity_id": "binary_sensor.heiman_co_v16_77665544_ias_zone", + DEV_SIG_CHANNELS: ["ias_zone"], + DEV_SIG_ENT_MAP_CLASS: "IASZone", + DEV_SIG_ENT_MAP_ID: "binary_sensor.heiman_co_v16_77665544_ias_zone", } }, - "event_channels": ["1:0x0019"], - "manufacturer": "Heiman", - "model": "CO_V16", - "node_descriptor": b"\x02@\x84\xaa\xbb@\x00\x00\x00\x00\x00\x00\x03", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "Heiman", + SIG_MODEL: "CO_V16", + SIG_NODE_DESC: b"\x02@\x84\xaa\xbb@\x00\x00\x00\x00\x00\x00\x03", }, { - "device_no": 15, - "endpoints": { + DEV_SIG_DEV_NO: 15, + SIG_ENDPOINTS: { 1: { - "device_type": 1027, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 4, 9, 1280, 1282], - "out_clusters": [3, 25], - "profile_id": 260, + SIG_EP_TYPE: 1027, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 4, 9, 1280, 1282], + SIG_EP_OUTPUT: [3, 25], + SIG_EP_PROFILE: 260, } }, - "entities": ["binary_sensor.heiman_warningdevice_77665544_ias_zone"], - "entity_map": { + DEV_SIG_ENTITIES: ["binary_sensor.heiman_warningdevice_77665544_ias_zone"], + DEV_SIG_ENT_MAP: { ("binary_sensor", "00:11:22:33:44:55:66:77-1-1280"): { - "channels": ["ias_zone"], - "entity_class": "IASZone", - "entity_id": "binary_sensor.heiman_warningdevice_77665544_ias_zone", + DEV_SIG_CHANNELS: ["ias_zone"], + DEV_SIG_ENT_MAP_CLASS: "IASZone", + DEV_SIG_ENT_MAP_ID: "binary_sensor.heiman_warningdevice_77665544_ias_zone", } }, - "event_channels": ["1:0x0019"], - "manufacturer": "Heiman", - "model": "WarningDevice", - "node_descriptor": b"\x01@\x8e\x0b\x12RR\x00\x00\x00R\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "Heiman", + SIG_MODEL: "WarningDevice", + SIG_NODE_DESC: b"\x01@\x8e\x0b\x12RR\x00\x00\x00R\x00\x00", }, { - "device_no": 16, - "endpoints": { + DEV_SIG_DEV_NO: 16, + SIG_ENDPOINTS: { 6: { - "device_type": 1026, - "endpoint_id": 6, - "in_clusters": [0, 1, 3, 32, 1024, 1026, 1280], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 1026, + DEV_SIG_EP_ID: 6, + SIG_EP_INPUT: [0, 1, 3, 32, 1024, 1026, 1280], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.hivehome_com_mot003_77665544_ias_zone", "sensor.hivehome_com_mot003_77665544_illuminance", "sensor.hivehome_com_mot003_77665544_power", "sensor.hivehome_com_mot003_77665544_temperature", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-6-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.hivehome_com_mot003_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.hivehome_com_mot003_77665544_power", }, ("sensor", "00:11:22:33:44:55:66:77-6-1024"): { - "channels": ["illuminance"], - "entity_class": "Illuminance", - "entity_id": "sensor.hivehome_com_mot003_77665544_illuminance", + DEV_SIG_CHANNELS: ["illuminance"], + DEV_SIG_ENT_MAP_CLASS: "Illuminance", + DEV_SIG_ENT_MAP_ID: "sensor.hivehome_com_mot003_77665544_illuminance", }, ("sensor", "00:11:22:33:44:55:66:77-6-1026"): { - "channels": ["temperature"], - "entity_class": "Temperature", - "entity_id": "sensor.hivehome_com_mot003_77665544_temperature", + DEV_SIG_CHANNELS: ["temperature"], + DEV_SIG_ENT_MAP_CLASS: "Temperature", + DEV_SIG_ENT_MAP_ID: "sensor.hivehome_com_mot003_77665544_temperature", }, ("binary_sensor", "00:11:22:33:44:55:66:77-6-1280"): { - "channels": ["ias_zone"], - "entity_class": "IASZone", - "entity_id": "binary_sensor.hivehome_com_mot003_77665544_ias_zone", + DEV_SIG_CHANNELS: ["ias_zone"], + DEV_SIG_ENT_MAP_CLASS: "IASZone", + DEV_SIG_ENT_MAP_ID: "binary_sensor.hivehome_com_mot003_77665544_ias_zone", }, }, - "event_channels": ["6:0x0019"], - "manufacturer": "HiveHome.com", - "model": "MOT003", - "node_descriptor": b"\x02@\x809\x10PP\x00\x00\x00P\x00\x00", - "zha_quirks": "MOT003", + DEV_SIG_EVT_CHANNELS: ["6:0x0019"], + SIG_MANUFACTURER: "HiveHome.com", + SIG_MODEL: "MOT003", + SIG_NODE_DESC: b"\x02@\x809\x10PP\x00\x00\x00P\x00\x00", + DEV_SIG_ZHA_QUIRK: "MOT003", }, { - "device_no": 17, - "endpoints": { + DEV_SIG_DEV_NO: 17, + SIG_ENDPOINTS: { 1: { - "device_type": 268, - "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 6, 8, 768, 4096, 64636], - "out_clusters": [5, 25, 32, 4096], - "profile_id": 260, + SIG_EP_TYPE: 268, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 8, 768, 4096, 64636], + SIG_EP_OUTPUT: [5, 25, 32, 4096], + SIG_EP_PROFILE: 260, }, 242: { - "device_type": 97, - "endpoint_id": 242, - "in_clusters": [33], - "out_clusters": [33], - "profile_id": 41440, + SIG_EP_TYPE: 97, + DEV_SIG_EP_ID: 242, + SIG_EP_INPUT: [33], + SIG_EP_OUTPUT: [33], + SIG_EP_PROFILE: 41440, }, }, - "entities": [ + DEV_SIG_ENTITIES: [ "light.ikea_of_sweden_tradfri_bulb_e12_ws_opal_600lm_77665544_level_light_color_on_off" ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("light", "00:11:22:33:44:55:66:77-1"): { - "channels": ["level", "light_color", "on_off"], - "entity_class": "Light", - "entity_id": "light.ikea_of_sweden_tradfri_bulb_e12_ws_opal_600lm_77665544_level_light_color_on_off", + DEV_SIG_CHANNELS: ["level", "light_color", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.ikea_of_sweden_tradfri_bulb_e12_ws_opal_600lm_77665544_level_light_color_on_off", } }, - "event_channels": ["1:0x0005", "1:0x0019"], - "manufacturer": "IKEA of Sweden", - "model": "TRADFRI bulb E12 WS opal 600lm", - "node_descriptor": b"\x01@\x8e|\x11RR\x00\x00,R\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0005", "1:0x0019"], + SIG_MANUFACTURER: "IKEA of Sweden", + SIG_MODEL: "TRADFRI bulb E12 WS opal 600lm", + SIG_NODE_DESC: b"\x01@\x8e|\x11RR\x00\x00,R\x00\x00", }, { - "device_no": 18, - "endpoints": { + DEV_SIG_DEV_NO: 18, + SIG_ENDPOINTS: { 1: { - "device_type": 512, - "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 6, 8, 768, 2821, 4096], - "out_clusters": [5, 25, 32, 4096], - "profile_id": 49246, + SIG_EP_TYPE: 512, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 8, 768, 2821, 4096], + SIG_EP_OUTPUT: [5, 25, 32, 4096], + SIG_EP_PROFILE: 49246, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "light.ikea_of_sweden_tradfri_bulb_e26_cws_opal_600lm_77665544_level_light_color_on_off" ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("light", "00:11:22:33:44:55:66:77-1"): { - "channels": ["level", "light_color", "on_off"], - "entity_class": "Light", - "entity_id": "light.ikea_of_sweden_tradfri_bulb_e26_cws_opal_600lm_77665544_level_light_color_on_off", + DEV_SIG_CHANNELS: ["level", "light_color", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.ikea_of_sweden_tradfri_bulb_e26_cws_opal_600lm_77665544_level_light_color_on_off", } }, - "event_channels": ["1:0x0005", "1:0x0019"], - "manufacturer": "IKEA of Sweden", - "model": "TRADFRI bulb E26 CWS opal 600lm", - "node_descriptor": b"\x01@\x8e|\x11RR\x00\x00\x00R\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0005", "1:0x0019"], + SIG_MANUFACTURER: "IKEA of Sweden", + SIG_MODEL: "TRADFRI bulb E26 CWS opal 600lm", + SIG_NODE_DESC: b"\x01@\x8e|\x11RR\x00\x00\x00R\x00\x00", }, { - "device_no": 19, - "endpoints": { + DEV_SIG_DEV_NO: 19, + SIG_ENDPOINTS: { 1: { - "device_type": 256, - "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 6, 8, 2821, 4096], - "out_clusters": [5, 25, 32, 4096], - "profile_id": 49246, + SIG_EP_TYPE: 256, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 8, 2821, 4096], + SIG_EP_OUTPUT: [5, 25, 32, 4096], + SIG_EP_PROFILE: 49246, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "light.ikea_of_sweden_tradfri_bulb_e26_w_opal_1000lm_77665544_level_on_off" ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("light", "00:11:22:33:44:55:66:77-1"): { - "channels": ["level", "on_off"], - "entity_class": "Light", - "entity_id": "light.ikea_of_sweden_tradfri_bulb_e26_w_opal_1000lm_77665544_level_on_off", + DEV_SIG_CHANNELS: ["level", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.ikea_of_sweden_tradfri_bulb_e26_w_opal_1000lm_77665544_level_on_off", } }, - "event_channels": ["1:0x0005", "1:0x0019"], - "manufacturer": "IKEA of Sweden", - "model": "TRADFRI bulb E26 W opal 1000lm", - "node_descriptor": b"\x01@\x8e|\x11RR\x00\x00\x00R\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0005", "1:0x0019"], + SIG_MANUFACTURER: "IKEA of Sweden", + SIG_MODEL: "TRADFRI bulb E26 W opal 1000lm", + SIG_NODE_DESC: b"\x01@\x8e|\x11RR\x00\x00\x00R\x00\x00", }, { - "device_no": 20, - "endpoints": { + DEV_SIG_DEV_NO: 20, + SIG_ENDPOINTS: { 1: { - "device_type": 544, - "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 6, 8, 768, 2821, 4096], - "out_clusters": [5, 25, 32, 4096], - "profile_id": 49246, + SIG_EP_TYPE: 544, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 8, 768, 2821, 4096], + SIG_EP_OUTPUT: [5, 25, 32, 4096], + SIG_EP_PROFILE: 49246, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "light.ikea_of_sweden_tradfri_bulb_e26_ws_opal_980lm_77665544_level_light_color_on_off" ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("light", "00:11:22:33:44:55:66:77-1"): { - "channels": ["level", "light_color", "on_off"], - "entity_class": "Light", - "entity_id": "light.ikea_of_sweden_tradfri_bulb_e26_ws_opal_980lm_77665544_level_light_color_on_off", + DEV_SIG_CHANNELS: ["level", "light_color", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.ikea_of_sweden_tradfri_bulb_e26_ws_opal_980lm_77665544_level_light_color_on_off", } }, - "event_channels": ["1:0x0005", "1:0x0019"], - "manufacturer": "IKEA of Sweden", - "model": "TRADFRI bulb E26 WS opal 980lm", - "node_descriptor": b"\x01@\x8e|\x11RR\x00\x00\x00R\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0005", "1:0x0019"], + SIG_MANUFACTURER: "IKEA of Sweden", + SIG_MODEL: "TRADFRI bulb E26 WS opal 980lm", + SIG_NODE_DESC: b"\x01@\x8e|\x11RR\x00\x00\x00R\x00\x00", }, { - "device_no": 21, - "endpoints": { + DEV_SIG_DEV_NO: 21, + SIG_ENDPOINTS: { 1: { - "device_type": 256, - "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 6, 8, 2821, 4096], - "out_clusters": [5, 25, 32, 4096], - "profile_id": 260, + SIG_EP_TYPE: 256, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 8, 2821, 4096], + SIG_EP_OUTPUT: [5, 25, 32, 4096], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "light.ikea_of_sweden_tradfri_bulb_e26_opal_1000lm_77665544_level_on_off" ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("light", "00:11:22:33:44:55:66:77-1"): { - "channels": ["level", "on_off"], - "entity_class": "Light", - "entity_id": "light.ikea_of_sweden_tradfri_bulb_e26_opal_1000lm_77665544_level_on_off", + DEV_SIG_CHANNELS: ["level", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.ikea_of_sweden_tradfri_bulb_e26_opal_1000lm_77665544_level_on_off", } }, - "event_channels": ["1:0x0005", "1:0x0019"], - "manufacturer": "IKEA of Sweden", - "model": "TRADFRI bulb E26 opal 1000lm", - "node_descriptor": b"\x01@\x8e|\x11RR\x00\x00\x00R\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0005", "1:0x0019"], + SIG_MANUFACTURER: "IKEA of Sweden", + SIG_MODEL: "TRADFRI bulb E26 opal 1000lm", + SIG_NODE_DESC: b"\x01@\x8e|\x11RR\x00\x00\x00R\x00\x00", }, { - "device_no": 22, - "endpoints": { + DEV_SIG_DEV_NO: 22, + SIG_ENDPOINTS: { 1: { - "device_type": 266, - "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 6, 64636], - "out_clusters": [5, 25, 32], - "profile_id": 260, + SIG_EP_TYPE: 266, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 64636], + SIG_EP_OUTPUT: [5, 25, 32], + SIG_EP_PROFILE: 260, } }, - "entities": ["switch.ikea_of_sweden_tradfri_control_outlet_77665544_on_off"], - "entity_map": { + DEV_SIG_ENTITIES: [ + "switch.ikea_of_sweden_tradfri_control_outlet_77665544_on_off" + ], + DEV_SIG_ENT_MAP: { ("switch", "00:11:22:33:44:55:66:77-1"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.ikea_of_sweden_tradfri_control_outlet_77665544_on_off", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.ikea_of_sweden_tradfri_control_outlet_77665544_on_off", } }, - "event_channels": ["1:0x0005", "1:0x0019"], - "manufacturer": "IKEA of Sweden", - "model": "TRADFRI control outlet", - "node_descriptor": b"\x01@\x8e|\x11RR\x00\x00,R\x00\x00", - "zha_quirks": "TradfriPlug", + DEV_SIG_EVT_CHANNELS: ["1:0x0005", "1:0x0019"], + SIG_MANUFACTURER: "IKEA of Sweden", + SIG_MODEL: "TRADFRI control outlet", + SIG_NODE_DESC: b"\x01@\x8e|\x11RR\x00\x00,R\x00\x00", + DEV_SIG_ZHA_QUIRK: "TradfriPlug", }, { - "device_no": 23, - "endpoints": { + DEV_SIG_DEV_NO: 23, + SIG_ENDPOINTS: { 1: { - "device_type": 2128, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 9, 2821, 4096], - "out_clusters": [3, 4, 6, 25, 4096], - "profile_id": 49246, + SIG_EP_TYPE: 2128, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 9, 2821, 4096], + SIG_EP_OUTPUT: [3, 4, 6, 25, 4096], + SIG_EP_PROFILE: 49246, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.ikea_of_sweden_tradfri_motion_sensor_77665544_on_off", "sensor.ikea_of_sweden_tradfri_motion_sensor_77665544_power", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.ikea_of_sweden_tradfri_motion_sensor_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.ikea_of_sweden_tradfri_motion_sensor_77665544_power", }, ("binary_sensor", "00:11:22:33:44:55:66:77-1-6"): { - "channels": ["on_off"], - "entity_class": "Motion", - "entity_id": "binary_sensor.ikea_of_sweden_tradfri_motion_sensor_77665544_on_off", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Motion", + DEV_SIG_ENT_MAP_ID: "binary_sensor.ikea_of_sweden_tradfri_motion_sensor_77665544_on_off", }, }, - "event_channels": ["1:0x0006", "1:0x0019"], - "manufacturer": "IKEA of Sweden", - "model": "TRADFRI motion sensor", - "node_descriptor": b"\x02@\x80|\x11RR\x00\x00\x00R\x00\x00", - "zha_quirks": "IkeaTradfriMotion", + DEV_SIG_EVT_CHANNELS: ["1:0x0006", "1:0x0019"], + SIG_MANUFACTURER: "IKEA of Sweden", + SIG_MODEL: "TRADFRI motion sensor", + SIG_NODE_DESC: b"\x02@\x80|\x11RR\x00\x00\x00R\x00\x00", + DEV_SIG_ZHA_QUIRK: "IkeaTradfriMotion", }, { - "device_no": 24, - "endpoints": { + DEV_SIG_DEV_NO: 24, + SIG_ENDPOINTS: { 1: { - "device_type": 2080, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 9, 32, 4096, 64636], - "out_clusters": [3, 4, 6, 8, 25, 258, 4096], - "profile_id": 260, + SIG_EP_TYPE: 2080, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 9, 32, 4096, 64636], + SIG_EP_OUTPUT: [3, 4, 6, 8, 25, 258, 4096], + SIG_EP_PROFILE: 260, } }, - "entities": ["sensor.ikea_of_sweden_tradfri_on_off_switch_77665544_power"], - "entity_map": { + DEV_SIG_ENTITIES: [ + "sensor.ikea_of_sweden_tradfri_on_off_switch_77665544_power" + ], + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.ikea_of_sweden_tradfri_on_off_switch_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.ikea_of_sweden_tradfri_on_off_switch_77665544_power", } }, - "event_channels": ["1:0x0006", "1:0x0008", "1:0x0019", "1:0x0102"], - "manufacturer": "IKEA of Sweden", - "model": "TRADFRI on/off switch", - "node_descriptor": b"\x02@\x80|\x11RR\x00\x00,R\x00\x00", - "zha_quirks": "IkeaTradfriRemote2Btn", + DEV_SIG_EVT_CHANNELS: ["1:0x0006", "1:0x0008", "1:0x0019", "1:0x0102"], + SIG_MANUFACTURER: "IKEA of Sweden", + SIG_MODEL: "TRADFRI on/off switch", + SIG_NODE_DESC: b"\x02@\x80|\x11RR\x00\x00,R\x00\x00", + DEV_SIG_ZHA_QUIRK: "IkeaTradfriRemote2Btn", }, { - "device_no": 25, - "endpoints": { + DEV_SIG_DEV_NO: 25, + SIG_ENDPOINTS: { 1: { - "device_type": 2096, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 9, 2821, 4096], - "out_clusters": [3, 4, 5, 6, 8, 25, 4096], - "profile_id": 49246, + SIG_EP_TYPE: 2096, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 9, 2821, 4096], + SIG_EP_OUTPUT: [3, 4, 5, 6, 8, 25, 4096], + SIG_EP_PROFILE: 49246, } }, - "entities": ["sensor.ikea_of_sweden_tradfri_remote_control_77665544_power"], - "entity_map": { + DEV_SIG_ENTITIES: [ + "sensor.ikea_of_sweden_tradfri_remote_control_77665544_power" + ], + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.ikea_of_sweden_tradfri_remote_control_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.ikea_of_sweden_tradfri_remote_control_77665544_power", } }, - "event_channels": ["1:0x0005", "1:0x0006", "1:0x0008", "1:0x0019"], - "manufacturer": "IKEA of Sweden", - "model": "TRADFRI remote control", - "node_descriptor": b"\x02@\x80|\x11RR\x00\x00\x00R\x00\x00", - "zha_quirks": "IkeaTradfriRemote", + DEV_SIG_EVT_CHANNELS: ["1:0x0005", "1:0x0006", "1:0x0008", "1:0x0019"], + SIG_MANUFACTURER: "IKEA of Sweden", + SIG_MODEL: "TRADFRI remote control", + SIG_NODE_DESC: b"\x02@\x80|\x11RR\x00\x00\x00R\x00\x00", + DEV_SIG_ZHA_QUIRK: "IkeaTradfriRemote", }, { - "device_no": 26, - "endpoints": { + DEV_SIG_DEV_NO: 26, + SIG_ENDPOINTS: { 1: { - "device_type": 8, - "endpoint_id": 1, - "in_clusters": [0, 3, 9, 2821, 4096, 64636], - "out_clusters": [25, 32, 4096], - "profile_id": 260, + SIG_EP_TYPE: 8, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 9, 2821, 4096, 64636], + SIG_EP_OUTPUT: [25, 32, 4096], + SIG_EP_PROFILE: 260, }, 242: { - "device_type": 97, - "endpoint_id": 242, - "in_clusters": [33], - "out_clusters": [33], - "profile_id": 41440, + SIG_EP_TYPE: 97, + DEV_SIG_EP_ID: 242, + SIG_EP_INPUT: [33], + SIG_EP_OUTPUT: [33], + SIG_EP_PROFILE: 41440, }, }, - "entities": [], - "entity_map": {}, - "event_channels": ["1:0x0019"], - "manufacturer": "IKEA of Sweden", - "model": "TRADFRI signal repeater", - "node_descriptor": b"\x01@\x8e|\x11RR\x00\x00,R\x00\x00", + DEV_SIG_ENTITIES: [], + DEV_SIG_ENT_MAP: {}, + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "IKEA of Sweden", + SIG_MODEL: "TRADFRI signal repeater", + SIG_NODE_DESC: b"\x01@\x8e|\x11RR\x00\x00,R\x00\x00", }, { - "device_no": 27, - "endpoints": { + DEV_SIG_DEV_NO: 27, + SIG_ENDPOINTS: { 1: { - "device_type": 2064, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 9, 2821, 4096], - "out_clusters": [3, 4, 6, 8, 25, 4096], - "profile_id": 260, + SIG_EP_TYPE: 2064, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 9, 2821, 4096], + SIG_EP_OUTPUT: [3, 4, 6, 8, 25, 4096], + SIG_EP_PROFILE: 260, } }, - "entities": ["sensor.ikea_of_sweden_tradfri_wireless_dimmer_77665544_power"], - "entity_map": { + DEV_SIG_ENTITIES: [ + "sensor.ikea_of_sweden_tradfri_wireless_dimmer_77665544_power" + ], + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.ikea_of_sweden_tradfri_wireless_dimmer_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.ikea_of_sweden_tradfri_wireless_dimmer_77665544_power", } }, - "event_channels": ["1:0x0006", "1:0x0008", "1:0x0019"], - "manufacturer": "IKEA of Sweden", - "model": "TRADFRI wireless dimmer", - "node_descriptor": b"\x02@\x80|\x11RR\x00\x00\x00R\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0006", "1:0x0008", "1:0x0019"], + SIG_MANUFACTURER: "IKEA of Sweden", + SIG_MODEL: "TRADFRI wireless dimmer", + SIG_NODE_DESC: b"\x02@\x80|\x11RR\x00\x00\x00R\x00\x00", }, { - "device_no": 28, - "endpoints": { + DEV_SIG_DEV_NO: 28, + SIG_ENDPOINTS: { 1: { - "device_type": 257, - "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 6, 8, 1794, 2821], - "out_clusters": [10, 25], - "profile_id": 260, + SIG_EP_TYPE: 257, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 8, 1794, 2821], + SIG_EP_OUTPUT: [10, 25], + SIG_EP_PROFILE: 260, }, 2: { - "device_type": 260, - "endpoint_id": 2, - "in_clusters": [0, 3, 2821], - "out_clusters": [3, 6, 8], - "profile_id": 260, + SIG_EP_TYPE: 260, + DEV_SIG_EP_ID: 2, + SIG_EP_INPUT: [0, 3, 2821], + SIG_EP_OUTPUT: [3, 6, 8], + SIG_EP_PROFILE: 260, }, }, - "entities": [ + DEV_SIG_ENTITIES: [ "light.jasco_products_45852_77665544_level_on_off", "sensor.jasco_products_45852_77665544_smartenergy_metering", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("light", "00:11:22:33:44:55:66:77-1"): { - "channels": ["level", "on_off"], - "entity_class": "Light", - "entity_id": "light.jasco_products_45852_77665544_level_on_off", + DEV_SIG_CHANNELS: ["level", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.jasco_products_45852_77665544_level_on_off", }, ("sensor", "00:11:22:33:44:55:66:77-1-1794"): { - "channels": ["smartenergy_metering"], - "entity_class": "SmartEnergyMetering", - "entity_id": "sensor.jasco_products_45852_77665544_smartenergy_metering", + DEV_SIG_CHANNELS: ["smartenergy_metering"], + DEV_SIG_ENT_MAP_CLASS: "SmartEnergyMetering", + DEV_SIG_ENT_MAP_ID: "sensor.jasco_products_45852_77665544_smartenergy_metering", }, }, - "event_channels": ["1:0x0019", "2:0x0006", "2:0x0008"], - "manufacturer": "Jasco Products", - "model": "45852", - "node_descriptor": b"\x01@\x8e$\x11R\xff\x00\x00\x00\xff\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0019", "2:0x0006", "2:0x0008"], + SIG_MANUFACTURER: "Jasco Products", + SIG_MODEL: "45852", + SIG_NODE_DESC: b"\x01@\x8e$\x11R\xff\x00\x00\x00\xff\x00\x00", }, { - "device_no": 29, - "endpoints": { + DEV_SIG_DEV_NO: 29, + SIG_ENDPOINTS: { 1: { - "device_type": 256, - "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 6, 1794, 2821], - "out_clusters": [10, 25], - "profile_id": 260, + SIG_EP_TYPE: 256, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 1794, 2821], + SIG_EP_OUTPUT: [10, 25], + SIG_EP_PROFILE: 260, }, 2: { - "device_type": 259, - "endpoint_id": 2, - "in_clusters": [0, 3, 2821], - "out_clusters": [3, 6], - "profile_id": 260, + SIG_EP_TYPE: 259, + DEV_SIG_EP_ID: 2, + SIG_EP_INPUT: [0, 3, 2821], + SIG_EP_OUTPUT: [3, 6], + SIG_EP_PROFILE: 260, }, }, - "entities": [ + DEV_SIG_ENTITIES: [ "light.jasco_products_45856_77665544_on_off", "sensor.jasco_products_45856_77665544_smartenergy_metering", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("light", "00:11:22:33:44:55:66:77-1"): { - "channels": ["on_off"], - "entity_class": "Light", - "entity_id": "light.jasco_products_45856_77665544_on_off", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.jasco_products_45856_77665544_on_off", }, ("sensor", "00:11:22:33:44:55:66:77-1-1794"): { - "channels": ["smartenergy_metering"], - "entity_class": "SmartEnergyMetering", - "entity_id": "sensor.jasco_products_45856_77665544_smartenergy_metering", + DEV_SIG_CHANNELS: ["smartenergy_metering"], + DEV_SIG_ENT_MAP_CLASS: "SmartEnergyMetering", + DEV_SIG_ENT_MAP_ID: "sensor.jasco_products_45856_77665544_smartenergy_metering", }, }, - "event_channels": ["1:0x0019", "2:0x0006"], - "manufacturer": "Jasco Products", - "model": "45856", - "node_descriptor": b"\x01@\x8e$\x11R\xff\x00\x00\x00\xff\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0019", "2:0x0006"], + SIG_MANUFACTURER: "Jasco Products", + SIG_MODEL: "45856", + SIG_NODE_DESC: b"\x01@\x8e$\x11R\xff\x00\x00\x00\xff\x00\x00", }, { - "device_no": 30, - "endpoints": { + DEV_SIG_DEV_NO: 30, + SIG_ENDPOINTS: { 1: { - "device_type": 257, - "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 6, 8, 1794, 2821], - "out_clusters": [10, 25], - "profile_id": 260, + SIG_EP_TYPE: 257, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 8, 1794, 2821], + SIG_EP_OUTPUT: [10, 25], + SIG_EP_PROFILE: 260, }, 2: { - "device_type": 260, - "endpoint_id": 2, - "in_clusters": [0, 3, 2821], - "out_clusters": [3, 6, 8], - "profile_id": 260, + SIG_EP_TYPE: 260, + DEV_SIG_EP_ID: 2, + SIG_EP_INPUT: [0, 3, 2821], + SIG_EP_OUTPUT: [3, 6, 8], + SIG_EP_PROFILE: 260, }, }, - "entities": [ + DEV_SIG_ENTITIES: [ "light.jasco_products_45857_77665544_level_on_off", "sensor.jasco_products_45857_77665544_smartenergy_metering", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("light", "00:11:22:33:44:55:66:77-1"): { - "channels": ["level", "on_off"], - "entity_class": "Light", - "entity_id": "light.jasco_products_45857_77665544_level_on_off", + DEV_SIG_CHANNELS: ["level", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.jasco_products_45857_77665544_level_on_off", }, ("sensor", "00:11:22:33:44:55:66:77-1-1794"): { - "channels": ["smartenergy_metering"], - "entity_class": "SmartEnergyMetering", - "entity_id": "sensor.jasco_products_45857_77665544_smartenergy_metering", + DEV_SIG_CHANNELS: ["smartenergy_metering"], + DEV_SIG_ENT_MAP_CLASS: "SmartEnergyMetering", + DEV_SIG_ENT_MAP_ID: "sensor.jasco_products_45857_77665544_smartenergy_metering", }, }, - "event_channels": ["1:0x0019", "2:0x0006", "2:0x0008"], - "manufacturer": "Jasco Products", - "model": "45857", - "node_descriptor": b"\x01@\x8e$\x11R\xff\x00\x00\x00\xff\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0019", "2:0x0006", "2:0x0008"], + SIG_MANUFACTURER: "Jasco Products", + SIG_MODEL: "45857", + SIG_NODE_DESC: b"\x01@\x8e$\x11R\xff\x00\x00\x00\xff\x00\x00", }, { - "device_no": 31, - "endpoints": { + DEV_SIG_DEV_NO: 31, + SIG_ENDPOINTS: { 1: { - "device_type": 3, - "endpoint_id": 1, - "in_clusters": [ + SIG_EP_TYPE: 3, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [ 0, 1, 3, @@ -1031,50 +1060,50 @@ DEVICES = [ 64513, 64514, ], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "cover.keen_home_inc_sv02_610_mp_1_3_77665544_level_on_off", "sensor.keen_home_inc_sv02_610_mp_1_3_77665544_power", "sensor.keen_home_inc_sv02_610_mp_1_3_77665544_pressure", "sensor.keen_home_inc_sv02_610_mp_1_3_77665544_temperature", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("cover", "00:11:22:33:44:55:66:77-1"): { - "channels": ["level", "on_off"], - "entity_class": "KeenVent", - "entity_id": "cover.keen_home_inc_sv02_610_mp_1_3_77665544_level_on_off", + DEV_SIG_CHANNELS: ["level", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "KeenVent", + DEV_SIG_ENT_MAP_ID: "cover.keen_home_inc_sv02_610_mp_1_3_77665544_level_on_off", }, ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.keen_home_inc_sv02_610_mp_1_3_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.keen_home_inc_sv02_610_mp_1_3_77665544_power", }, ("sensor", "00:11:22:33:44:55:66:77-1-1026"): { - "channels": ["temperature"], - "entity_class": "Temperature", - "entity_id": "sensor.keen_home_inc_sv02_610_mp_1_3_77665544_temperature", + DEV_SIG_CHANNELS: ["temperature"], + DEV_SIG_ENT_MAP_CLASS: "Temperature", + DEV_SIG_ENT_MAP_ID: "sensor.keen_home_inc_sv02_610_mp_1_3_77665544_temperature", }, ("sensor", "00:11:22:33:44:55:66:77-1-1027"): { - "channels": ["pressure"], - "entity_class": "Pressure", - "entity_id": "sensor.keen_home_inc_sv02_610_mp_1_3_77665544_pressure", + DEV_SIG_CHANNELS: ["pressure"], + DEV_SIG_ENT_MAP_CLASS: "Pressure", + DEV_SIG_ENT_MAP_ID: "sensor.keen_home_inc_sv02_610_mp_1_3_77665544_pressure", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "Keen Home Inc", - "model": "SV02-610-MP-1.3", - "node_descriptor": b"\x02@\x80[\x11RR\x00\x00*R\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "Keen Home Inc", + SIG_MODEL: "SV02-610-MP-1.3", + SIG_NODE_DESC: b"\x02@\x80[\x11RR\x00\x00*R\x00\x00", }, { - "device_no": 32, - "endpoints": { + DEV_SIG_DEV_NO: 32, + SIG_ENDPOINTS: { 1: { - "device_type": 3, - "endpoint_id": 1, - "in_clusters": [ + SIG_EP_TYPE: 3, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [ 0, 1, 3, @@ -1089,50 +1118,50 @@ DEVICES = [ 64513, 64514, ], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "cover.keen_home_inc_sv02_612_mp_1_2_77665544_level_on_off", "sensor.keen_home_inc_sv02_612_mp_1_2_77665544_power", "sensor.keen_home_inc_sv02_612_mp_1_2_77665544_pressure", "sensor.keen_home_inc_sv02_612_mp_1_2_77665544_temperature", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("cover", "00:11:22:33:44:55:66:77-1"): { - "channels": ["level", "on_off"], - "entity_class": "KeenVent", - "entity_id": "cover.keen_home_inc_sv02_612_mp_1_2_77665544_level_on_off", + DEV_SIG_CHANNELS: ["level", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "KeenVent", + DEV_SIG_ENT_MAP_ID: "cover.keen_home_inc_sv02_612_mp_1_2_77665544_level_on_off", }, ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.keen_home_inc_sv02_612_mp_1_2_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.keen_home_inc_sv02_612_mp_1_2_77665544_power", }, ("sensor", "00:11:22:33:44:55:66:77-1-1026"): { - "channels": ["temperature"], - "entity_class": "Temperature", - "entity_id": "sensor.keen_home_inc_sv02_612_mp_1_2_77665544_temperature", + DEV_SIG_CHANNELS: ["temperature"], + DEV_SIG_ENT_MAP_CLASS: "Temperature", + DEV_SIG_ENT_MAP_ID: "sensor.keen_home_inc_sv02_612_mp_1_2_77665544_temperature", }, ("sensor", "00:11:22:33:44:55:66:77-1-1027"): { - "channels": ["pressure"], - "entity_class": "Pressure", - "entity_id": "sensor.keen_home_inc_sv02_612_mp_1_2_77665544_pressure", + DEV_SIG_CHANNELS: ["pressure"], + DEV_SIG_ENT_MAP_CLASS: "Pressure", + DEV_SIG_ENT_MAP_ID: "sensor.keen_home_inc_sv02_612_mp_1_2_77665544_pressure", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "Keen Home Inc", - "model": "SV02-612-MP-1.2", - "node_descriptor": b"\x02@\x80[\x11RR\x00\x00*R\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "Keen Home Inc", + SIG_MODEL: "SV02-612-MP-1.2", + SIG_NODE_DESC: b"\x02@\x80[\x11RR\x00\x00*R\x00\x00", }, { - "device_no": 33, - "endpoints": { + DEV_SIG_DEV_NO: 33, + SIG_ENDPOINTS: { 1: { - "device_type": 3, - "endpoint_id": 1, - "in_clusters": [ + SIG_EP_TYPE: 3, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [ 0, 1, 3, @@ -1147,1468 +1176,1472 @@ DEVICES = [ 64513, 64514, ], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "cover.keen_home_inc_sv02_612_mp_1_3_77665544_level_on_off", "sensor.keen_home_inc_sv02_612_mp_1_3_77665544_power", "sensor.keen_home_inc_sv02_612_mp_1_3_77665544_pressure", "sensor.keen_home_inc_sv02_612_mp_1_3_77665544_temperature", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("cover", "00:11:22:33:44:55:66:77-1"): { - "channels": ["level", "on_off"], - "entity_class": "KeenVent", - "entity_id": "cover.keen_home_inc_sv02_612_mp_1_3_77665544_level_on_off", + DEV_SIG_CHANNELS: ["level", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "KeenVent", + DEV_SIG_ENT_MAP_ID: "cover.keen_home_inc_sv02_612_mp_1_3_77665544_level_on_off", }, ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.keen_home_inc_sv02_612_mp_1_3_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.keen_home_inc_sv02_612_mp_1_3_77665544_power", }, ("sensor", "00:11:22:33:44:55:66:77-1-1026"): { - "channels": ["temperature"], - "entity_class": "Temperature", - "entity_id": "sensor.keen_home_inc_sv02_612_mp_1_3_77665544_temperature", + DEV_SIG_CHANNELS: ["temperature"], + DEV_SIG_ENT_MAP_CLASS: "Temperature", + DEV_SIG_ENT_MAP_ID: "sensor.keen_home_inc_sv02_612_mp_1_3_77665544_temperature", }, ("sensor", "00:11:22:33:44:55:66:77-1-1027"): { - "channels": ["pressure"], - "entity_class": "Pressure", - "entity_id": "sensor.keen_home_inc_sv02_612_mp_1_3_77665544_pressure", + DEV_SIG_CHANNELS: ["pressure"], + DEV_SIG_ENT_MAP_CLASS: "Pressure", + DEV_SIG_ENT_MAP_ID: "sensor.keen_home_inc_sv02_612_mp_1_3_77665544_pressure", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "Keen Home Inc", - "model": "SV02-612-MP-1.3", - "node_descriptor": b"\x02@\x80[\x11RR\x00\x00*R\x00\x00", - "zha_quirks": "KeenHomeSmartVent", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "Keen Home Inc", + SIG_MODEL: "SV02-612-MP-1.3", + SIG_NODE_DESC: b"\x02@\x80[\x11RR\x00\x00*R\x00\x00", + DEV_SIG_ZHA_QUIRK: "KeenHomeSmartVent", }, { - "device_no": 34, - "endpoints": { + DEV_SIG_DEV_NO: 34, + SIG_ENDPOINTS: { 1: { - "device_type": 257, - "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 6, 8, 514], - "out_clusters": [3, 25], - "profile_id": 260, + SIG_EP_TYPE: 257, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 8, 514], + SIG_EP_OUTPUT: [3, 25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "fan.king_of_fans_inc_hbuniversalcfremote_77665544_fan", "light.king_of_fans_inc_hbuniversalcfremote_77665544_level_on_off", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("light", "00:11:22:33:44:55:66:77-1"): { - "channels": ["level", "on_off"], - "entity_class": "Light", - "entity_id": "light.king_of_fans_inc_hbuniversalcfremote_77665544_level_on_off", + DEV_SIG_CHANNELS: ["level", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.king_of_fans_inc_hbuniversalcfremote_77665544_level_on_off", }, ("fan", "00:11:22:33:44:55:66:77-1-514"): { - "channels": ["fan"], - "entity_class": "ZhaFan", - "entity_id": "fan.king_of_fans_inc_hbuniversalcfremote_77665544_fan", + DEV_SIG_CHANNELS: ["fan"], + DEV_SIG_ENT_MAP_CLASS: "ZhaFan", + DEV_SIG_ENT_MAP_ID: "fan.king_of_fans_inc_hbuniversalcfremote_77665544_fan", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "King Of Fans, Inc.", - "model": "HBUniversalCFRemote", - "node_descriptor": b"\x02@\x8c\x02\x10RR\x00\x00\x00R\x00\x00", - "zha_quirks": "CeilingFan", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "King Of Fans, Inc.", + SIG_MODEL: "HBUniversalCFRemote", + SIG_NODE_DESC: b"\x02@\x8c\x02\x10RR\x00\x00\x00R\x00\x00", + DEV_SIG_ZHA_QUIRK: "CeilingFan", }, { - "device_no": 35, - "endpoints": { + DEV_SIG_DEV_NO: 35, + SIG_ENDPOINTS: { 1: { - "device_type": 2048, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 4096, 64769], - "out_clusters": [3, 4, 6, 8, 25, 768, 4096], - "profile_id": 260, + SIG_EP_TYPE: 2048, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 4096, 64769], + SIG_EP_OUTPUT: [3, 4, 6, 8, 25, 768, 4096], + SIG_EP_PROFILE: 260, } }, - "entities": ["sensor.lds_zbt_cctswitch_d0001_77665544_power"], - "entity_map": { + DEV_SIG_ENTITIES: ["sensor.lds_zbt_cctswitch_d0001_77665544_power"], + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.lds_zbt_cctswitch_d0001_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.lds_zbt_cctswitch_d0001_77665544_power", } }, - "event_channels": ["1:0x0006", "1:0x0008", "1:0x0019", "1:0x0300"], - "manufacturer": "LDS", - "model": "ZBT-CCTSwitch-D0001", - "node_descriptor": b"\x02@\x80h\x11RR\x00\x00,R\x00\x00", - "zha_quirks": "CCTSwitch", + DEV_SIG_EVT_CHANNELS: ["1:0x0006", "1:0x0008", "1:0x0019", "1:0x0300"], + SIG_MANUFACTURER: "LDS", + SIG_MODEL: "ZBT-CCTSwitch-D0001", + SIG_NODE_DESC: b"\x02@\x80h\x11RR\x00\x00,R\x00\x00", + DEV_SIG_ZHA_QUIRK: "CCTSwitch", }, { - "device_no": 36, - "endpoints": { + DEV_SIG_DEV_NO: 36, + SIG_ENDPOINTS: { 1: { - "device_type": 258, - "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 6, 8, 768, 2821, 64513], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 258, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 8, 768, 2821, 64513], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, } }, - "entities": ["light.ledvance_a19_rgbw_77665544_level_light_color_on_off"], - "entity_map": { + DEV_SIG_ENTITIES: ["light.ledvance_a19_rgbw_77665544_level_light_color_on_off"], + DEV_SIG_ENT_MAP: { ("light", "00:11:22:33:44:55:66:77-1"): { - "channels": ["level", "light_color", "on_off"], - "entity_class": "Light", - "entity_id": "light.ledvance_a19_rgbw_77665544_level_light_color_on_off", + DEV_SIG_CHANNELS: ["level", "light_color", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.ledvance_a19_rgbw_77665544_level_light_color_on_off", } }, - "event_channels": ["1:0x0019"], - "manufacturer": "LEDVANCE", - "model": "A19 RGBW", - "node_descriptor": b"\x01@\x8e\x89\x11RR\x00\x00\x00R\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "LEDVANCE", + SIG_MODEL: "A19 RGBW", + SIG_NODE_DESC: b"\x01@\x8e\x89\x11RR\x00\x00\x00R\x00\x00", }, { - "device_no": 37, - "endpoints": { + DEV_SIG_DEV_NO: 37, + SIG_ENDPOINTS: { 1: { - "device_type": 258, - "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 6, 8, 768, 2821, 64513], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 258, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 8, 768, 2821, 64513], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, } }, - "entities": ["light.ledvance_flex_rgbw_77665544_level_light_color_on_off"], - "entity_map": { + DEV_SIG_ENTITIES: [ + "light.ledvance_flex_rgbw_77665544_level_light_color_on_off" + ], + DEV_SIG_ENT_MAP: { ("light", "00:11:22:33:44:55:66:77-1"): { - "channels": ["level", "light_color", "on_off"], - "entity_class": "Light", - "entity_id": "light.ledvance_flex_rgbw_77665544_level_light_color_on_off", + DEV_SIG_CHANNELS: ["level", "light_color", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.ledvance_flex_rgbw_77665544_level_light_color_on_off", } }, - "event_channels": ["1:0x0019"], - "manufacturer": "LEDVANCE", - "model": "FLEX RGBW", - "node_descriptor": b"\x01@\x8e\x89\x11RR\x00\x00\x00R\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "LEDVANCE", + SIG_MODEL: "FLEX RGBW", + SIG_NODE_DESC: b"\x01@\x8e\x89\x11RR\x00\x00\x00R\x00\x00", }, { - "device_no": 38, - "endpoints": { + DEV_SIG_DEV_NO: 38, + SIG_ENDPOINTS: { 1: { - "device_type": 81, - "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 6, 2821, 64513, 64520], - "out_clusters": [3, 25], - "profile_id": 260, + SIG_EP_TYPE: 81, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 2821, 64513, 64520], + SIG_EP_OUTPUT: [3, 25], + SIG_EP_PROFILE: 260, } }, - "entities": ["switch.ledvance_plug_77665544_on_off"], - "entity_map": { + DEV_SIG_ENTITIES: ["switch.ledvance_plug_77665544_on_off"], + DEV_SIG_ENT_MAP: { ("switch", "00:11:22:33:44:55:66:77-1"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.ledvance_plug_77665544_on_off", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.ledvance_plug_77665544_on_off", } }, - "event_channels": ["1:0x0019"], - "manufacturer": "LEDVANCE", - "model": "PLUG", - "node_descriptor": b"\x01@\x8e\x89\x11RR\x00\x00\x00R\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "LEDVANCE", + SIG_MODEL: "PLUG", + SIG_NODE_DESC: b"\x01@\x8e\x89\x11RR\x00\x00\x00R\x00\x00", }, { - "device_no": 39, - "endpoints": { + DEV_SIG_DEV_NO: 39, + SIG_ENDPOINTS: { 1: { - "device_type": 258, - "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 6, 8, 768, 2821, 64513], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 258, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 8, 768, 2821, 64513], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, } }, - "entities": ["light.ledvance_rt_rgbw_77665544_level_light_color_on_off"], - "entity_map": { + DEV_SIG_ENTITIES: ["light.ledvance_rt_rgbw_77665544_level_light_color_on_off"], + DEV_SIG_ENT_MAP: { ("light", "00:11:22:33:44:55:66:77-1"): { - "channels": ["level", "light_color", "on_off"], - "entity_class": "Light", - "entity_id": "light.ledvance_rt_rgbw_77665544_level_light_color_on_off", + DEV_SIG_CHANNELS: ["level", "light_color", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.ledvance_rt_rgbw_77665544_level_light_color_on_off", } }, - "event_channels": ["1:0x0019"], - "manufacturer": "LEDVANCE", - "model": "RT RGBW", - "node_descriptor": b"\x01@\x8e\x89\x11RR\x00\x00\x00R\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "LEDVANCE", + SIG_MODEL: "RT RGBW", + SIG_NODE_DESC: b"\x01@\x8e\x89\x11RR\x00\x00\x00R\x00\x00", }, { - "device_no": 40, - "endpoints": { + DEV_SIG_DEV_NO: 40, + SIG_ENDPOINTS: { 1: { - "device_type": 81, - "endpoint_id": 1, - "in_clusters": [0, 1, 2, 3, 4, 5, 6, 10, 16, 2820], - "out_clusters": [10, 25], - "profile_id": 260, + SIG_EP_TYPE: 81, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 2, 3, 4, 5, 6, 10, 16, 2820], + SIG_EP_OUTPUT: [10, 25], + SIG_EP_PROFILE: 260, }, 2: { - "device_type": 9, - "endpoint_id": 2, - "in_clusters": [12], - "out_clusters": [4, 12], - "profile_id": 260, + SIG_EP_TYPE: 9, + DEV_SIG_EP_ID: 2, + SIG_EP_INPUT: [12], + SIG_EP_OUTPUT: [4, 12], + SIG_EP_PROFILE: 260, }, 3: { - "device_type": 83, - "endpoint_id": 3, - "in_clusters": [12], - "out_clusters": [12], - "profile_id": 260, + SIG_EP_TYPE: 83, + DEV_SIG_EP_ID: 3, + SIG_EP_INPUT: [12], + SIG_EP_OUTPUT: [12], + SIG_EP_PROFILE: 260, }, 100: { - "device_type": 263, - "endpoint_id": 100, - "in_clusters": [15], - "out_clusters": [4, 15], - "profile_id": 260, + SIG_EP_TYPE: 263, + DEV_SIG_EP_ID: 100, + SIG_EP_INPUT: [15], + SIG_EP_OUTPUT: [4, 15], + SIG_EP_PROFILE: 260, }, }, - "entities": [ + DEV_SIG_ENTITIES: [ "sensor.lumi_lumi_plug_maus01_77665544_analog_input", "sensor.lumi_lumi_plug_maus01_77665544_analog_input_2", "sensor.lumi_lumi_plug_maus01_77665544_electrical_measurement", "switch.lumi_lumi_plug_maus01_77665544_on_off", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-2-12"): { - "channels": ["analog_input"], - "entity_class": "AnalogInput", - "entity_id": "sensor.lumi_lumi_plug_maus01_77665544_analog_input", + DEV_SIG_CHANNELS: ["analog_input"], + DEV_SIG_ENT_MAP_CLASS: "AnalogInput", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_plug_maus01_77665544_analog_input", }, ("sensor", "00:11:22:33:44:55:66:77-3-12"): { - "channels": ["analog_input"], - "entity_class": "AnalogInput", - "entity_id": "sensor.lumi_lumi_plug_maus01_77665544_analog_input_2", + DEV_SIG_CHANNELS: ["analog_input"], + DEV_SIG_ENT_MAP_CLASS: "AnalogInput", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_plug_maus01_77665544_analog_input_2", }, ("switch", "00:11:22:33:44:55:66:77-1"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.lumi_lumi_plug_maus01_77665544_on_off", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.lumi_lumi_plug_maus01_77665544_on_off", }, ("sensor", "00:11:22:33:44:55:66:77-1-2820"): { - "channels": ["electrical_measurement"], - "entity_class": "ElectricalMeasurement", - "entity_id": "sensor.lumi_lumi_plug_maus01_77665544_electrical_measurement", + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurement", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_plug_maus01_77665544_electrical_measurement", }, ("binary_sensor", "00:11:22:33:44:55:66:77-100-15"): { - "channels": ["binary_input"], - "entity_class": "BinaryInput", - "entity_id": "binary_sensor.lumi_lumi_plug_maus01_77665544_binary_input", + DEV_SIG_CHANNELS: ["binary_input"], + DEV_SIG_ENT_MAP_CLASS: "BinaryInput", + DEV_SIG_ENT_MAP_ID: "binary_sensor.lumi_lumi_plug_maus01_77665544_binary_input", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "LUMI", - "model": "lumi.plug.maus01", - "node_descriptor": b"\x01@\x8e_\x11\x7fd\x00\x00\x00d\x00\x00", - "zha_quirks": "Plug", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "LUMI", + SIG_MODEL: "lumi.plug.maus01", + SIG_NODE_DESC: b"\x01@\x8e_\x11\x7fd\x00\x00\x00d\x00\x00", + DEV_SIG_ZHA_QUIRK: "Plug", }, { - "device_no": 41, - "endpoints": { + DEV_SIG_DEV_NO: 41, + SIG_ENDPOINTS: { 1: { - "device_type": 257, - "endpoint_id": 1, - "in_clusters": [0, 1, 2, 3, 4, 5, 6, 10, 12, 16, 2820], - "out_clusters": [10, 25], - "profile_id": 260, + SIG_EP_TYPE: 257, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 2, 3, 4, 5, 6, 10, 12, 16, 2820], + SIG_EP_OUTPUT: [10, 25], + SIG_EP_PROFILE: 260, }, 2: { - "device_type": 257, - "endpoint_id": 2, - "in_clusters": [4, 5, 6, 16], - "out_clusters": [], - "profile_id": 260, + SIG_EP_TYPE: 257, + DEV_SIG_EP_ID: 2, + SIG_EP_INPUT: [4, 5, 6, 16], + SIG_EP_OUTPUT: [], + SIG_EP_PROFILE: 260, }, }, - "entities": [ + DEV_SIG_ENTITIES: [ "light.lumi_lumi_relay_c2acn01_77665544_on_off", "light.lumi_lumi_relay_c2acn01_77665544_on_off_2", "sensor.lumi_lumi_relay_c2acn01_77665544_electrical_measurement", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("light", "00:11:22:33:44:55:66:77-1"): { - "channels": ["on_off"], - "entity_class": "Light", - "entity_id": "light.lumi_lumi_relay_c2acn01_77665544_on_off", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.lumi_lumi_relay_c2acn01_77665544_on_off", }, ("sensor", "00:11:22:33:44:55:66:77-1-2820"): { - "channels": ["electrical_measurement"], - "entity_class": "ElectricalMeasurement", - "entity_id": "sensor.lumi_lumi_relay_c2acn01_77665544_electrical_measurement", + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurement", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_relay_c2acn01_77665544_electrical_measurement", }, ("light", "00:11:22:33:44:55:66:77-2"): { - "channels": ["on_off"], - "entity_class": "Light", - "entity_id": "light.lumi_lumi_relay_c2acn01_77665544_on_off_2", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.lumi_lumi_relay_c2acn01_77665544_on_off_2", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "LUMI", - "model": "lumi.relay.c2acn01", - "node_descriptor": b"\x01@\x8e7\x10\x7fd\x00\x00\x00d\x00\x00", - "zha_quirks": "Relay", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "LUMI", + SIG_MODEL: "lumi.relay.c2acn01", + SIG_NODE_DESC: b"\x01@\x8e7\x10\x7fd\x00\x00\x00d\x00\x00", + DEV_SIG_ZHA_QUIRK: "Relay", }, { - "device_no": 42, - "endpoints": { + DEV_SIG_DEV_NO: 42, + SIG_ENDPOINTS: { 1: { - "device_type": 24321, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 18, 25, 65535], - "out_clusters": [0, 3, 4, 5, 18, 25, 65535], - "profile_id": 260, + SIG_EP_TYPE: 24321, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 18, 25, 65535], + SIG_EP_OUTPUT: [0, 3, 4, 5, 18, 25, 65535], + SIG_EP_PROFILE: 260, }, 2: { - "device_type": 24322, - "endpoint_id": 2, - "in_clusters": [3, 18], - "out_clusters": [3, 4, 5, 18], - "profile_id": 260, + SIG_EP_TYPE: 24322, + DEV_SIG_EP_ID: 2, + SIG_EP_INPUT: [3, 18], + SIG_EP_OUTPUT: [3, 4, 5, 18], + SIG_EP_PROFILE: 260, }, 3: { - "device_type": 24323, - "endpoint_id": 3, - "in_clusters": [3, 18], - "out_clusters": [3, 4, 5, 12, 18], - "profile_id": 260, + SIG_EP_TYPE: 24323, + DEV_SIG_EP_ID: 3, + SIG_EP_INPUT: [3, 18], + SIG_EP_OUTPUT: [3, 4, 5, 12, 18], + SIG_EP_PROFILE: 260, }, }, - "entities": ["sensor.lumi_lumi_remote_b186acn01_77665544_power"], - "entity_map": { + DEV_SIG_ENTITIES: ["sensor.lumi_lumi_remote_b186acn01_77665544_power"], + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.lumi_lumi_remote_b186acn01_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_remote_b186acn01_77665544_power", }, }, - "event_channels": ["1:0x0005", "1:0x0019", "2:0x0005", "3:0x0005"], - "manufacturer": "LUMI", - "model": "lumi.remote.b186acn01", - "node_descriptor": b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", - "zha_quirks": "RemoteB186ACN01", + DEV_SIG_EVT_CHANNELS: ["1:0x0005", "1:0x0019", "2:0x0005", "3:0x0005"], + SIG_MANUFACTURER: "LUMI", + SIG_MODEL: "lumi.remote.b186acn01", + SIG_NODE_DESC: b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", + DEV_SIG_ZHA_QUIRK: "RemoteB186ACN01", }, { - "device_no": 43, - "endpoints": { + DEV_SIG_DEV_NO: 43, + SIG_ENDPOINTS: { 1: { - "device_type": 24321, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 18, 25, 65535], - "out_clusters": [0, 3, 4, 5, 18, 25, 65535], - "profile_id": 260, + SIG_EP_TYPE: 24321, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 18, 25, 65535], + SIG_EP_OUTPUT: [0, 3, 4, 5, 18, 25, 65535], + SIG_EP_PROFILE: 260, }, 2: { - "device_type": 24322, - "endpoint_id": 2, - "in_clusters": [3, 18], - "out_clusters": [3, 4, 5, 18], - "profile_id": 260, + SIG_EP_TYPE: 24322, + DEV_SIG_EP_ID: 2, + SIG_EP_INPUT: [3, 18], + SIG_EP_OUTPUT: [3, 4, 5, 18], + SIG_EP_PROFILE: 260, }, 3: { - "device_type": 24323, - "endpoint_id": 3, - "in_clusters": [3, 18], - "out_clusters": [3, 4, 5, 12, 18], - "profile_id": 260, + SIG_EP_TYPE: 24323, + DEV_SIG_EP_ID: 3, + SIG_EP_INPUT: [3, 18], + SIG_EP_OUTPUT: [3, 4, 5, 12, 18], + SIG_EP_PROFILE: 260, }, }, - "entities": ["sensor.lumi_lumi_remote_b286acn01_77665544_power"], - "entity_map": { + DEV_SIG_ENTITIES: ["sensor.lumi_lumi_remote_b286acn01_77665544_power"], + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.lumi_lumi_remote_b286acn01_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_remote_b286acn01_77665544_power", }, }, - "event_channels": ["1:0x0005", "1:0x0019", "2:0x0005", "3:0x0005"], - "manufacturer": "LUMI", - "model": "lumi.remote.b286acn01", - "node_descriptor": b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", - "zha_quirks": "RemoteB286ACN01", + DEV_SIG_EVT_CHANNELS: ["1:0x0005", "1:0x0019", "2:0x0005", "3:0x0005"], + SIG_MANUFACTURER: "LUMI", + SIG_MODEL: "lumi.remote.b286acn01", + SIG_NODE_DESC: b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", + DEV_SIG_ZHA_QUIRK: "RemoteB286ACN01", }, { - "device_no": 44, - "endpoints": { + DEV_SIG_DEV_NO: 44, + SIG_ENDPOINTS: { 1: { - "device_type": 261, - "endpoint_id": 1, - "in_clusters": [0, 1, 3], - "out_clusters": [3, 6, 8, 768], - "profile_id": 260, + SIG_EP_TYPE: 261, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3], + SIG_EP_OUTPUT: [3, 6, 8, 768], + SIG_EP_PROFILE: 260, }, 2: { - "device_type": -1, - "endpoint_id": 2, - "in_clusters": [], - "out_clusters": [], - "profile_id": -1, + SIG_EP_TYPE: -1, + DEV_SIG_EP_ID: 2, + SIG_EP_INPUT: [], + SIG_EP_OUTPUT: [], + SIG_EP_PROFILE: -1, }, 3: { - "device_type": -1, - "endpoint_id": 3, - "in_clusters": [], - "out_clusters": [], - "profile_id": -1, + SIG_EP_TYPE: -1, + DEV_SIG_EP_ID: 3, + SIG_EP_INPUT: [], + SIG_EP_OUTPUT: [], + SIG_EP_PROFILE: -1, }, 4: { - "device_type": -1, - "endpoint_id": 4, - "in_clusters": [], - "out_clusters": [], - "profile_id": -1, + SIG_EP_TYPE: -1, + DEV_SIG_EP_ID: 4, + SIG_EP_INPUT: [], + SIG_EP_OUTPUT: [], + SIG_EP_PROFILE: -1, }, 5: { - "device_type": -1, - "endpoint_id": 5, - "in_clusters": [], - "out_clusters": [], - "profile_id": -1, + SIG_EP_TYPE: -1, + DEV_SIG_EP_ID: 5, + SIG_EP_INPUT: [], + SIG_EP_OUTPUT: [], + SIG_EP_PROFILE: -1, }, 6: { - "device_type": -1, - "endpoint_id": 6, - "in_clusters": [], - "out_clusters": [], - "profile_id": -1, + SIG_EP_TYPE: -1, + DEV_SIG_EP_ID: 6, + SIG_EP_INPUT: [], + SIG_EP_OUTPUT: [], + SIG_EP_PROFILE: -1, }, }, - "entities": [], - "entity_map": {}, - "event_channels": ["1:0x0006", "1:0x0008", "1:0x0300"], - "manufacturer": "LUMI", - "model": "lumi.remote.b286opcn01", - "node_descriptor": b"\x02@\x84_\x11\x7fd\x00\x00,d\x00\x00", + DEV_SIG_ENTITIES: [], + DEV_SIG_ENT_MAP: {}, + DEV_SIG_EVT_CHANNELS: ["1:0x0006", "1:0x0008", "1:0x0300"], + SIG_MANUFACTURER: "LUMI", + SIG_MODEL: "lumi.remote.b286opcn01", + SIG_NODE_DESC: b"\x02@\x84_\x11\x7fd\x00\x00,d\x00\x00", }, { - "device_no": 45, - "endpoints": { + DEV_SIG_DEV_NO: 45, + SIG_ENDPOINTS: { 1: { - "device_type": 261, - "endpoint_id": 1, - "in_clusters": [0, 1, 3], - "out_clusters": [3, 6, 8, 768], - "profile_id": 260, + SIG_EP_TYPE: 261, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3], + SIG_EP_OUTPUT: [3, 6, 8, 768], + SIG_EP_PROFILE: 260, }, 2: { - "device_type": 259, - "endpoint_id": 2, - "in_clusters": [3], - "out_clusters": [3, 6], - "profile_id": 260, + SIG_EP_TYPE: 259, + DEV_SIG_EP_ID: 2, + SIG_EP_INPUT: [3], + SIG_EP_OUTPUT: [3, 6], + SIG_EP_PROFILE: 260, }, 3: { - "device_type": -1, - "endpoint_id": 3, - "in_clusters": [], - "out_clusters": [], - "profile_id": -1, + SIG_EP_TYPE: -1, + DEV_SIG_EP_ID: 3, + SIG_EP_INPUT: [], + SIG_EP_OUTPUT: [], + SIG_EP_PROFILE: -1, }, 4: { - "device_type": -1, - "endpoint_id": 4, - "in_clusters": [], - "out_clusters": [], - "profile_id": -1, + SIG_EP_TYPE: -1, + DEV_SIG_EP_ID: 4, + SIG_EP_INPUT: [], + SIG_EP_OUTPUT: [], + SIG_EP_PROFILE: -1, }, 5: { - "device_type": -1, - "endpoint_id": 5, - "in_clusters": [], - "out_clusters": [], - "profile_id": -1, + SIG_EP_TYPE: -1, + DEV_SIG_EP_ID: 5, + SIG_EP_INPUT: [], + SIG_EP_OUTPUT: [], + SIG_EP_PROFILE: -1, }, 6: { - "device_type": -1, - "endpoint_id": 6, - "in_clusters": [], - "out_clusters": [], - "profile_id": -1, + SIG_EP_TYPE: -1, + DEV_SIG_EP_ID: 6, + SIG_EP_INPUT: [], + SIG_EP_OUTPUT: [], + SIG_EP_PROFILE: -1, }, }, - "entities": [], - "entity_map": {}, - "event_channels": ["1:0x0006", "1:0x0008", "1:0x0300", "2:0x0006"], - "manufacturer": "LUMI", - "model": "lumi.remote.b486opcn01", - "node_descriptor": b"\x02@\x84_\x11\x7fd\x00\x00,d\x00\x00", + DEV_SIG_ENTITIES: [], + DEV_SIG_ENT_MAP: {}, + DEV_SIG_EVT_CHANNELS: ["1:0x0006", "1:0x0008", "1:0x0300", "2:0x0006"], + SIG_MANUFACTURER: "LUMI", + SIG_MODEL: "lumi.remote.b486opcn01", + SIG_NODE_DESC: b"\x02@\x84_\x11\x7fd\x00\x00,d\x00\x00", }, { - "device_no": 46, - "endpoints": { + DEV_SIG_DEV_NO: 46, + SIG_ENDPOINTS: { 1: { - "device_type": 261, - "endpoint_id": 1, - "in_clusters": [0, 1, 3], - "out_clusters": [3, 6, 8, 768], - "profile_id": 260, + SIG_EP_TYPE: 261, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3], + SIG_EP_OUTPUT: [3, 6, 8, 768], + SIG_EP_PROFILE: 260, } }, - "entities": [], - "entity_map": {}, - "event_channels": ["1:0x0006", "1:0x0008", "1:0x0300"], - "manufacturer": "LUMI", - "model": "lumi.remote.b686opcn01", - "node_descriptor": b"\x02@\x84_\x11\x7fd\x00\x00,d\x00\x00", + DEV_SIG_ENTITIES: [], + DEV_SIG_ENT_MAP: {}, + DEV_SIG_EVT_CHANNELS: ["1:0x0006", "1:0x0008", "1:0x0300"], + SIG_MANUFACTURER: "LUMI", + SIG_MODEL: "lumi.remote.b686opcn01", + SIG_NODE_DESC: b"\x02@\x84_\x11\x7fd\x00\x00,d\x00\x00", }, { - "device_no": 47, - "endpoints": { + DEV_SIG_DEV_NO: 47, + SIG_ENDPOINTS: { 1: { - "device_type": 261, - "endpoint_id": 1, - "in_clusters": [0, 1, 3], - "out_clusters": [3, 6, 8, 768], - "profile_id": 260, + SIG_EP_TYPE: 261, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3], + SIG_EP_OUTPUT: [3, 6, 8, 768], + SIG_EP_PROFILE: 260, }, 2: { - "device_type": 259, - "endpoint_id": 2, - "in_clusters": [3], - "out_clusters": [3, 6], - "profile_id": 260, + SIG_EP_TYPE: 259, + DEV_SIG_EP_ID: 2, + SIG_EP_INPUT: [3], + SIG_EP_OUTPUT: [3, 6], + SIG_EP_PROFILE: 260, }, 3: { - "device_type": None, - "endpoint_id": 3, - "in_clusters": [], - "out_clusters": [], - "profile_id": None, + SIG_EP_TYPE: None, + DEV_SIG_EP_ID: 3, + SIG_EP_INPUT: [], + SIG_EP_OUTPUT: [], + SIG_EP_PROFILE: None, }, 4: { - "device_type": None, - "endpoint_id": 4, - "in_clusters": [], - "out_clusters": [], - "profile_id": None, + SIG_EP_TYPE: None, + DEV_SIG_EP_ID: 4, + SIG_EP_INPUT: [], + SIG_EP_OUTPUT: [], + SIG_EP_PROFILE: None, }, 5: { - "device_type": None, - "endpoint_id": 5, - "in_clusters": [], - "out_clusters": [], - "profile_id": None, + SIG_EP_TYPE: None, + DEV_SIG_EP_ID: 5, + SIG_EP_INPUT: [], + SIG_EP_OUTPUT: [], + SIG_EP_PROFILE: None, }, 6: { - "device_type": None, - "endpoint_id": 6, - "in_clusters": [], - "out_clusters": [], - "profile_id": None, + SIG_EP_TYPE: None, + DEV_SIG_EP_ID: 6, + SIG_EP_INPUT: [], + SIG_EP_OUTPUT: [], + SIG_EP_PROFILE: None, }, }, - "entities": [], - "entity_map": {}, - "event_channels": ["1:0x0006", "1:0x0008", "1:0x0300", "2:0x0006"], - "manufacturer": "LUMI", - "model": "lumi.remote.b686opcn01", - "node_descriptor": b"\x02@\x84_\x11\x7fd\x00\x00,d\x00\x00", + DEV_SIG_ENTITIES: [], + DEV_SIG_ENT_MAP: {}, + DEV_SIG_EVT_CHANNELS: ["1:0x0006", "1:0x0008", "1:0x0300", "2:0x0006"], + SIG_MANUFACTURER: "LUMI", + SIG_MODEL: "lumi.remote.b686opcn01", + SIG_NODE_DESC: b"\x02@\x84_\x11\x7fd\x00\x00,d\x00\x00", }, { - "device_no": 48, - "endpoints": { + DEV_SIG_DEV_NO: 48, + SIG_ENDPOINTS: { 8: { - "device_type": 256, - "endpoint_id": 8, - "in_clusters": [0, 6], - "out_clusters": [0, 6], - "profile_id": 260, + SIG_EP_TYPE: 256, + DEV_SIG_EP_ID: 8, + SIG_EP_INPUT: [0, 6], + SIG_EP_OUTPUT: [0, 6], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.lumi_lumi_router_77665544_on_off", "light.lumi_lumi_router_77665544_on_off", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("binary_sensor", "00:11:22:33:44:55:66:77-8-6"): { - "channels": ["on_off", "on_off"], - "entity_class": "Opening", - "entity_id": "binary_sensor.lumi_lumi_router_77665544_on_off", + DEV_SIG_CHANNELS: ["on_off", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "Opening", + DEV_SIG_ENT_MAP_ID: "binary_sensor.lumi_lumi_router_77665544_on_off", }, ("light", "00:11:22:33:44:55:66:77-8"): { - "channels": ["on_off", "on_off"], - "entity_class": "Light", - "entity_id": "light.lumi_lumi_router_77665544_on_off", + DEV_SIG_CHANNELS: ["on_off", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.lumi_lumi_router_77665544_on_off", }, }, - "event_channels": ["8:0x0006"], - "manufacturer": "LUMI", - "model": "lumi.router", - "node_descriptor": b"\x01@\x8e_\x11P\xa0\x00\x00\x00\xa0\x00\x00", + DEV_SIG_EVT_CHANNELS: ["8:0x0006"], + SIG_MANUFACTURER: "LUMI", + SIG_MODEL: "lumi.router", + SIG_NODE_DESC: b"\x01@\x8e_\x11P\xa0\x00\x00\x00\xa0\x00\x00", }, { - "device_no": 49, - "endpoints": { + DEV_SIG_DEV_NO: 49, + SIG_ENDPOINTS: { 8: { - "device_type": 256, - "endpoint_id": 8, - "in_clusters": [0, 6, 11, 17], - "out_clusters": [0, 6], - "profile_id": 260, + SIG_EP_TYPE: 256, + DEV_SIG_EP_ID: 8, + SIG_EP_INPUT: [0, 6, 11, 17], + SIG_EP_OUTPUT: [0, 6], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.lumi_lumi_router_77665544_on_off", "light.lumi_lumi_router_77665544_on_off", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("binary_sensor", "00:11:22:33:44:55:66:77-8-6"): { - "channels": ["on_off", "on_off"], - "entity_class": "Opening", - "entity_id": "binary_sensor.lumi_lumi_router_77665544_on_off", + DEV_SIG_CHANNELS: ["on_off", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "Opening", + DEV_SIG_ENT_MAP_ID: "binary_sensor.lumi_lumi_router_77665544_on_off", }, ("light", "00:11:22:33:44:55:66:77-8"): { - "channels": ["on_off", "on_off"], - "entity_class": "Light", - "entity_id": "light.lumi_lumi_router_77665544_on_off", + DEV_SIG_CHANNELS: ["on_off", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.lumi_lumi_router_77665544_on_off", }, }, - "event_channels": ["8:0x0006"], - "manufacturer": "LUMI", - "model": "lumi.router", - "node_descriptor": b"\x01@\x8e_\x11P\xa0\x00\x00\x00\xa0\x00\x00", + DEV_SIG_EVT_CHANNELS: ["8:0x0006"], + SIG_MANUFACTURER: "LUMI", + SIG_MODEL: "lumi.router", + SIG_NODE_DESC: b"\x01@\x8e_\x11P\xa0\x00\x00\x00\xa0\x00\x00", }, { - "device_no": 50, - "endpoints": { + DEV_SIG_DEV_NO: 50, + SIG_ENDPOINTS: { 8: { - "device_type": 256, - "endpoint_id": 8, - "in_clusters": [0, 6, 17], - "out_clusters": [0, 6], - "profile_id": 260, + SIG_EP_TYPE: 256, + DEV_SIG_EP_ID: 8, + SIG_EP_INPUT: [0, 6, 17], + SIG_EP_OUTPUT: [0, 6], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.lumi_lumi_router_77665544_on_off", "light.lumi_lumi_router_77665544_on_off", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("binary_sensor", "00:11:22:33:44:55:66:77-8-6"): { - "channels": ["on_off", "on_off"], - "entity_class": "Opening", - "entity_id": "binary_sensor.lumi_lumi_router_77665544_on_off", + DEV_SIG_CHANNELS: ["on_off", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "Opening", + DEV_SIG_ENT_MAP_ID: "binary_sensor.lumi_lumi_router_77665544_on_off", }, ("light", "00:11:22:33:44:55:66:77-8"): { - "channels": ["on_off", "on_off"], - "entity_class": "Light", - "entity_id": "light.lumi_lumi_router_77665544_on_off", + DEV_SIG_CHANNELS: ["on_off", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.lumi_lumi_router_77665544_on_off", }, }, - "event_channels": ["8:0x0006"], - "manufacturer": "LUMI", - "model": "lumi.router", - "node_descriptor": b"\x01@\x8e_\x11P\xa0\x00\x00\x00\xa0\x00\x00", + DEV_SIG_EVT_CHANNELS: ["8:0x0006"], + SIG_MANUFACTURER: "LUMI", + SIG_MODEL: "lumi.router", + SIG_NODE_DESC: b"\x01@\x8e_\x11P\xa0\x00\x00\x00\xa0\x00\x00", }, { - "device_no": 51, - "endpoints": { + DEV_SIG_DEV_NO: 51, + SIG_ENDPOINTS: { 1: { - "device_type": 262, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 1024], - "out_clusters": [3], - "profile_id": 260, + SIG_EP_TYPE: 262, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 1024], + SIG_EP_OUTPUT: [3], + SIG_EP_PROFILE: 260, } }, - "entities": ["sensor.lumi_lumi_sen_ill_mgl01_77665544_illuminance"], - "entity_map": { + DEV_SIG_ENTITIES: ["sensor.lumi_lumi_sen_ill_mgl01_77665544_illuminance"], + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1024"): { - "channels": ["illuminance"], - "entity_class": "Illuminance", - "entity_id": "sensor.lumi_lumi_sen_ill_mgl01_77665544_illuminance", + DEV_SIG_CHANNELS: ["illuminance"], + DEV_SIG_ENT_MAP_CLASS: "Illuminance", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_sen_ill_mgl01_77665544_illuminance", } }, - "event_channels": [], - "manufacturer": "LUMI", - "model": "lumi.sen_ill.mgl01", - "node_descriptor": b"\x02@\x84n\x12\x7fd\x00\x00,d\x00\x00", + DEV_SIG_EVT_CHANNELS: [], + SIG_MANUFACTURER: "LUMI", + SIG_MODEL: "lumi.sen_ill.mgl01", + SIG_NODE_DESC: b"\x02@\x84n\x12\x7fd\x00\x00,d\x00\x00", }, { - "device_no": 52, - "endpoints": { + DEV_SIG_DEV_NO: 52, + SIG_ENDPOINTS: { 1: { - "device_type": 24321, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 18, 25, 65535], - "out_clusters": [0, 3, 4, 5, 18, 25, 65535], - "profile_id": 260, + SIG_EP_TYPE: 24321, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 18, 25, 65535], + SIG_EP_OUTPUT: [0, 3, 4, 5, 18, 25, 65535], + SIG_EP_PROFILE: 260, }, 2: { - "device_type": 24322, - "endpoint_id": 2, - "in_clusters": [3, 18], - "out_clusters": [3, 4, 5, 18], - "profile_id": 260, + SIG_EP_TYPE: 24322, + DEV_SIG_EP_ID: 2, + SIG_EP_INPUT: [3, 18], + SIG_EP_OUTPUT: [3, 4, 5, 18], + SIG_EP_PROFILE: 260, }, 3: { - "device_type": 24323, - "endpoint_id": 3, - "in_clusters": [3, 18], - "out_clusters": [3, 4, 5, 12, 18], - "profile_id": 260, + SIG_EP_TYPE: 24323, + DEV_SIG_EP_ID: 3, + SIG_EP_INPUT: [3, 18], + SIG_EP_OUTPUT: [3, 4, 5, 12, 18], + SIG_EP_PROFILE: 260, }, }, - "entities": ["sensor.lumi_lumi_sensor_86sw1_77665544_power"], - "entity_map": { + DEV_SIG_ENTITIES: ["sensor.lumi_lumi_sensor_86sw1_77665544_power"], + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.lumi_lumi_sensor_86sw1_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_sensor_86sw1_77665544_power", }, }, - "event_channels": ["1:0x0005", "1:0x0019", "2:0x0005", "3:0x0005"], - "manufacturer": "LUMI", - "model": "lumi.sensor_86sw1", - "node_descriptor": b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", - "zha_quirks": "RemoteB186ACN01", + DEV_SIG_EVT_CHANNELS: ["1:0x0005", "1:0x0019", "2:0x0005", "3:0x0005"], + SIG_MANUFACTURER: "LUMI", + SIG_MODEL: "lumi.sensor_86sw1", + SIG_NODE_DESC: b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", + DEV_SIG_ZHA_QUIRK: "RemoteB186ACN01", }, { - "device_no": 53, - "endpoints": { + DEV_SIG_DEV_NO: 53, + SIG_ENDPOINTS: { 1: { - "device_type": 28417, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 25], - "out_clusters": [0, 3, 4, 5, 18, 25], - "profile_id": 260, + SIG_EP_TYPE: 28417, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 25], + SIG_EP_OUTPUT: [0, 3, 4, 5, 18, 25], + SIG_EP_PROFILE: 260, }, 2: { - "device_type": 28418, - "endpoint_id": 2, - "in_clusters": [3, 18], - "out_clusters": [3, 4, 5, 18], - "profile_id": 260, + SIG_EP_TYPE: 28418, + DEV_SIG_EP_ID: 2, + SIG_EP_INPUT: [3, 18], + SIG_EP_OUTPUT: [3, 4, 5, 18], + SIG_EP_PROFILE: 260, }, 3: { - "device_type": 28419, - "endpoint_id": 3, - "in_clusters": [3, 12], - "out_clusters": [3, 4, 5, 12], - "profile_id": 260, + SIG_EP_TYPE: 28419, + DEV_SIG_EP_ID: 3, + SIG_EP_INPUT: [3, 12], + SIG_EP_OUTPUT: [3, 4, 5, 12], + SIG_EP_PROFILE: 260, }, }, - "entities": ["sensor.lumi_lumi_sensor_cube_aqgl01_77665544_power"], - "entity_map": { + DEV_SIG_ENTITIES: ["sensor.lumi_lumi_sensor_cube_aqgl01_77665544_power"], + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.lumi_lumi_sensor_cube_aqgl01_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_sensor_cube_aqgl01_77665544_power", }, }, - "event_channels": ["1:0x0005", "1:0x0019", "2:0x0005", "3:0x0005"], - "manufacturer": "LUMI", - "model": "lumi.sensor_cube.aqgl01", - "node_descriptor": b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", - "zha_quirks": "CubeAQGL01", + DEV_SIG_EVT_CHANNELS: ["1:0x0005", "1:0x0019", "2:0x0005", "3:0x0005"], + SIG_MANUFACTURER: "LUMI", + SIG_MODEL: "lumi.sensor_cube.aqgl01", + SIG_NODE_DESC: b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", + DEV_SIG_ZHA_QUIRK: "CubeAQGL01", }, { - "device_no": 54, - "endpoints": { + DEV_SIG_DEV_NO: 54, + SIG_ENDPOINTS: { 1: { - "device_type": 24322, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 25, 1026, 1029, 65535], - "out_clusters": [0, 3, 4, 5, 18, 25, 65535], - "profile_id": 260, + SIG_EP_TYPE: 24322, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 25, 1026, 1029, 65535], + SIG_EP_OUTPUT: [0, 3, 4, 5, 18, 25, 65535], + SIG_EP_PROFILE: 260, }, 2: { - "device_type": 24322, - "endpoint_id": 2, - "in_clusters": [3], - "out_clusters": [3, 4, 5, 18], - "profile_id": 260, + SIG_EP_TYPE: 24322, + DEV_SIG_EP_ID: 2, + SIG_EP_INPUT: [3], + SIG_EP_OUTPUT: [3, 4, 5, 18], + SIG_EP_PROFILE: 260, }, 3: { - "device_type": 24323, - "endpoint_id": 3, - "in_clusters": [3], - "out_clusters": [3, 4, 5, 12], - "profile_id": 260, + SIG_EP_TYPE: 24323, + DEV_SIG_EP_ID: 3, + SIG_EP_INPUT: [3], + SIG_EP_OUTPUT: [3, 4, 5, 12], + SIG_EP_PROFILE: 260, }, }, - "entities": [ + DEV_SIG_ENTITIES: [ "sensor.lumi_lumi_sensor_ht_77665544_humidity", "sensor.lumi_lumi_sensor_ht_77665544_power", "sensor.lumi_lumi_sensor_ht_77665544_temperature", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.lumi_lumi_sensor_ht_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_sensor_ht_77665544_power", }, ("sensor", "00:11:22:33:44:55:66:77-1-1026"): { - "channels": ["temperature"], - "entity_class": "Temperature", - "entity_id": "sensor.lumi_lumi_sensor_ht_77665544_temperature", + DEV_SIG_CHANNELS: ["temperature"], + DEV_SIG_ENT_MAP_CLASS: "Temperature", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_sensor_ht_77665544_temperature", }, ("sensor", "00:11:22:33:44:55:66:77-1-1029"): { - "channels": ["humidity"], - "entity_class": "Humidity", - "entity_id": "sensor.lumi_lumi_sensor_ht_77665544_humidity", + DEV_SIG_CHANNELS: ["humidity"], + DEV_SIG_ENT_MAP_CLASS: "Humidity", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_sensor_ht_77665544_humidity", }, }, - "event_channels": ["1:0x0005", "1:0x0019", "2:0x0005", "3:0x0005"], - "manufacturer": "LUMI", - "model": "lumi.sensor_ht", - "node_descriptor": b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", - "zha_quirks": "Weather", + DEV_SIG_EVT_CHANNELS: ["1:0x0005", "1:0x0019", "2:0x0005", "3:0x0005"], + SIG_MANUFACTURER: "LUMI", + SIG_MODEL: "lumi.sensor_ht", + SIG_NODE_DESC: b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", + DEV_SIG_ZHA_QUIRK: "Weather", }, { - "device_no": 55, - "endpoints": { + DEV_SIG_DEV_NO: 55, + SIG_ENDPOINTS: { 1: { - "device_type": 2128, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 25, 65535], - "out_clusters": [0, 3, 4, 5, 6, 8, 25], - "profile_id": 260, + SIG_EP_TYPE: 2128, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 25, 65535], + SIG_EP_OUTPUT: [0, 3, 4, 5, 6, 8, 25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.lumi_lumi_sensor_magnet_77665544_on_off", "sensor.lumi_lumi_sensor_magnet_77665544_power", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.lumi_lumi_sensor_magnet_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_sensor_magnet_77665544_power", }, ("binary_sensor", "00:11:22:33:44:55:66:77-1-6"): { - "channels": ["on_off"], - "entity_class": "Opening", - "entity_id": "binary_sensor.lumi_lumi_sensor_magnet_77665544_on_off", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Opening", + DEV_SIG_ENT_MAP_ID: "binary_sensor.lumi_lumi_sensor_magnet_77665544_on_off", }, }, - "event_channels": ["1:0x0005", "1:0x0006", "1:0x0008", "1:0x0019"], - "manufacturer": "LUMI", - "model": "lumi.sensor_magnet", - "node_descriptor": b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", - "zha_quirks": "Magnet", + DEV_SIG_EVT_CHANNELS: ["1:0x0005", "1:0x0006", "1:0x0008", "1:0x0019"], + SIG_MANUFACTURER: "LUMI", + SIG_MODEL: "lumi.sensor_magnet", + SIG_NODE_DESC: b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", + DEV_SIG_ZHA_QUIRK: "Magnet", }, { - "device_no": 56, - "endpoints": { + DEV_SIG_DEV_NO: 56, + SIG_ENDPOINTS: { 1: { - "device_type": 24321, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 65535], - "out_clusters": [0, 4, 6, 65535], - "profile_id": 260, + SIG_EP_TYPE: 24321, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 65535], + SIG_EP_OUTPUT: [0, 4, 6, 65535], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.lumi_lumi_sensor_magnet_aq2_77665544_on_off", "sensor.lumi_lumi_sensor_magnet_aq2_77665544_power", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.lumi_lumi_sensor_magnet_aq2_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_sensor_magnet_aq2_77665544_power", }, ("binary_sensor", "00:11:22:33:44:55:66:77-1-6"): { - "channels": ["on_off"], - "entity_class": "Opening", - "entity_id": "binary_sensor.lumi_lumi_sensor_magnet_aq2_77665544_on_off", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Opening", + DEV_SIG_ENT_MAP_ID: "binary_sensor.lumi_lumi_sensor_magnet_aq2_77665544_on_off", }, }, - "event_channels": ["1:0x0006"], - "manufacturer": "LUMI", - "model": "lumi.sensor_magnet.aq2", - "node_descriptor": b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", - "zha_quirks": "MagnetAQ2", + DEV_SIG_EVT_CHANNELS: ["1:0x0006"], + SIG_MANUFACTURER: "LUMI", + SIG_MODEL: "lumi.sensor_magnet.aq2", + SIG_NODE_DESC: b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", + DEV_SIG_ZHA_QUIRK: "MagnetAQ2", }, { - "device_no": 57, - "endpoints": { + DEV_SIG_DEV_NO: 57, + SIG_ENDPOINTS: { 1: { - "device_type": 263, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 1024, 1030, 1280, 65535], - "out_clusters": [0, 25], - "profile_id": 260, + SIG_EP_TYPE: 263, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 1024, 1030, 1280, 65535], + SIG_EP_OUTPUT: [0, 25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.lumi_lumi_sensor_motion_aq2_77665544_ias_zone", "binary_sensor.lumi_lumi_sensor_motion_aq2_77665544_occupancy", "sensor.lumi_lumi_sensor_motion_aq2_77665544_illuminance", "sensor.lumi_lumi_sensor_motion_aq2_77665544_power", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.lumi_lumi_sensor_motion_aq2_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_sensor_motion_aq2_77665544_power", }, ("sensor", "00:11:22:33:44:55:66:77-1-1024"): { - "channels": ["illuminance"], - "entity_class": "Illuminance", - "entity_id": "sensor.lumi_lumi_sensor_motion_aq2_77665544_illuminance", + DEV_SIG_CHANNELS: ["illuminance"], + DEV_SIG_ENT_MAP_CLASS: "Illuminance", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_sensor_motion_aq2_77665544_illuminance", }, ("binary_sensor", "00:11:22:33:44:55:66:77-1-1030"): { - "channels": ["occupancy"], - "entity_class": "Occupancy", - "entity_id": "binary_sensor.lumi_lumi_sensor_motion_aq2_77665544_occupancy", + DEV_SIG_CHANNELS: ["occupancy"], + DEV_SIG_ENT_MAP_CLASS: "Occupancy", + DEV_SIG_ENT_MAP_ID: "binary_sensor.lumi_lumi_sensor_motion_aq2_77665544_occupancy", }, ("binary_sensor", "00:11:22:33:44:55:66:77-1-1280"): { - "channels": ["ias_zone"], - "entity_class": "IASZone", - "entity_id": "binary_sensor.lumi_lumi_sensor_motion_aq2_77665544_ias_zone", + DEV_SIG_CHANNELS: ["ias_zone"], + DEV_SIG_ENT_MAP_CLASS: "IASZone", + DEV_SIG_ENT_MAP_ID: "binary_sensor.lumi_lumi_sensor_motion_aq2_77665544_ias_zone", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "LUMI", - "model": "lumi.sensor_motion.aq2", - "node_descriptor": b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", - "zha_quirks": "MotionAQ2", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "LUMI", + SIG_MODEL: "lumi.sensor_motion.aq2", + SIG_NODE_DESC: b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", + DEV_SIG_ZHA_QUIRK: "MotionAQ2", }, { - "device_no": 58, - "endpoints": { + DEV_SIG_DEV_NO: 58, + SIG_ENDPOINTS: { 1: { - "device_type": 1026, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 12, 18, 1280], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 1026, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 12, 18, 1280], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.lumi_lumi_sensor_smoke_77665544_ias_zone", "sensor.lumi_lumi_sensor_smoke_77665544_power", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.lumi_lumi_sensor_smoke_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_sensor_smoke_77665544_power", }, ("binary_sensor", "00:11:22:33:44:55:66:77-1-1280"): { - "channels": ["ias_zone"], - "entity_class": "IASZone", - "entity_id": "binary_sensor.lumi_lumi_sensor_smoke_77665544_ias_zone", + DEV_SIG_CHANNELS: ["ias_zone"], + DEV_SIG_ENT_MAP_CLASS: "IASZone", + DEV_SIG_ENT_MAP_ID: "binary_sensor.lumi_lumi_sensor_smoke_77665544_ias_zone", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "LUMI", - "model": "lumi.sensor_smoke", - "node_descriptor": b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", - "zha_quirks": "MijiaHoneywellSmokeDetectorSensor", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "LUMI", + SIG_MODEL: "lumi.sensor_smoke", + SIG_NODE_DESC: b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", + DEV_SIG_ZHA_QUIRK: "MijiaHoneywellSmokeDetectorSensor", }, { - "device_no": 59, - "endpoints": { + DEV_SIG_DEV_NO: 59, + SIG_ENDPOINTS: { 1: { - "device_type": 6, - "endpoint_id": 1, - "in_clusters": [0, 1, 3], - "out_clusters": [0, 4, 5, 6, 8, 25], - "profile_id": 260, + SIG_EP_TYPE: 6, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3], + SIG_EP_OUTPUT: [0, 4, 5, 6, 8, 25], + SIG_EP_PROFILE: 260, } }, - "entities": ["sensor.lumi_lumi_sensor_switch_77665544_power"], - "entity_map": { + DEV_SIG_ENTITIES: ["sensor.lumi_lumi_sensor_switch_77665544_power"], + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.lumi_lumi_sensor_switch_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_sensor_switch_77665544_power", } }, - "event_channels": ["1:0x0005", "1:0x0006", "1:0x0008", "1:0x0019"], - "manufacturer": "LUMI", - "model": "lumi.sensor_switch", - "node_descriptor": b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", - "zha_quirks": "MijaButton", + DEV_SIG_EVT_CHANNELS: ["1:0x0005", "1:0x0006", "1:0x0008", "1:0x0019"], + SIG_MANUFACTURER: "LUMI", + SIG_MODEL: "lumi.sensor_switch", + SIG_NODE_DESC: b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", + DEV_SIG_ZHA_QUIRK: "MijaButton", }, { - "device_no": 60, - "endpoints": { + DEV_SIG_DEV_NO: 60, + SIG_ENDPOINTS: { 1: { - "device_type": 6, - "endpoint_id": 1, - "in_clusters": [0, 1, 65535], - "out_clusters": [0, 4, 6, 65535], - "profile_id": 260, + SIG_EP_TYPE: 6, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 65535], + SIG_EP_OUTPUT: [0, 4, 6, 65535], + SIG_EP_PROFILE: 260, } }, - "entities": ["sensor.lumi_lumi_sensor_switch_aq2_77665544_power"], - "entity_map": { + DEV_SIG_ENTITIES: ["sensor.lumi_lumi_sensor_switch_aq2_77665544_power"], + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.lumi_lumi_sensor_switch_aq2_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_sensor_switch_aq2_77665544_power", } }, - "event_channels": ["1:0x0006"], - "manufacturer": "LUMI", - "model": "lumi.sensor_switch.aq2", - "node_descriptor": b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", - "zha_quirks": "SwitchAQ2", + DEV_SIG_EVT_CHANNELS: ["1:0x0006"], + SIG_MANUFACTURER: "LUMI", + SIG_MODEL: "lumi.sensor_switch.aq2", + SIG_NODE_DESC: b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", + DEV_SIG_ZHA_QUIRK: "SwitchAQ2", }, { - "device_no": 61, - "endpoints": { + DEV_SIG_DEV_NO: 61, + SIG_ENDPOINTS: { 1: { - "device_type": 6, - "endpoint_id": 1, - "in_clusters": [0, 1, 18], - "out_clusters": [0, 6], - "profile_id": 260, + SIG_EP_TYPE: 6, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 18], + SIG_EP_OUTPUT: [0, 6], + SIG_EP_PROFILE: 260, } }, - "entities": ["sensor.lumi_lumi_sensor_switch_aq3_77665544_power"], - "entity_map": { + DEV_SIG_ENTITIES: ["sensor.lumi_lumi_sensor_switch_aq3_77665544_power"], + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.lumi_lumi_sensor_switch_aq3_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_sensor_switch_aq3_77665544_power", }, }, - "event_channels": ["1:0x0006"], - "manufacturer": "LUMI", - "model": "lumi.sensor_switch.aq3", - "node_descriptor": b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", - "zha_quirks": "SwitchAQ3", + DEV_SIG_EVT_CHANNELS: ["1:0x0006"], + SIG_MANUFACTURER: "LUMI", + SIG_MODEL: "lumi.sensor_switch.aq3", + SIG_NODE_DESC: b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", + DEV_SIG_ZHA_QUIRK: "SwitchAQ3", }, { - "device_no": 62, - "endpoints": { + DEV_SIG_DEV_NO: 62, + SIG_ENDPOINTS: { 1: { - "device_type": 1026, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 1280], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 1026, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 1280], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.lumi_lumi_sensor_wleak_aq1_77665544_ias_zone", "sensor.lumi_lumi_sensor_wleak_aq1_77665544_power", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.lumi_lumi_sensor_wleak_aq1_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_sensor_wleak_aq1_77665544_power", }, ("binary_sensor", "00:11:22:33:44:55:66:77-1-1280"): { - "channels": ["ias_zone"], - "entity_class": "IASZone", - "entity_id": "binary_sensor.lumi_lumi_sensor_wleak_aq1_77665544_ias_zone", + DEV_SIG_CHANNELS: ["ias_zone"], + DEV_SIG_ENT_MAP_CLASS: "IASZone", + DEV_SIG_ENT_MAP_ID: "binary_sensor.lumi_lumi_sensor_wleak_aq1_77665544_ias_zone", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "LUMI", - "model": "lumi.sensor_wleak.aq1", - "node_descriptor": b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", - "zha_quirks": "LeakAQ1", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "LUMI", + SIG_MODEL: "lumi.sensor_wleak.aq1", + SIG_NODE_DESC: b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", + DEV_SIG_ZHA_QUIRK: "LeakAQ1", }, { - "device_no": 63, - "endpoints": { + DEV_SIG_DEV_NO: 63, + SIG_ENDPOINTS: { 1: { - "device_type": 10, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 25, 257, 1280], - "out_clusters": [0, 3, 4, 5, 25], - "profile_id": 260, + SIG_EP_TYPE: 10, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 25, 257, 1280], + SIG_EP_OUTPUT: [0, 3, 4, 5, 25], + SIG_EP_PROFILE: 260, }, 2: { - "device_type": 24322, - "endpoint_id": 2, - "in_clusters": [3], - "out_clusters": [3, 4, 5, 18], - "profile_id": 260, + SIG_EP_TYPE: 24322, + DEV_SIG_EP_ID: 2, + SIG_EP_INPUT: [3], + SIG_EP_OUTPUT: [3, 4, 5, 18], + SIG_EP_PROFILE: 260, }, }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.lumi_lumi_vibration_aq1_77665544_ias_zone", "lock.lumi_lumi_vibration_aq1_77665544_door_lock", "sensor.lumi_lumi_vibration_aq1_77665544_power", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.lumi_lumi_vibration_aq1_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_vibration_aq1_77665544_power", }, ("lock", "00:11:22:33:44:55:66:77-1-257"): { - "channels": ["door_lock"], - "entity_class": "ZhaDoorLock", - "entity_id": "lock.lumi_lumi_vibration_aq1_77665544_door_lock", + DEV_SIG_CHANNELS: ["door_lock"], + DEV_SIG_ENT_MAP_CLASS: "ZhaDoorLock", + DEV_SIG_ENT_MAP_ID: "lock.lumi_lumi_vibration_aq1_77665544_door_lock", }, ("binary_sensor", "00:11:22:33:44:55:66:77-1-1280"): { - "channels": ["ias_zone"], - "entity_class": "IASZone", - "entity_id": "binary_sensor.lumi_lumi_vibration_aq1_77665544_ias_zone", + DEV_SIG_CHANNELS: ["ias_zone"], + DEV_SIG_ENT_MAP_CLASS: "IASZone", + DEV_SIG_ENT_MAP_ID: "binary_sensor.lumi_lumi_vibration_aq1_77665544_ias_zone", }, }, - "event_channels": ["1:0x0005", "1:0x0019", "2:0x0005"], - "manufacturer": "LUMI", - "model": "lumi.vibration.aq1", - "node_descriptor": b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", - "zha_quirks": "VibrationAQ1", + DEV_SIG_EVT_CHANNELS: ["1:0x0005", "1:0x0019", "2:0x0005"], + SIG_MANUFACTURER: "LUMI", + SIG_MODEL: "lumi.vibration.aq1", + SIG_NODE_DESC: b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", + DEV_SIG_ZHA_QUIRK: "VibrationAQ1", }, { - "device_no": 64, - "endpoints": { + DEV_SIG_DEV_NO: 64, + SIG_ENDPOINTS: { 1: { - "device_type": 24321, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 1026, 1027, 1029, 65535], - "out_clusters": [0, 4, 65535], - "profile_id": 260, + SIG_EP_TYPE: 24321, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 1026, 1027, 1029, 65535], + SIG_EP_OUTPUT: [0, 4, 65535], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "sensor.lumi_lumi_weather_77665544_humidity", "sensor.lumi_lumi_weather_77665544_power", "sensor.lumi_lumi_weather_77665544_pressure", "sensor.lumi_lumi_weather_77665544_temperature", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.lumi_lumi_weather_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_weather_77665544_power", }, ("sensor", "00:11:22:33:44:55:66:77-1-1026"): { - "channels": ["temperature"], - "entity_class": "Temperature", - "entity_id": "sensor.lumi_lumi_weather_77665544_temperature", + DEV_SIG_CHANNELS: ["temperature"], + DEV_SIG_ENT_MAP_CLASS: "Temperature", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_weather_77665544_temperature", }, ("sensor", "00:11:22:33:44:55:66:77-1-1027"): { - "channels": ["pressure"], - "entity_class": "Pressure", - "entity_id": "sensor.lumi_lumi_weather_77665544_pressure", + DEV_SIG_CHANNELS: ["pressure"], + DEV_SIG_ENT_MAP_CLASS: "Pressure", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_weather_77665544_pressure", }, ("sensor", "00:11:22:33:44:55:66:77-1-1029"): { - "channels": ["humidity"], - "entity_class": "Humidity", - "entity_id": "sensor.lumi_lumi_weather_77665544_humidity", + DEV_SIG_CHANNELS: ["humidity"], + DEV_SIG_ENT_MAP_CLASS: "Humidity", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_weather_77665544_humidity", }, }, - "event_channels": [], - "manufacturer": "LUMI", - "model": "lumi.weather", - "node_descriptor": b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", - "zha_quirks": "Weather", + DEV_SIG_EVT_CHANNELS: [], + SIG_MANUFACTURER: "LUMI", + SIG_MODEL: "lumi.weather", + SIG_NODE_DESC: b"\x02@\x807\x10\x7fd\x00\x00\x00d\x00\x00", + DEV_SIG_ZHA_QUIRK: "Weather", }, { - "device_no": 65, - "endpoints": { + DEV_SIG_DEV_NO: 65, + SIG_ENDPOINTS: { 1: { - "device_type": 1026, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 32, 1280], - "out_clusters": [], - "profile_id": 260, + SIG_EP_TYPE: 1026, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 32, 1280], + SIG_EP_OUTPUT: [], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.nyce_3010_77665544_ias_zone", "sensor.nyce_3010_77665544_power", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.nyce_3010_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.nyce_3010_77665544_power", }, ("binary_sensor", "00:11:22:33:44:55:66:77-1-1280"): { - "channels": ["ias_zone"], - "entity_class": "IASZone", - "entity_id": "binary_sensor.nyce_3010_77665544_ias_zone", + DEV_SIG_CHANNELS: ["ias_zone"], + DEV_SIG_ENT_MAP_CLASS: "IASZone", + DEV_SIG_ENT_MAP_ID: "binary_sensor.nyce_3010_77665544_ias_zone", }, }, - "event_channels": [], - "manufacturer": "NYCE", - "model": "3010", - "node_descriptor": b"\x02@\x80\xb9\x10RR\x00\x00\x00R\x00\x00", + DEV_SIG_EVT_CHANNELS: [], + SIG_MANUFACTURER: "NYCE", + SIG_MODEL: "3010", + SIG_NODE_DESC: b"\x02@\x80\xb9\x10RR\x00\x00\x00R\x00\x00", }, { - "device_no": 66, - "endpoints": { + DEV_SIG_DEV_NO: 66, + SIG_ENDPOINTS: { 1: { - "device_type": 1026, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 32, 1280], - "out_clusters": [], - "profile_id": 260, + SIG_EP_TYPE: 1026, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 32, 1280], + SIG_EP_OUTPUT: [], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.nyce_3014_77665544_ias_zone", "sensor.nyce_3014_77665544_power", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.nyce_3014_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.nyce_3014_77665544_power", }, ("binary_sensor", "00:11:22:33:44:55:66:77-1-1280"): { - "channels": ["ias_zone"], - "entity_class": "IASZone", - "entity_id": "binary_sensor.nyce_3014_77665544_ias_zone", + DEV_SIG_CHANNELS: ["ias_zone"], + DEV_SIG_ENT_MAP_CLASS: "IASZone", + DEV_SIG_ENT_MAP_ID: "binary_sensor.nyce_3014_77665544_ias_zone", }, }, - "event_channels": [], - "manufacturer": "NYCE", - "model": "3014", - "node_descriptor": b"\x02@\x80\xb9\x10RR\x00\x00\x00R\x00\x00", + DEV_SIG_EVT_CHANNELS: [], + SIG_MANUFACTURER: "NYCE", + SIG_MODEL: "3014", + SIG_NODE_DESC: b"\x02@\x80\xb9\x10RR\x00\x00\x00R\x00\x00", }, { - "device_no": 67, - "endpoints": { + DEV_SIG_DEV_NO: 67, + SIG_ENDPOINTS: { 1: { - "device_type": 5, - "endpoint_id": 1, - "in_clusters": [10, 25], - "out_clusters": [1280], - "profile_id": 260, + SIG_EP_TYPE: 5, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [10, 25], + SIG_EP_OUTPUT: [1280], + SIG_EP_PROFILE: 260, }, 242: { - "device_type": 100, - "endpoint_id": 242, - "in_clusters": [], - "out_clusters": [33], - "profile_id": 41440, + SIG_EP_TYPE: 100, + DEV_SIG_EP_ID: 242, + SIG_EP_INPUT: [], + SIG_EP_OUTPUT: [33], + SIG_EP_PROFILE: 41440, }, }, - "entities": ["1:0x0019"], - "entity_map": {}, - "event_channels": [], - "manufacturer": None, - "model": None, - "node_descriptor": b"\x10@\x0f5\x11Y=\x00@\x00=\x00\x00", + DEV_SIG_ENTITIES: ["1:0x0019"], + DEV_SIG_ENT_MAP: {}, + DEV_SIG_EVT_CHANNELS: [], + SIG_MANUFACTURER: None, + SIG_MODEL: None, + SIG_NODE_DESC: b"\x10@\x0f5\x11Y=\x00@\x00=\x00\x00", }, { - "device_no": 68, - "endpoints": { + DEV_SIG_DEV_NO: 68, + SIG_ENDPOINTS: { 1: { - "device_type": 48879, - "endpoint_id": 1, - "in_clusters": [], - "out_clusters": [1280], - "profile_id": 260, + SIG_EP_TYPE: 48879, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [], + SIG_EP_OUTPUT: [1280], + SIG_EP_PROFILE: 260, } }, - "entities": [], - "entity_map": {}, - "event_channels": [], - "manufacturer": None, - "model": None, - "node_descriptor": b"\x00@\x8f\xcd\xabR\x80\x00\x00\x00\x80\x00\x00", + DEV_SIG_ENTITIES: [], + DEV_SIG_ENT_MAP: {}, + DEV_SIG_EVT_CHANNELS: [], + SIG_MANUFACTURER: None, + SIG_MODEL: None, + SIG_NODE_DESC: b"\x00@\x8f\xcd\xabR\x80\x00\x00\x00\x80\x00\x00", }, { - "device_no": 69, - "endpoints": { + DEV_SIG_DEV_NO: 69, + SIG_ENDPOINTS: { 3: { - "device_type": 258, - "endpoint_id": 3, - "in_clusters": [0, 3, 4, 5, 6, 8, 768, 64527], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 258, + DEV_SIG_EP_ID: 3, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 8, 768, 64527], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, } }, - "entities": ["light.osram_lightify_a19_rgbw_77665544_level_light_color_on_off"], - "entity_map": { + DEV_SIG_ENTITIES: [ + "light.osram_lightify_a19_rgbw_77665544_level_light_color_on_off" + ], + DEV_SIG_ENT_MAP: { ("light", "00:11:22:33:44:55:66:77-3"): { - "channels": ["level", "light_color", "on_off"], - "entity_class": "Light", - "entity_id": "light.osram_lightify_a19_rgbw_77665544_level_light_color_on_off", + DEV_SIG_CHANNELS: ["level", "light_color", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.osram_lightify_a19_rgbw_77665544_level_light_color_on_off", } }, - "event_channels": ["3:0x0019"], - "manufacturer": "OSRAM", - "model": "LIGHTIFY A19 RGBW", - "node_descriptor": b"\x01@\x8e\xaa\xbb@\x00\x00\x00\x00\x00\x00\x03", - "zha_quirks": "LIGHTIFYA19RGBW", + DEV_SIG_EVT_CHANNELS: ["3:0x0019"], + SIG_MANUFACTURER: "OSRAM", + SIG_MODEL: "LIGHTIFY A19 RGBW", + SIG_NODE_DESC: b"\x01@\x8e\xaa\xbb@\x00\x00\x00\x00\x00\x00\x03", + DEV_SIG_ZHA_QUIRK: "LIGHTIFYA19RGBW", }, { - "device_no": 70, - "endpoints": { + DEV_SIG_DEV_NO: 70, + SIG_ENDPOINTS: { 1: { - "device_type": 1, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 32, 2821], - "out_clusters": [3, 6, 8, 25], - "profile_id": 260, + SIG_EP_TYPE: 1, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 32, 2821], + SIG_EP_OUTPUT: [3, 6, 8, 25], + SIG_EP_PROFILE: 260, } }, - "entities": ["sensor.osram_lightify_dimming_switch_77665544_power"], - "entity_map": { + DEV_SIG_ENTITIES: ["sensor.osram_lightify_dimming_switch_77665544_power"], + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.osram_lightify_dimming_switch_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.osram_lightify_dimming_switch_77665544_power", } }, - "event_channels": ["1:0x0006", "1:0x0008", "1:0x0019"], - "manufacturer": "OSRAM", - "model": "LIGHTIFY Dimming Switch", - "node_descriptor": b"\x02@\x80\x0c\x11RR\x00\x00\x00R\x00\x00", - "zha_quirks": "CentraLite3130", + DEV_SIG_EVT_CHANNELS: ["1:0x0006", "1:0x0008", "1:0x0019"], + SIG_MANUFACTURER: "OSRAM", + SIG_MODEL: "LIGHTIFY Dimming Switch", + SIG_NODE_DESC: b"\x02@\x80\x0c\x11RR\x00\x00\x00R\x00\x00", + DEV_SIG_ZHA_QUIRK: "CentraLite3130", }, { - "device_no": 71, - "endpoints": { + DEV_SIG_DEV_NO: 71, + SIG_ENDPOINTS: { 3: { - "device_type": 258, - "endpoint_id": 3, - "in_clusters": [0, 3, 4, 5, 6, 8, 768, 64527], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 258, + DEV_SIG_EP_ID: 3, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 8, 768, 64527], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "light.osram_lightify_flex_rgbw_77665544_level_light_color_on_off" ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("light", "00:11:22:33:44:55:66:77-3"): { - "channels": ["level", "light_color", "on_off"], - "entity_class": "Light", - "entity_id": "light.osram_lightify_flex_rgbw_77665544_level_light_color_on_off", + DEV_SIG_CHANNELS: ["level", "light_color", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.osram_lightify_flex_rgbw_77665544_level_light_color_on_off", } }, - "event_channels": ["3:0x0019"], - "manufacturer": "OSRAM", - "model": "LIGHTIFY Flex RGBW", - "node_descriptor": b"\x19@\x8e\xaa\xbb@\x00\x00\x00\x00\x00\x00\x03", - "zha_quirks": "FlexRGBW", + DEV_SIG_EVT_CHANNELS: ["3:0x0019"], + SIG_MANUFACTURER: "OSRAM", + SIG_MODEL: "LIGHTIFY Flex RGBW", + SIG_NODE_DESC: b"\x19@\x8e\xaa\xbb@\x00\x00\x00\x00\x00\x00\x03", + DEV_SIG_ZHA_QUIRK: "FlexRGBW", }, { - "device_no": 72, - "endpoints": { + DEV_SIG_DEV_NO: 72, + SIG_ENDPOINTS: { 3: { - "device_type": 258, - "endpoint_id": 3, - "in_clusters": [0, 3, 4, 5, 6, 8, 768, 2820, 64527], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 258, + DEV_SIG_EP_ID: 3, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 8, 768, 2820, 64527], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "light.osram_lightify_rt_tunable_white_77665544_level_light_color_on_off", "sensor.osram_lightify_rt_tunable_white_77665544_electrical_measurement", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("light", "00:11:22:33:44:55:66:77-3"): { - "channels": ["level", "light_color", "on_off"], - "entity_class": "Light", - "entity_id": "light.osram_lightify_rt_tunable_white_77665544_level_light_color_on_off", + DEV_SIG_CHANNELS: ["level", "light_color", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.osram_lightify_rt_tunable_white_77665544_level_light_color_on_off", }, ("sensor", "00:11:22:33:44:55:66:77-3-2820"): { - "channels": ["electrical_measurement"], - "entity_class": "ElectricalMeasurement", - "entity_id": "sensor.osram_lightify_rt_tunable_white_77665544_electrical_measurement", + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurement", + DEV_SIG_ENT_MAP_ID: "sensor.osram_lightify_rt_tunable_white_77665544_electrical_measurement", }, }, - "event_channels": ["3:0x0019"], - "manufacturer": "OSRAM", - "model": "LIGHTIFY RT Tunable White", - "node_descriptor": b"\x01@\x8e\xaa\xbb@\x00\x00\x00\x00\x00\x00\x03", - "zha_quirks": "A19TunableWhite", + DEV_SIG_EVT_CHANNELS: ["3:0x0019"], + SIG_MANUFACTURER: "OSRAM", + SIG_MODEL: "LIGHTIFY RT Tunable White", + SIG_NODE_DESC: b"\x01@\x8e\xaa\xbb@\x00\x00\x00\x00\x00\x00\x03", + DEV_SIG_ZHA_QUIRK: "A19TunableWhite", }, { - "device_no": 73, - "endpoints": { + DEV_SIG_DEV_NO: 73, + SIG_ENDPOINTS: { 3: { - "device_type": 16, - "endpoint_id": 3, - "in_clusters": [0, 3, 4, 5, 6, 2820, 4096, 64527], - "out_clusters": [25], - "profile_id": 49246, + SIG_EP_TYPE: 16, + DEV_SIG_EP_ID: 3, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 2820, 4096, 64527], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 49246, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "sensor.osram_plug_01_77665544_electrical_measurement", "switch.osram_plug_01_77665544_on_off", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("switch", "00:11:22:33:44:55:66:77-3"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.osram_plug_01_77665544_on_off", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.osram_plug_01_77665544_on_off", }, ("sensor", "00:11:22:33:44:55:66:77-3-2820"): { - "channels": ["electrical_measurement"], - "entity_class": "ElectricalMeasurement", - "entity_id": "sensor.osram_plug_01_77665544_electrical_measurement", + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurement", + DEV_SIG_ENT_MAP_ID: "sensor.osram_plug_01_77665544_electrical_measurement", }, }, - "event_channels": ["3:0x0019"], - "manufacturer": "OSRAM", - "model": "Plug 01", - "node_descriptor": b"\x01@\x8e\xaa\xbb@\x00\x00\x00\x00\x00\x00\x03", + DEV_SIG_EVT_CHANNELS: ["3:0x0019"], + SIG_MANUFACTURER: "OSRAM", + SIG_MODEL: "Plug 01", + SIG_NODE_DESC: b"\x01@\x8e\xaa\xbb@\x00\x00\x00\x00\x00\x00\x03", }, { - "device_no": 74, - "endpoints": { + DEV_SIG_DEV_NO: 74, + SIG_ENDPOINTS: { 1: { - "device_type": 2064, - "endpoint_id": 1, - "in_clusters": [0, 1, 32, 4096, 64768], - "out_clusters": [3, 4, 5, 6, 8, 25, 768, 4096], - "profile_id": 260, + SIG_EP_TYPE: 2064, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 32, 4096, 64768], + SIG_EP_OUTPUT: [3, 4, 5, 6, 8, 25, 768, 4096], + SIG_EP_PROFILE: 260, }, 2: { - "device_type": 2064, - "endpoint_id": 2, - "in_clusters": [0, 4096, 64768], - "out_clusters": [3, 4, 5, 6, 8, 768, 4096], - "profile_id": 260, + SIG_EP_TYPE: 2064, + DEV_SIG_EP_ID: 2, + SIG_EP_INPUT: [0, 4096, 64768], + SIG_EP_OUTPUT: [3, 4, 5, 6, 8, 768, 4096], + SIG_EP_PROFILE: 260, }, 3: { - "device_type": 2064, - "endpoint_id": 3, - "in_clusters": [0, 4096, 64768], - "out_clusters": [3, 4, 5, 6, 8, 768, 4096], - "profile_id": 260, + SIG_EP_TYPE: 2064, + DEV_SIG_EP_ID: 3, + SIG_EP_INPUT: [0, 4096, 64768], + SIG_EP_OUTPUT: [3, 4, 5, 6, 8, 768, 4096], + SIG_EP_PROFILE: 260, }, 4: { - "device_type": 2064, - "endpoint_id": 4, - "in_clusters": [0, 4096, 64768], - "out_clusters": [3, 4, 5, 6, 8, 768, 4096], - "profile_id": 260, + SIG_EP_TYPE: 2064, + DEV_SIG_EP_ID: 4, + SIG_EP_INPUT: [0, 4096, 64768], + SIG_EP_OUTPUT: [3, 4, 5, 6, 8, 768, 4096], + SIG_EP_PROFILE: 260, }, 5: { - "device_type": 2064, - "endpoint_id": 5, - "in_clusters": [0, 4096, 64768], - "out_clusters": [3, 4, 5, 6, 8, 768, 4096], - "profile_id": 260, + SIG_EP_TYPE: 2064, + DEV_SIG_EP_ID: 5, + SIG_EP_INPUT: [0, 4096, 64768], + SIG_EP_OUTPUT: [3, 4, 5, 6, 8, 768, 4096], + SIG_EP_PROFILE: 260, }, 6: { - "device_type": 2064, - "endpoint_id": 6, - "in_clusters": [0, 4096, 64768], - "out_clusters": [3, 4, 5, 6, 8, 768, 4096], - "profile_id": 260, + SIG_EP_TYPE: 2064, + DEV_SIG_EP_ID: 6, + SIG_EP_INPUT: [0, 4096, 64768], + SIG_EP_OUTPUT: [3, 4, 5, 6, 8, 768, 4096], + SIG_EP_PROFILE: 260, }, }, - "entities": ["sensor.osram_switch_4x_lightify_77665544_power"], - "entity_map": { + DEV_SIG_ENTITIES: ["sensor.osram_switch_4x_lightify_77665544_power"], + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.osram_switch_4x_lightify_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.osram_switch_4x_lightify_77665544_power", } }, - "event_channels": [ + DEV_SIG_EVT_CHANNELS: [ "1:0x0005", "1:0x0006", "1:0x0008", @@ -2635,984 +2668,986 @@ DEVICES = [ "6:0x0008", "6:0x0300", ], - "manufacturer": "OSRAM", - "model": "Switch 4x-LIGHTIFY", - "node_descriptor": b"\x02@\x80\x0c\x11RR\x00\x00\x00R\x00\x00", - "zha_quirks": "LightifyX4", + SIG_MANUFACTURER: "OSRAM", + SIG_MODEL: "Switch 4x-LIGHTIFY", + SIG_NODE_DESC: b"\x02@\x80\x0c\x11RR\x00\x00\x00R\x00\x00", + DEV_SIG_ZHA_QUIRK: "LightifyX4", }, { - "device_no": 75, - "endpoints": { + DEV_SIG_DEV_NO: 75, + SIG_ENDPOINTS: { 1: { - "device_type": 2096, - "endpoint_id": 1, - "in_clusters": [0], - "out_clusters": [0, 3, 4, 5, 6, 8], - "profile_id": 49246, + SIG_EP_TYPE: 2096, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0], + SIG_EP_OUTPUT: [0, 3, 4, 5, 6, 8], + SIG_EP_PROFILE: 49246, }, 2: { - "device_type": 12, - "endpoint_id": 2, - "in_clusters": [0, 1, 3, 15, 64512], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 12, + DEV_SIG_EP_ID: 2, + SIG_EP_INPUT: [0, 1, 3, 15, 64512], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, }, }, - "entities": ["sensor.philips_rwl020_77665544_power"], - "entity_map": { + DEV_SIG_ENTITIES: ["sensor.philips_rwl020_77665544_power"], + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-2-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.philips_rwl020_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.philips_rwl020_77665544_power", }, ("binary_sensor", "00:11:22:33:44:55:66:77-2-15"): { - "channels": ["binary_input"], - "entity_class": "BinaryInput", - "entity_id": "binary_sensor.philips_rwl020_77665544_binary_input", + DEV_SIG_CHANNELS: ["binary_input"], + DEV_SIG_ENT_MAP_CLASS: "BinaryInput", + DEV_SIG_ENT_MAP_ID: "binary_sensor.philips_rwl020_77665544_binary_input", }, }, - "event_channels": ["1:0x0005", "1:0x0006", "1:0x0008", "2:0x0019"], - "manufacturer": "Philips", - "model": "RWL020", - "node_descriptor": b"\x02@\x80\x0b\x10G-\x00\x00\x00-\x00\x00", - "zha_quirks": "PhilipsRWL021", + DEV_SIG_EVT_CHANNELS: ["1:0x0005", "1:0x0006", "1:0x0008", "2:0x0019"], + SIG_MANUFACTURER: "Philips", + SIG_MODEL: "RWL020", + SIG_NODE_DESC: b"\x02@\x80\x0b\x10G-\x00\x00\x00-\x00\x00", + DEV_SIG_ZHA_QUIRK: "PhilipsRWL021", }, { - "device_no": 76, - "endpoints": { + DEV_SIG_DEV_NO: 76, + SIG_ENDPOINTS: { 1: { - "device_type": 1026, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 32, 1026, 1280, 2821], - "out_clusters": [3, 25], - "profile_id": 260, + SIG_EP_TYPE: 1026, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 32, 1026, 1280, 2821], + SIG_EP_OUTPUT: [3, 25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.samjin_button_77665544_ias_zone", "sensor.samjin_button_77665544_power", "sensor.samjin_button_77665544_temperature", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.samjin_button_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.samjin_button_77665544_power", }, ("sensor", "00:11:22:33:44:55:66:77-1-1026"): { - "channels": ["temperature"], - "entity_class": "Temperature", - "entity_id": "sensor.samjin_button_77665544_temperature", + DEV_SIG_CHANNELS: ["temperature"], + DEV_SIG_ENT_MAP_CLASS: "Temperature", + DEV_SIG_ENT_MAP_ID: "sensor.samjin_button_77665544_temperature", }, ("binary_sensor", "00:11:22:33:44:55:66:77-1-1280"): { - "channels": ["ias_zone"], - "entity_class": "IASZone", - "entity_id": "binary_sensor.samjin_button_77665544_ias_zone", + DEV_SIG_CHANNELS: ["ias_zone"], + DEV_SIG_ENT_MAP_CLASS: "IASZone", + DEV_SIG_ENT_MAP_ID: "binary_sensor.samjin_button_77665544_ias_zone", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "Samjin", - "model": "button", - "node_descriptor": b"\x02@\x80A\x12RR\x00\x00,R\x00\x00", - "zha_quirks": "SamjinButton", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "Samjin", + SIG_MODEL: "button", + SIG_NODE_DESC: b"\x02@\x80A\x12RR\x00\x00,R\x00\x00", + DEV_SIG_ZHA_QUIRK: "SamjinButton", }, { - "device_no": 77, - "endpoints": { + DEV_SIG_DEV_NO: 77, + SIG_ENDPOINTS: { 1: { - "device_type": 1026, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 32, 1026, 1280, 64514], - "out_clusters": [3, 25], - "profile_id": 260, + SIG_EP_TYPE: 1026, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 32, 1026, 1280, 64514], + SIG_EP_OUTPUT: [3, 25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.samjin_multi_77665544_ias_zone", "binary_sensor.samjin_multi_77665544_manufacturer_specific", "sensor.samjin_multi_77665544_power", "sensor.samjin_multi_77665544_temperature", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.samjin_multi_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.samjin_multi_77665544_power", }, ("sensor", "00:11:22:33:44:55:66:77-1-1026"): { - "channels": ["temperature"], - "entity_class": "Temperature", - "entity_id": "sensor.samjin_multi_77665544_temperature", + DEV_SIG_CHANNELS: ["temperature"], + DEV_SIG_ENT_MAP_CLASS: "Temperature", + DEV_SIG_ENT_MAP_ID: "sensor.samjin_multi_77665544_temperature", }, ("binary_sensor", "00:11:22:33:44:55:66:77-1-1280"): { - "channels": ["ias_zone"], - "entity_class": "IASZone", - "entity_id": "binary_sensor.samjin_multi_77665544_ias_zone", + DEV_SIG_CHANNELS: ["ias_zone"], + DEV_SIG_ENT_MAP_CLASS: "IASZone", + DEV_SIG_ENT_MAP_ID: "binary_sensor.samjin_multi_77665544_ias_zone", }, ("binary_sensor", "00:11:22:33:44:55:66:77-1-64514"): { - "channels": ["manufacturer_specific"], - "entity_class": "BinaryInput", - "entity_id": "binary_sensor.samjin_multi_77665544_manufacturer_specific", + DEV_SIG_CHANNELS: ["manufacturer_specific"], + DEV_SIG_ENT_MAP_CLASS: "BinaryInput", + DEV_SIG_ENT_MAP_ID: "binary_sensor.samjin_multi_77665544_manufacturer_specific", "default_match": True, }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "Samjin", - "model": "multi", - "node_descriptor": b"\x02@\x80A\x12RR\x00\x00,R\x00\x00", - "zha_quirks": "SmartthingsMultiPurposeSensor", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "Samjin", + SIG_MODEL: "multi", + SIG_NODE_DESC: b"\x02@\x80A\x12RR\x00\x00,R\x00\x00", + DEV_SIG_ZHA_QUIRK: "SmartthingsMultiPurposeSensor", }, { - "device_no": 78, - "endpoints": { + DEV_SIG_DEV_NO: 78, + SIG_ENDPOINTS: { 1: { - "device_type": 1026, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 32, 1026, 1280], - "out_clusters": [3, 25], - "profile_id": 260, + SIG_EP_TYPE: 1026, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 32, 1026, 1280], + SIG_EP_OUTPUT: [3, 25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.samjin_water_77665544_ias_zone", "sensor.samjin_water_77665544_power", "sensor.samjin_water_77665544_temperature", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.samjin_water_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.samjin_water_77665544_power", }, ("sensor", "00:11:22:33:44:55:66:77-1-1026"): { - "channels": ["temperature"], - "entity_class": "Temperature", - "entity_id": "sensor.samjin_water_77665544_temperature", + DEV_SIG_CHANNELS: ["temperature"], + DEV_SIG_ENT_MAP_CLASS: "Temperature", + DEV_SIG_ENT_MAP_ID: "sensor.samjin_water_77665544_temperature", }, ("binary_sensor", "00:11:22:33:44:55:66:77-1-1280"): { - "channels": ["ias_zone"], - "entity_class": "IASZone", - "entity_id": "binary_sensor.samjin_water_77665544_ias_zone", + DEV_SIG_CHANNELS: ["ias_zone"], + DEV_SIG_ENT_MAP_CLASS: "IASZone", + DEV_SIG_ENT_MAP_ID: "binary_sensor.samjin_water_77665544_ias_zone", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "Samjin", - "model": "water", - "node_descriptor": b"\x02@\x80A\x12RR\x00\x00,R\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "Samjin", + SIG_MODEL: "water", + SIG_NODE_DESC: b"\x02@\x80A\x12RR\x00\x00,R\x00\x00", }, { - "device_no": 79, - "endpoints": { + DEV_SIG_DEV_NO: 79, + SIG_ENDPOINTS: { 1: { - "device_type": 0, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 4, 5, 6, 2820, 2821], - "out_clusters": [0, 1, 3, 4, 5, 6, 25, 2820, 2821], - "profile_id": 260, + SIG_EP_TYPE: 0, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 4, 5, 6, 2820, 2821], + SIG_EP_OUTPUT: [0, 1, 3, 4, 5, 6, 25, 2820, 2821], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "sensor.securifi_ltd_unk_model_77665544_electrical_measurement", "switch.securifi_ltd_unk_model_77665544_on_off", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("switch", "00:11:22:33:44:55:66:77-1-6"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.securifi_ltd_unk_model_77665544_on_off", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.securifi_ltd_unk_model_77665544_on_off", }, ("sensor", "00:11:22:33:44:55:66:77-1-2820"): { - "channels": ["electrical_measurement"], - "entity_class": "ElectricalMeasurement", - "entity_id": "sensor.securifi_ltd_unk_model_77665544_electrical_measurement", + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurement", + DEV_SIG_ENT_MAP_ID: "sensor.securifi_ltd_unk_model_77665544_electrical_measurement", }, }, - "event_channels": ["1:0x0005", "1:0x0006", "1:0x0019"], - "manufacturer": "Securifi Ltd.", - "model": None, - "node_descriptor": b"\x01@\x8e\x02\x10RR\x00\x00\x00R\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0005", "1:0x0006", "1:0x0019"], + SIG_MANUFACTURER: "Securifi Ltd.", + SIG_MODEL: None, + SIG_NODE_DESC: b"\x01@\x8e\x02\x10RR\x00\x00\x00R\x00\x00", }, { - "device_no": 80, - "endpoints": { + DEV_SIG_DEV_NO: 80, + SIG_ENDPOINTS: { 1: { - "device_type": 1026, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 32, 1026, 1280, 2821], - "out_clusters": [3, 25], - "profile_id": 260, + SIG_EP_TYPE: 1026, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 32, 1026, 1280, 2821], + SIG_EP_OUTPUT: [3, 25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.sercomm_corp_sz_dws04n_sf_77665544_ias_zone", "sensor.sercomm_corp_sz_dws04n_sf_77665544_power", "sensor.sercomm_corp_sz_dws04n_sf_77665544_temperature", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.sercomm_corp_sz_dws04n_sf_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.sercomm_corp_sz_dws04n_sf_77665544_power", }, ("sensor", "00:11:22:33:44:55:66:77-1-1026"): { - "channels": ["temperature"], - "entity_class": "Temperature", - "entity_id": "sensor.sercomm_corp_sz_dws04n_sf_77665544_temperature", + DEV_SIG_CHANNELS: ["temperature"], + DEV_SIG_ENT_MAP_CLASS: "Temperature", + DEV_SIG_ENT_MAP_ID: "sensor.sercomm_corp_sz_dws04n_sf_77665544_temperature", }, ("binary_sensor", "00:11:22:33:44:55:66:77-1-1280"): { - "channels": ["ias_zone"], - "entity_class": "IASZone", - "entity_id": "binary_sensor.sercomm_corp_sz_dws04n_sf_77665544_ias_zone", + DEV_SIG_CHANNELS: ["ias_zone"], + DEV_SIG_ENT_MAP_CLASS: "IASZone", + DEV_SIG_ENT_MAP_ID: "binary_sensor.sercomm_corp_sz_dws04n_sf_77665544_ias_zone", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "Sercomm Corp.", - "model": "SZ-DWS04N_SF", - "node_descriptor": b"\x02@\x801\x11R\xff\x00\x00\x00\xff\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "Sercomm Corp.", + SIG_MODEL: "SZ-DWS04N_SF", + SIG_NODE_DESC: b"\x02@\x801\x11R\xff\x00\x00\x00\xff\x00\x00", }, { - "device_no": 81, - "endpoints": { + DEV_SIG_DEV_NO: 81, + SIG_ENDPOINTS: { 1: { - "device_type": 256, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 4, 5, 6, 1794, 2820, 2821], - "out_clusters": [3, 10, 25, 2821], - "profile_id": 260, + SIG_EP_TYPE: 256, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 4, 5, 6, 1794, 2820, 2821], + SIG_EP_OUTPUT: [3, 10, 25, 2821], + SIG_EP_PROFILE: 260, }, 2: { - "device_type": 259, - "endpoint_id": 2, - "in_clusters": [0, 1, 3], - "out_clusters": [3, 6], - "profile_id": 260, + SIG_EP_TYPE: 259, + DEV_SIG_EP_ID: 2, + SIG_EP_INPUT: [0, 1, 3], + SIG_EP_OUTPUT: [3, 6], + SIG_EP_PROFILE: 260, }, }, - "entities": [ + DEV_SIG_ENTITIES: [ "light.sercomm_corp_sz_esw01_77665544_on_off", "sensor.sercomm_corp_sz_esw01_77665544_electrical_measurement", "sensor.sercomm_corp_sz_esw01_77665544_smartenergy_metering", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("light", "00:11:22:33:44:55:66:77-1"): { - "channels": ["on_off"], - "entity_class": "Light", - "entity_id": "light.sercomm_corp_sz_esw01_77665544_on_off", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.sercomm_corp_sz_esw01_77665544_on_off", }, ("sensor", "00:11:22:33:44:55:66:77-1-1794"): { - "channels": ["smartenergy_metering"], - "entity_class": "SmartEnergyMetering", - "entity_id": "sensor.sercomm_corp_sz_esw01_77665544_smartenergy_metering", + DEV_SIG_CHANNELS: ["smartenergy_metering"], + DEV_SIG_ENT_MAP_CLASS: "SmartEnergyMetering", + DEV_SIG_ENT_MAP_ID: "sensor.sercomm_corp_sz_esw01_77665544_smartenergy_metering", }, ("sensor", "00:11:22:33:44:55:66:77-1-2820"): { - "channels": ["electrical_measurement"], - "entity_class": "ElectricalMeasurement", - "entity_id": "sensor.sercomm_corp_sz_esw01_77665544_electrical_measurement", + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurement", + DEV_SIG_ENT_MAP_ID: "sensor.sercomm_corp_sz_esw01_77665544_electrical_measurement", }, }, - "event_channels": ["1:0x0019", "2:0x0006"], - "manufacturer": "Sercomm Corp.", - "model": "SZ-ESW01", - "node_descriptor": b"\x01@\x8e1\x11RR\x00\x00\x00R\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0019", "2:0x0006"], + SIG_MANUFACTURER: "Sercomm Corp.", + SIG_MODEL: "SZ-ESW01", + SIG_NODE_DESC: b"\x01@\x8e1\x11RR\x00\x00\x00R\x00\x00", }, { - "device_no": 82, - "endpoints": { + DEV_SIG_DEV_NO: 82, + SIG_ENDPOINTS: { 1: { - "device_type": 1026, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 32, 1024, 1026, 1280, 2821], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 1026, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 32, 1024, 1026, 1280, 2821], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.sercomm_corp_sz_pir04_77665544_ias_zone", "sensor.sercomm_corp_sz_pir04_77665544_illuminance", "sensor.sercomm_corp_sz_pir04_77665544_power", "sensor.sercomm_corp_sz_pir04_77665544_temperature", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.sercomm_corp_sz_pir04_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.sercomm_corp_sz_pir04_77665544_power", }, ("sensor", "00:11:22:33:44:55:66:77-1-1024"): { - "channels": ["illuminance"], - "entity_class": "Illuminance", - "entity_id": "sensor.sercomm_corp_sz_pir04_77665544_illuminance", + DEV_SIG_CHANNELS: ["illuminance"], + DEV_SIG_ENT_MAP_CLASS: "Illuminance", + DEV_SIG_ENT_MAP_ID: "sensor.sercomm_corp_sz_pir04_77665544_illuminance", }, ("sensor", "00:11:22:33:44:55:66:77-1-1026"): { - "channels": ["temperature"], - "entity_class": "Temperature", - "entity_id": "sensor.sercomm_corp_sz_pir04_77665544_temperature", + DEV_SIG_CHANNELS: ["temperature"], + DEV_SIG_ENT_MAP_CLASS: "Temperature", + DEV_SIG_ENT_MAP_ID: "sensor.sercomm_corp_sz_pir04_77665544_temperature", }, ("binary_sensor", "00:11:22:33:44:55:66:77-1-1280"): { - "channels": ["ias_zone"], - "entity_class": "IASZone", - "entity_id": "binary_sensor.sercomm_corp_sz_pir04_77665544_ias_zone", + DEV_SIG_CHANNELS: ["ias_zone"], + DEV_SIG_ENT_MAP_CLASS: "IASZone", + DEV_SIG_ENT_MAP_ID: "binary_sensor.sercomm_corp_sz_pir04_77665544_ias_zone", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "Sercomm Corp.", - "model": "SZ-PIR04", - "node_descriptor": b"\x02@\x801\x11RR\x00\x00\x00R\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "Sercomm Corp.", + SIG_MODEL: "SZ-PIR04", + SIG_NODE_DESC: b"\x02@\x801\x11RR\x00\x00\x00R\x00\x00", }, { - "device_no": 83, - "endpoints": { + DEV_SIG_DEV_NO: 83, + SIG_ENDPOINTS: { 1: { - "device_type": 2, - "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 6, 2820, 2821, 65281], - "out_clusters": [3, 4, 25], - "profile_id": 260, + SIG_EP_TYPE: 2, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 2820, 2821, 65281], + SIG_EP_OUTPUT: [3, 4, 25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "sensor.sinope_technologies_rm3250zb_77665544_electrical_measurement", "switch.sinope_technologies_rm3250zb_77665544_on_off", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("switch", "00:11:22:33:44:55:66:77-1-6"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.sinope_technologies_rm3250zb_77665544_on_off", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.sinope_technologies_rm3250zb_77665544_on_off", }, ("sensor", "00:11:22:33:44:55:66:77-1-2820"): { - "channels": ["electrical_measurement"], - "entity_class": "ElectricalMeasurement", - "entity_id": "sensor.sinope_technologies_rm3250zb_77665544_electrical_measurement", + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurement", + DEV_SIG_ENT_MAP_ID: "sensor.sinope_technologies_rm3250zb_77665544_electrical_measurement", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "Sinope Technologies", - "model": "RM3250ZB", - "node_descriptor": b"\x11@\x8e\x9c\x11G+\x00\x00*+\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "Sinope Technologies", + SIG_MODEL: "RM3250ZB", + SIG_NODE_DESC: b"\x11@\x8e\x9c\x11G+\x00\x00*+\x00\x00", }, { - "device_no": 84, - "endpoints": { + DEV_SIG_DEV_NO: 84, + SIG_ENDPOINTS: { 1: { - "device_type": 769, - "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 513, 516, 1026, 2820, 2821, 65281], - "out_clusters": [25, 65281], - "profile_id": 260, + SIG_EP_TYPE: 769, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4, 5, 513, 516, 1026, 2820, 2821, 65281], + SIG_EP_OUTPUT: [25, 65281], + SIG_EP_PROFILE: 260, }, 196: { - "device_type": 769, - "endpoint_id": 196, - "in_clusters": [1], - "out_clusters": [], - "profile_id": 49757, + SIG_EP_TYPE: 769, + DEV_SIG_EP_ID: 196, + SIG_EP_INPUT: [1], + SIG_EP_OUTPUT: [], + SIG_EP_PROFILE: 49757, }, }, - "entities": [ + DEV_SIG_ENTITIES: [ "climate.sinope_technologies_th1123zb_77665544_thermostat", "sensor.sinope_technologies_th1123zb_77665544_electrical_measurement", "sensor.sinope_technologies_th1123zb_77665544_temperature", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("climate", "00:11:22:33:44:55:66:77-1"): { - "channels": ["thermostat"], - "entity_class": "Thermostat", - "entity_id": "climate.sinope_technologies_th1123zb_77665544_thermostat", + DEV_SIG_CHANNELS: ["thermostat"], + DEV_SIG_ENT_MAP_CLASS: "Thermostat", + DEV_SIG_ENT_MAP_ID: "climate.sinope_technologies_th1123zb_77665544_thermostat", }, ("sensor", "00:11:22:33:44:55:66:77-1-1026"): { - "channels": ["temperature"], - "entity_class": "Temperature", - "entity_id": "sensor.sinope_technologies_th1123zb_77665544_temperature", + DEV_SIG_CHANNELS: ["temperature"], + DEV_SIG_ENT_MAP_CLASS: "Temperature", + DEV_SIG_ENT_MAP_ID: "sensor.sinope_technologies_th1123zb_77665544_temperature", }, ("sensor", "00:11:22:33:44:55:66:77-1-2820"): { - "channels": ["electrical_measurement"], - "entity_class": "ElectricalMeasurement", - "entity_id": "sensor.sinope_technologies_th1123zb_77665544_electrical_measurement", + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurement", + DEV_SIG_ENT_MAP_ID: "sensor.sinope_technologies_th1123zb_77665544_electrical_measurement", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "Sinope Technologies", - "model": "TH1123ZB", - "node_descriptor": b"\x12@\x8c\x9c\x11G+\x00\x00\x00+\x00\x00", - "zha_quirks": "SinopeTechnologiesThermostat", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "Sinope Technologies", + SIG_MODEL: "TH1123ZB", + SIG_NODE_DESC: b"\x12@\x8c\x9c\x11G+\x00\x00\x00+\x00\x00", + DEV_SIG_ZHA_QUIRK: "SinopeTechnologiesThermostat", }, { - "device_no": 85, - "endpoints": { + DEV_SIG_DEV_NO: 85, + SIG_ENDPOINTS: { 1: { - "device_type": 769, - "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 513, 516, 1026, 2820, 2821, 65281], - "out_clusters": [25, 65281], - "profile_id": 260, + SIG_EP_TYPE: 769, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4, 5, 513, 516, 1026, 2820, 2821, 65281], + SIG_EP_OUTPUT: [25, 65281], + SIG_EP_PROFILE: 260, }, 196: { - "device_type": 769, - "endpoint_id": 196, - "in_clusters": [1], - "out_clusters": [], - "profile_id": 49757, + SIG_EP_TYPE: 769, + DEV_SIG_EP_ID: 196, + SIG_EP_INPUT: [1], + SIG_EP_OUTPUT: [], + SIG_EP_PROFILE: 49757, }, }, - "entities": [ + DEV_SIG_ENTITIES: [ "sensor.sinope_technologies_th1124zb_77665544_electrical_measurement", "sensor.sinope_technologies_th1124zb_77665544_temperature", "climate.sinope_technologies_th1124zb_77665544_thermostat", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("climate", "00:11:22:33:44:55:66:77-1"): { - "channels": ["thermostat"], - "entity_class": "Thermostat", - "entity_id": "climate.sinope_technologies_th1124zb_77665544_thermostat", + DEV_SIG_CHANNELS: ["thermostat"], + DEV_SIG_ENT_MAP_CLASS: "Thermostat", + DEV_SIG_ENT_MAP_ID: "climate.sinope_technologies_th1124zb_77665544_thermostat", }, ("sensor", "00:11:22:33:44:55:66:77-1-1026"): { - "channels": ["temperature"], - "entity_class": "Temperature", - "entity_id": "sensor.sinope_technologies_th1124zb_77665544_temperature", + DEV_SIG_CHANNELS: ["temperature"], + DEV_SIG_ENT_MAP_CLASS: "Temperature", + DEV_SIG_ENT_MAP_ID: "sensor.sinope_technologies_th1124zb_77665544_temperature", }, ("sensor", "00:11:22:33:44:55:66:77-1-2820"): { - "channels": ["electrical_measurement"], - "entity_class": "ElectricalMeasurement", - "entity_id": "sensor.sinope_technologies_th1124zb_77665544_electrical_measurement", + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurement", + DEV_SIG_ENT_MAP_ID: "sensor.sinope_technologies_th1124zb_77665544_electrical_measurement", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "Sinope Technologies", - "model": "TH1124ZB", - "node_descriptor": b"\x11@\x8e\x9c\x11G+\x00\x00\x00+\x00\x00", - "zha_quirks": "SinopeTechnologiesThermostat", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "Sinope Technologies", + SIG_MODEL: "TH1124ZB", + SIG_NODE_DESC: b"\x11@\x8e\x9c\x11G+\x00\x00\x00+\x00\x00", + DEV_SIG_ZHA_QUIRK: "SinopeTechnologiesThermostat", }, { - "device_no": 86, - "endpoints": { + DEV_SIG_DEV_NO: 86, + SIG_ENDPOINTS: { 1: { - "device_type": 2, - "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 6, 9, 15, 2820], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 2, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 9, 15, 2820], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "sensor.smartthings_outletv4_77665544_electrical_measurement", "switch.smartthings_outletv4_77665544_on_off", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("switch", "00:11:22:33:44:55:66:77-1-6"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.smartthings_outletv4_77665544_on_off", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.smartthings_outletv4_77665544_on_off", }, ("sensor", "00:11:22:33:44:55:66:77-1-2820"): { - "channels": ["electrical_measurement"], - "entity_class": "ElectricalMeasurement", - "entity_id": "sensor.smartthings_outletv4_77665544_electrical_measurement", + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurement", + DEV_SIG_ENT_MAP_ID: "sensor.smartthings_outletv4_77665544_electrical_measurement", }, ("binary_sensor", "00:11:22:33:44:55:66:77-1-15"): { - "channels": ["binary_input"], - "entity_class": "BinaryInput", - "entity_id": "binary_sensor.smartthings_outletv4_77665544_binary_input", + DEV_SIG_CHANNELS: ["binary_input"], + DEV_SIG_ENT_MAP_CLASS: "BinaryInput", + DEV_SIG_ENT_MAP_ID: "binary_sensor.smartthings_outletv4_77665544_binary_input", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "SmartThings", - "model": "outletv4", - "node_descriptor": b"\x01@\x8e\n\x11RR\x00\x00\x00R\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "SmartThings", + SIG_MODEL: "outletv4", + SIG_NODE_DESC: b"\x01@\x8e\n\x11RR\x00\x00\x00R\x00\x00", }, { - "device_no": 87, - "endpoints": { + DEV_SIG_DEV_NO: 87, + SIG_ENDPOINTS: { 1: { - "device_type": 32768, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 15, 32], - "out_clusters": [3, 25], - "profile_id": 260, + SIG_EP_TYPE: 32768, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 15, 32], + SIG_EP_OUTPUT: [3, 25], + SIG_EP_PROFILE: 260, } }, - "entities": ["device_tracker.smartthings_tagv4_77665544_power"], - "entity_map": { + DEV_SIG_ENTITIES: ["device_tracker.smartthings_tagv4_77665544_power"], + DEV_SIG_ENT_MAP: { ("device_tracker", "00:11:22:33:44:55:66:77-1"): { - "channels": ["power"], - "entity_class": "ZHADeviceScannerEntity", - "entity_id": "device_tracker.smartthings_tagv4_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "ZHADeviceScannerEntity", + DEV_SIG_ENT_MAP_ID: "device_tracker.smartthings_tagv4_77665544_power", }, ("binary_sensor", "00:11:22:33:44:55:66:77-1-15"): { - "channels": ["binary_input"], - "entity_class": "BinaryInput", - "entity_id": "binary_sensor.smartthings_tagv4_77665544_binary_input", + DEV_SIG_CHANNELS: ["binary_input"], + DEV_SIG_ENT_MAP_CLASS: "BinaryInput", + DEV_SIG_ENT_MAP_ID: "binary_sensor.smartthings_tagv4_77665544_binary_input", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "SmartThings", - "model": "tagv4", - "node_descriptor": b"\x02@\x80\n\x11RR\x00\x00\x00R\x00\x00", - "zha_quirks": "SmartThingsTagV4", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "SmartThings", + SIG_MODEL: "tagv4", + SIG_NODE_DESC: b"\x02@\x80\n\x11RR\x00\x00\x00R\x00\x00", + DEV_SIG_ZHA_QUIRK: "SmartThingsTagV4", }, { - "device_no": 88, - "endpoints": { + DEV_SIG_DEV_NO: 88, + SIG_ENDPOINTS: { 1: { - "device_type": 2, - "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 6, 25], - "out_clusters": [], - "profile_id": 260, + SIG_EP_TYPE: 2, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 25], + SIG_EP_OUTPUT: [], + SIG_EP_PROFILE: 260, } }, - "entities": ["switch.third_reality_inc_3rss007z_77665544_on_off"], - "entity_map": { + DEV_SIG_ENTITIES: ["switch.third_reality_inc_3rss007z_77665544_on_off"], + DEV_SIG_ENT_MAP: { ("switch", "00:11:22:33:44:55:66:77-1-6"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.third_reality_inc_3rss007z_77665544_on_off", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.third_reality_inc_3rss007z_77665544_on_off", } }, - "event_channels": [], - "manufacturer": "Third Reality, Inc", - "model": "3RSS007Z", - "node_descriptor": b"\x02@\x803\x12\x7fd\x00\x00,d\x00\x00", + DEV_SIG_EVT_CHANNELS: [], + SIG_MANUFACTURER: "Third Reality, Inc", + SIG_MODEL: "3RSS007Z", + SIG_NODE_DESC: b"\x02@\x803\x12\x7fd\x00\x00,d\x00\x00", }, { - "device_no": 89, - "endpoints": { + DEV_SIG_DEV_NO: 89, + SIG_ENDPOINTS: { 1: { - "device_type": 2, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 4, 5, 6, 25], - "out_clusters": [1], - "profile_id": 260, + SIG_EP_TYPE: 2, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 4, 5, 6, 25], + SIG_EP_OUTPUT: [1], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "sensor.third_reality_inc_3rss008z_77665544_power", "switch.third_reality_inc_3rss008z_77665544_on_off", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.third_reality_inc_3rss008z_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.third_reality_inc_3rss008z_77665544_power", }, ("switch", "00:11:22:33:44:55:66:77-1-6"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.third_reality_inc_3rss008z_77665544_on_off", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.third_reality_inc_3rss008z_77665544_on_off", }, }, - "event_channels": [], - "manufacturer": "Third Reality, Inc", - "model": "3RSS008Z", - "node_descriptor": b"\x02@\x803\x12\x7fd\x00\x00,d\x00\x00", - "zha_quirks": "Switch", + DEV_SIG_EVT_CHANNELS: [], + SIG_MANUFACTURER: "Third Reality, Inc", + SIG_MODEL: "3RSS008Z", + SIG_NODE_DESC: b"\x02@\x803\x12\x7fd\x00\x00,d\x00\x00", + DEV_SIG_ZHA_QUIRK: "Switch", }, { - "device_no": 90, - "endpoints": { + DEV_SIG_DEV_NO: 90, + SIG_ENDPOINTS: { 1: { - "device_type": 1026, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 32, 1026, 1280, 2821], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 1026, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 32, 1026, 1280, 2821], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.visonic_mct_340_e_77665544_ias_zone", "sensor.visonic_mct_340_e_77665544_power", "sensor.visonic_mct_340_e_77665544_temperature", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.visonic_mct_340_e_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.visonic_mct_340_e_77665544_power", }, ("sensor", "00:11:22:33:44:55:66:77-1-1026"): { - "channels": ["temperature"], - "entity_class": "Temperature", - "entity_id": "sensor.visonic_mct_340_e_77665544_temperature", + DEV_SIG_CHANNELS: ["temperature"], + DEV_SIG_ENT_MAP_CLASS: "Temperature", + DEV_SIG_ENT_MAP_ID: "sensor.visonic_mct_340_e_77665544_temperature", }, ("binary_sensor", "00:11:22:33:44:55:66:77-1-1280"): { - "channels": ["ias_zone"], - "entity_class": "IASZone", - "entity_id": "binary_sensor.visonic_mct_340_e_77665544_ias_zone", + DEV_SIG_CHANNELS: ["ias_zone"], + DEV_SIG_ENT_MAP_CLASS: "IASZone", + DEV_SIG_ENT_MAP_ID: "binary_sensor.visonic_mct_340_e_77665544_ias_zone", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "Visonic", - "model": "MCT-340 E", - "node_descriptor": b"\x02@\x80\x11\x10RR\x00\x00\x00R\x00\x00", - "zha_quirks": "MCT340E", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "Visonic", + SIG_MODEL: "MCT-340 E", + SIG_NODE_DESC: b"\x02@\x80\x11\x10RR\x00\x00\x00R\x00\x00", + DEV_SIG_ZHA_QUIRK: "MCT340E", }, { - "device_no": 91, - "endpoints": { + DEV_SIG_DEV_NO: 91, + SIG_ENDPOINTS: { 1: { - "device_type": 769, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 4, 5, 32, 513, 514, 516, 2821], - "out_clusters": [10, 25], - "profile_id": 260, + SIG_EP_TYPE: 769, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 4, 5, 32, 513, 514, 516, 2821], + SIG_EP_OUTPUT: [10, 25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "climate.zen_within_zen_01_77665544_fan_thermostat", "sensor.zen_within_zen_01_77665544_power", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.zen_within_zen_01_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.zen_within_zen_01_77665544_power", }, ("climate", "00:11:22:33:44:55:66:77-1"): { - "channels": ["thermostat", "fan"], - "entity_class": "ZenWithinThermostat", - "entity_id": "climate.zen_within_zen_01_77665544_fan_thermostat", + DEV_SIG_CHANNELS: ["thermostat", "fan"], + DEV_SIG_ENT_MAP_CLASS: "ZenWithinThermostat", + DEV_SIG_ENT_MAP_ID: "climate.zen_within_zen_01_77665544_fan_thermostat", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "Zen Within", - "model": "Zen-01", - "node_descriptor": b"\x02@\x80X\x11R\x80\x00\x00\x00\x80\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "Zen Within", + SIG_MODEL: "Zen-01", + SIG_NODE_DESC: b"\x02@\x80X\x11R\x80\x00\x00\x00\x80\x00\x00", }, { - "device_no": 92, - "endpoints": { + DEV_SIG_DEV_NO: 92, + SIG_ENDPOINTS: { 1: { - "device_type": 256, - "endpoint_id": 1, - "in_clusters": [0, 4, 5, 6, 10], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 256, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 4, 5, 6, 10], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, }, 2: { - "device_type": 256, - "endpoint_id": 2, - "in_clusters": [4, 5, 6], - "out_clusters": [], - "profile_id": 260, + SIG_EP_TYPE: 256, + DEV_SIG_EP_ID: 2, + SIG_EP_INPUT: [4, 5, 6], + SIG_EP_OUTPUT: [], + SIG_EP_PROFILE: 260, }, 3: { - "device_type": 256, - "endpoint_id": 3, - "in_clusters": [4, 5, 6], - "out_clusters": [], - "profile_id": 260, + SIG_EP_TYPE: 256, + DEV_SIG_EP_ID: 3, + SIG_EP_INPUT: [4, 5, 6], + SIG_EP_OUTPUT: [], + SIG_EP_PROFILE: 260, }, 4: { - "device_type": 256, - "endpoint_id": 4, - "in_clusters": [4, 5, 6], - "out_clusters": [], - "profile_id": 260, + SIG_EP_TYPE: 256, + DEV_SIG_EP_ID: 4, + SIG_EP_INPUT: [4, 5, 6], + SIG_EP_OUTPUT: [], + SIG_EP_PROFILE: 260, }, }, - "entities": [ + DEV_SIG_ENTITIES: [ "light.tyzb01_ns1ndbww_ts0004_77665544_on_off", "light.tyzb01_ns1ndbww_ts0004_77665544_on_off_2", "light.tyzb01_ns1ndbww_ts0004_77665544_on_off_3", "light.tyzb01_ns1ndbww_ts0004_77665544_on_off_4", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("light", "00:11:22:33:44:55:66:77-1"): { - "channels": ["on_off"], - "entity_class": "Light", - "entity_id": "light.tyzb01_ns1ndbww_ts0004_77665544_on_off_4", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.tyzb01_ns1ndbww_ts0004_77665544_on_off_4", }, ("light", "00:11:22:33:44:55:66:77-2"): { - "channels": ["on_off"], - "entity_class": "Light", - "entity_id": "light.tyzb01_ns1ndbww_ts0004_77665544_on_off_3", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.tyzb01_ns1ndbww_ts0004_77665544_on_off_3", }, ("light", "00:11:22:33:44:55:66:77-3"): { - "channels": ["on_off"], - "entity_class": "Light", - "entity_id": "light.tyzb01_ns1ndbww_ts0004_77665544_on_off", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.tyzb01_ns1ndbww_ts0004_77665544_on_off", }, ("light", "00:11:22:33:44:55:66:77-4"): { - "channels": ["on_off"], - "entity_class": "Light", - "entity_id": "light.tyzb01_ns1ndbww_ts0004_77665544_on_off_2", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.tyzb01_ns1ndbww_ts0004_77665544_on_off_2", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "_TYZB01_ns1ndbww", - "model": "TS0004", - "node_descriptor": b"\x01@\x8e\x02\x10R\x00\x02\x00,\x00\x02\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "_TYZB01_ns1ndbww", + SIG_MODEL: "TS0004", + SIG_NODE_DESC: b"\x01@\x8e\x02\x10R\x00\x02\x00,\x00\x02\x00", }, { - "device_no": 93, - "endpoints": { + DEV_SIG_DEV_NO: 93, + SIG_ENDPOINTS: { 1: { - "device_type": 1026, - "endpoint_id": 1, - "in_clusters": [0, 1, 3, 21, 32, 1280, 2821], - "out_clusters": [], - "profile_id": 260, + SIG_EP_TYPE: 1026, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 1, 3, 21, 32, 1280, 2821], + SIG_EP_OUTPUT: [], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "binary_sensor.netvox_z308e3ed_77665544_ias_zone", "sensor.netvox_z308e3ed_77665544_power", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("sensor", "00:11:22:33:44:55:66:77-1-1"): { - "channels": ["power"], - "entity_class": "Battery", - "entity_id": "sensor.netvox_z308e3ed_77665544_power", + DEV_SIG_CHANNELS: ["power"], + DEV_SIG_ENT_MAP_CLASS: "Battery", + DEV_SIG_ENT_MAP_ID: "sensor.netvox_z308e3ed_77665544_power", }, ("binary_sensor", "00:11:22:33:44:55:66:77-1-1280"): { - "channels": ["ias_zone"], - "entity_class": "IASZone", - "entity_id": "binary_sensor.netvox_z308e3ed_77665544_ias_zone", + DEV_SIG_CHANNELS: ["ias_zone"], + DEV_SIG_ENT_MAP_CLASS: "IASZone", + DEV_SIG_ENT_MAP_ID: "binary_sensor.netvox_z308e3ed_77665544_ias_zone", }, }, - "event_channels": [], - "manufacturer": "netvox", - "model": "Z308E3ED", - "node_descriptor": b"\x02@\x80\x9f\x10RR\x00\x00\x00R\x00\x00", - "zha_quirks": "Z308E3ED", + DEV_SIG_EVT_CHANNELS: [], + SIG_MANUFACTURER: "netvox", + SIG_MODEL: "Z308E3ED", + SIG_NODE_DESC: b"\x02@\x80\x9f\x10RR\x00\x00\x00R\x00\x00", + DEV_SIG_ZHA_QUIRK: "Z308E3ED", }, { - "device_no": 94, - "endpoints": { + DEV_SIG_DEV_NO: 94, + SIG_ENDPOINTS: { 1: { - "device_type": 257, - "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 6, 8, 1794, 2821], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 257, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 8, 1794, 2821], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "light.sengled_e11_g13_77665544_level_on_off", "sensor.sengled_e11_g13_77665544_smartenergy_metering", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("light", "00:11:22:33:44:55:66:77-1"): { - "channels": ["level", "on_off"], - "entity_class": "Light", - "entity_id": "light.sengled_e11_g13_77665544_level_on_off", + DEV_SIG_CHANNELS: ["level", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.sengled_e11_g13_77665544_level_on_off", }, ("sensor", "00:11:22:33:44:55:66:77-1-1794"): { - "channels": ["smartenergy_metering"], - "entity_class": "SmartEnergyMetering", - "entity_id": "sensor.sengled_e11_g13_77665544_smartenergy_metering", + DEV_SIG_CHANNELS: ["smartenergy_metering"], + DEV_SIG_ENT_MAP_CLASS: "SmartEnergyMetering", + DEV_SIG_ENT_MAP_ID: "sensor.sengled_e11_g13_77665544_smartenergy_metering", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "sengled", - "model": "E11-G13", - "node_descriptor": b"\x02@\x8c`\x11RR\x00\x00\x00R\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "sengled", + SIG_MODEL: "E11-G13", + SIG_NODE_DESC: b"\x02@\x8c`\x11RR\x00\x00\x00R\x00\x00", }, { - "device_no": 95, - "endpoints": { + DEV_SIG_DEV_NO: 95, + SIG_ENDPOINTS: { 1: { - "device_type": 257, - "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 6, 8, 1794, 2821], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 257, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 8, 1794, 2821], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "light.sengled_e12_n14_77665544_level_on_off", "sensor.sengled_e12_n14_77665544_smartenergy_metering", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("light", "00:11:22:33:44:55:66:77-1"): { - "channels": ["level", "on_off"], - "entity_class": "Light", - "entity_id": "light.sengled_e12_n14_77665544_level_on_off", + DEV_SIG_CHANNELS: ["level", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.sengled_e12_n14_77665544_level_on_off", }, ("sensor", "00:11:22:33:44:55:66:77-1-1794"): { - "channels": ["smartenergy_metering"], - "entity_class": "SmartEnergyMetering", - "entity_id": "sensor.sengled_e12_n14_77665544_smartenergy_metering", + DEV_SIG_CHANNELS: ["smartenergy_metering"], + DEV_SIG_ENT_MAP_CLASS: "SmartEnergyMetering", + DEV_SIG_ENT_MAP_ID: "sensor.sengled_e12_n14_77665544_smartenergy_metering", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "sengled", - "model": "E12-N14", - "node_descriptor": b"\x02@\x8c`\x11RR\x00\x00\x00R\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "sengled", + SIG_MODEL: "E12-N14", + SIG_NODE_DESC: b"\x02@\x8c`\x11RR\x00\x00\x00R\x00\x00", }, { - "device_no": 96, - "endpoints": { + DEV_SIG_DEV_NO: 96, + SIG_ENDPOINTS: { 1: { - "device_type": 257, - "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 6, 8, 768, 1794, 2821], - "out_clusters": [25], - "profile_id": 260, + SIG_EP_TYPE: 257, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 8, 768, 1794, 2821], + SIG_EP_OUTPUT: [25], + SIG_EP_PROFILE: 260, } }, - "entities": [ + DEV_SIG_ENTITIES: [ "light.sengled_z01_a19nae26_77665544_level_light_color_on_off", "sensor.sengled_z01_a19nae26_77665544_smartenergy_metering", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("light", "00:11:22:33:44:55:66:77-1"): { - "channels": ["level", "light_color", "on_off"], - "entity_class": "Light", - "entity_id": "light.sengled_z01_a19nae26_77665544_level_light_color_on_off", + DEV_SIG_CHANNELS: ["level", "light_color", "on_off"], + DEV_SIG_ENT_MAP_CLASS: "Light", + DEV_SIG_ENT_MAP_ID: "light.sengled_z01_a19nae26_77665544_level_light_color_on_off", }, ("sensor", "00:11:22:33:44:55:66:77-1-1794"): { - "channels": ["smartenergy_metering"], - "entity_class": "SmartEnergyMetering", - "entity_id": "sensor.sengled_z01_a19nae26_77665544_smartenergy_metering", + DEV_SIG_CHANNELS: ["smartenergy_metering"], + DEV_SIG_ENT_MAP_CLASS: "SmartEnergyMetering", + DEV_SIG_ENT_MAP_ID: "sensor.sengled_z01_a19nae26_77665544_smartenergy_metering", }, }, - "event_channels": ["1:0x0019"], - "manufacturer": "sengled", - "model": "Z01-A19NAE26", - "node_descriptor": b"\x02@\x8c`\x11RR\x00\x00\x00R\x00\x00", + DEV_SIG_EVT_CHANNELS: ["1:0x0019"], + SIG_MANUFACTURER: "sengled", + SIG_MODEL: "Z01-A19NAE26", + SIG_NODE_DESC: b"\x02@\x8c`\x11RR\x00\x00\x00R\x00\x00", }, { - "device_no": 97, - "endpoints": { + DEV_SIG_DEV_NO: 97, + SIG_ENDPOINTS: { 1: { - "device_type": 512, - "endpoint_id": 1, - "in_clusters": [0, 3, 4, 5, 6, 8, 10, 21, 256, 64544, 64545], - "out_clusters": [3, 64544], - "profile_id": 260, + SIG_EP_TYPE: 512, + DEV_SIG_EP_ID: 1, + SIG_EP_INPUT: [0, 3, 4, 5, 6, 8, 10, 21, 256, 64544, 64545], + SIG_EP_OUTPUT: [3, 64544], + SIG_EP_PROFILE: 260, } }, - "entities": ["cover.unk_manufacturer_unk_model_77665544_level_on_off_shade"], - "entity_map": { + DEV_SIG_ENTITIES: [ + "cover.unk_manufacturer_unk_model_77665544_level_on_off_shade" + ], + DEV_SIG_ENT_MAP: { ("cover", "00:11:22:33:44:55:66:77-1"): { - "channels": ["level", "on_off", "shade"], - "entity_class": "Shade", - "entity_id": "cover.unk_manufacturer_unk_model_77665544_level_on_off_shade", + DEV_SIG_CHANNELS: ["level", "on_off", "shade"], + DEV_SIG_ENT_MAP_CLASS: "Shade", + DEV_SIG_ENT_MAP_ID: "cover.unk_manufacturer_unk_model_77665544_level_on_off_shade", } }, - "event_channels": [], - "manufacturer": "unk_manufacturer", - "model": "unk_model", - "node_descriptor": b"\x01@\x8e\x10\x11RR\x00\x00\x00R\x00\x00", + DEV_SIG_EVT_CHANNELS: [], + SIG_MANUFACTURER: "unk_manufacturer", + SIG_MODEL: "unk_model", + SIG_NODE_DESC: b"\x01@\x8e\x10\x11RR\x00\x00\x00R\x00\x00", }, { - "device_no": 98, - "endpoints": { + DEV_SIG_DEV_NO: 98, + SIG_ENDPOINTS: { 208: { - "endpoint_id": 208, - "profile_id": 49413, - "device_type": 0x0001, - "in_clusters": [0x0006, 0x000C], - "out_clusters": [], + DEV_SIG_EP_ID: 208, + SIG_EP_PROFILE: 49413, + SIG_EP_TYPE: 0x0001, + SIG_EP_INPUT: [0x0006, 0x000C], + SIG_EP_OUTPUT: [], }, 209: { - "endpoint_id": 209, - "profile_id": 49413, - "device_type": 0x0001, - "in_clusters": [0x0006, 0x000C], - "out_clusters": [], + DEV_SIG_EP_ID: 209, + SIG_EP_PROFILE: 49413, + SIG_EP_TYPE: 0x0001, + SIG_EP_INPUT: [0x0006, 0x000C], + SIG_EP_OUTPUT: [], }, 210: { - "endpoint_id": 210, - "profile_id": 49413, - "device_type": 0x0001, - "in_clusters": [0x0006, 0x000C], - "out_clusters": [], + DEV_SIG_EP_ID: 210, + SIG_EP_PROFILE: 49413, + SIG_EP_TYPE: 0x0001, + SIG_EP_INPUT: [0x0006, 0x000C], + SIG_EP_OUTPUT: [], }, 211: { - "endpoint_id": 211, - "profile_id": 49413, - "device_type": 0x0001, - "in_clusters": [0x0006, 0x000C], - "out_clusters": [], + DEV_SIG_EP_ID: 211, + SIG_EP_PROFILE: 49413, + SIG_EP_TYPE: 0x0001, + SIG_EP_INPUT: [0x0006, 0x000C], + SIG_EP_OUTPUT: [], }, 212: { - "endpoint_id": 212, - "profile_id": 49413, - "device_type": 0x0001, - "in_clusters": [0x0006], - "out_clusters": [], + DEV_SIG_EP_ID: 212, + SIG_EP_PROFILE: 49413, + SIG_EP_TYPE: 0x0001, + SIG_EP_INPUT: [0x0006], + SIG_EP_OUTPUT: [], }, 213: { - "endpoint_id": 213, - "profile_id": 49413, - "device_type": 0x0001, - "in_clusters": [0x0006], - "out_clusters": [], + DEV_SIG_EP_ID: 213, + SIG_EP_PROFILE: 49413, + SIG_EP_TYPE: 0x0001, + SIG_EP_INPUT: [0x0006], + SIG_EP_OUTPUT: [], }, 214: { - "endpoint_id": 214, - "profile_id": 49413, - "device_type": 0x0001, - "in_clusters": [0x0006], - "out_clusters": [], + DEV_SIG_EP_ID: 214, + SIG_EP_PROFILE: 49413, + SIG_EP_TYPE: 0x0001, + SIG_EP_INPUT: [0x0006], + SIG_EP_OUTPUT: [], }, 215: { - "endpoint_id": 215, - "profile_id": 49413, - "device_type": 0x0001, - "in_clusters": [0x0006, 0x000C], - "out_clusters": [], + DEV_SIG_EP_ID: 215, + SIG_EP_PROFILE: 49413, + SIG_EP_TYPE: 0x0001, + SIG_EP_INPUT: [0x0006, 0x000C], + SIG_EP_OUTPUT: [], }, 216: { - "endpoint_id": 216, - "profile_id": 49413, - "device_type": 0x0001, - "in_clusters": [0x0006], - "out_clusters": [], + DEV_SIG_EP_ID: 216, + SIG_EP_PROFILE: 49413, + SIG_EP_TYPE: 0x0001, + SIG_EP_INPUT: [0x0006], + SIG_EP_OUTPUT: [], }, 217: { - "endpoint_id": 217, - "profile_id": 49413, - "device_type": 0x0001, - "in_clusters": [0x0006], - "out_clusters": [], + DEV_SIG_EP_ID: 217, + SIG_EP_PROFILE: 49413, + SIG_EP_TYPE: 0x0001, + SIG_EP_INPUT: [0x0006], + SIG_EP_OUTPUT: [], }, 218: { - "endpoint_id": 218, - "profile_id": 49413, - "device_type": 0x0001, - "in_clusters": [0x0006, 0x000D], - "out_clusters": [], + DEV_SIG_EP_ID: 218, + SIG_EP_PROFILE: 49413, + SIG_EP_TYPE: 0x0001, + SIG_EP_INPUT: [0x0006, 0x000D], + SIG_EP_OUTPUT: [], }, 219: { - "endpoint_id": 219, - "profile_id": 49413, - "device_type": 0x0001, - "in_clusters": [0x0006, 0x000D], - "out_clusters": [], + DEV_SIG_EP_ID: 219, + SIG_EP_PROFILE: 49413, + SIG_EP_TYPE: 0x0001, + SIG_EP_INPUT: [0x0006, 0x000D], + SIG_EP_OUTPUT: [], }, 220: { - "endpoint_id": 220, - "profile_id": 49413, - "device_type": 0x0001, - "in_clusters": [0x0006], - "out_clusters": [], + DEV_SIG_EP_ID: 220, + SIG_EP_PROFILE: 49413, + SIG_EP_TYPE: 0x0001, + SIG_EP_INPUT: [0x0006], + SIG_EP_OUTPUT: [], }, 221: { - "endpoint_id": 221, - "profile_id": 49413, - "device_type": 0x0001, - "in_clusters": [0x0006], - "out_clusters": [], + DEV_SIG_EP_ID: 221, + SIG_EP_PROFILE: 49413, + SIG_EP_TYPE: 0x0001, + SIG_EP_INPUT: [0x0006], + SIG_EP_OUTPUT: [], }, 222: { - "endpoint_id": 222, - "profile_id": 49413, - "device_type": 0x0001, - "in_clusters": [0x0006], - "out_clusters": [], + DEV_SIG_EP_ID: 222, + SIG_EP_PROFILE: 49413, + SIG_EP_TYPE: 0x0001, + SIG_EP_INPUT: [0x0006], + SIG_EP_OUTPUT: [], }, 232: { - "endpoint_id": 232, - "profile_id": 49413, - "device_type": 0x0001, - "in_clusters": [0x0011, 0x0092], - "out_clusters": [0x0008, 0x0011], + DEV_SIG_EP_ID: 232, + SIG_EP_PROFILE: 49413, + SIG_EP_TYPE: 0x0001, + SIG_EP_INPUT: [0x0011, 0x0092], + SIG_EP_OUTPUT: [0x0008, 0x0011], }, }, - "entities": [ + DEV_SIG_ENTITIES: [ "switch.digi_xbee3_77665544_on_off", "switch.digi_xbee3_77665544_on_off_2", "switch.digi_xbee3_77665544_on_off_3", @@ -3635,121 +3670,121 @@ DEVICES = [ "number.digi_xbee3_77665544_analog_output", "number.digi_xbee3_77665544_analog_output_2", ], - "entity_map": { + DEV_SIG_ENT_MAP: { ("switch", "00:11:22:33:44:55:66:77-208-6"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.digi_xbee3_77665544_on_off", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.digi_xbee3_77665544_on_off", }, ("switch", "00:11:22:33:44:55:66:77-209-6"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.digi_xbee3_77665544_on_off_2", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.digi_xbee3_77665544_on_off_2", }, ("switch", "00:11:22:33:44:55:66:77-210-6"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.digi_xbee3_77665544_on_off_3", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.digi_xbee3_77665544_on_off_3", }, ("switch", "00:11:22:33:44:55:66:77-211-6"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.digi_xbee3_77665544_on_off_4", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.digi_xbee3_77665544_on_off_4", }, ("switch", "00:11:22:33:44:55:66:77-212-6"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.digi_xbee3_77665544_on_off_5", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.digi_xbee3_77665544_on_off_5", }, ("switch", "00:11:22:33:44:55:66:77-213-6"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.digi_xbee3_77665544_on_off_6", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.digi_xbee3_77665544_on_off_6", }, ("switch", "00:11:22:33:44:55:66:77-214-6"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.digi_xbee3_77665544_on_off_7", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.digi_xbee3_77665544_on_off_7", }, ("switch", "00:11:22:33:44:55:66:77-215-6"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.digi_xbee3_77665544_on_off_8", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.digi_xbee3_77665544_on_off_8", }, ("switch", "00:11:22:33:44:55:66:77-216-6"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.digi_xbee3_77665544_on_off_9", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.digi_xbee3_77665544_on_off_9", }, ("switch", "00:11:22:33:44:55:66:77-217-6"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.digi_xbee3_77665544_on_off_10", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.digi_xbee3_77665544_on_off_10", }, ("switch", "00:11:22:33:44:55:66:77-218-6"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.digi_xbee3_77665544_on_off_11", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.digi_xbee3_77665544_on_off_11", }, ("switch", "00:11:22:33:44:55:66:77-219-6"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.digi_xbee3_77665544_on_off_12", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.digi_xbee3_77665544_on_off_12", }, ("switch", "00:11:22:33:44:55:66:77-220-6"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.digi_xbee3_77665544_on_off_13", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.digi_xbee3_77665544_on_off_13", }, ("switch", "00:11:22:33:44:55:66:77-221-6"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.digi_xbee3_77665544_on_off_14", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.digi_xbee3_77665544_on_off_14", }, ("switch", "00:11:22:33:44:55:66:77-222-6"): { - "channels": ["on_off"], - "entity_class": "Switch", - "entity_id": "switch.digi_xbee3_77665544_on_off_15", + DEV_SIG_CHANNELS: ["on_off"], + DEV_SIG_ENT_MAP_CLASS: "Switch", + DEV_SIG_ENT_MAP_ID: "switch.digi_xbee3_77665544_on_off_15", }, ("sensor", "00:11:22:33:44:55:66:77-208-12"): { - "channels": ["analog_input"], - "entity_class": "AnalogInput", - "entity_id": "sensor.digi_xbee3_77665544_analog_input", + DEV_SIG_CHANNELS: ["analog_input"], + DEV_SIG_ENT_MAP_CLASS: "AnalogInput", + DEV_SIG_ENT_MAP_ID: "sensor.digi_xbee3_77665544_analog_input", }, ("sensor", "00:11:22:33:44:55:66:77-209-12"): { - "channels": ["analog_input"], - "entity_class": "AnalogInput", - "entity_id": "sensor.digi_xbee3_77665544_analog_input_2", + DEV_SIG_CHANNELS: ["analog_input"], + DEV_SIG_ENT_MAP_CLASS: "AnalogInput", + DEV_SIG_ENT_MAP_ID: "sensor.digi_xbee3_77665544_analog_input_2", }, ("sensor", "00:11:22:33:44:55:66:77-210-12"): { - "channels": ["analog_input"], - "entity_class": "AnalogInput", - "entity_id": "sensor.digi_xbee3_77665544_analog_input_3", + DEV_SIG_CHANNELS: ["analog_input"], + DEV_SIG_ENT_MAP_CLASS: "AnalogInput", + DEV_SIG_ENT_MAP_ID: "sensor.digi_xbee3_77665544_analog_input_3", }, ("sensor", "00:11:22:33:44:55:66:77-211-12"): { - "channels": ["analog_input"], - "entity_class": "AnalogInput", - "entity_id": "sensor.digi_xbee3_77665544_analog_input_4", + DEV_SIG_CHANNELS: ["analog_input"], + DEV_SIG_ENT_MAP_CLASS: "AnalogInput", + DEV_SIG_ENT_MAP_ID: "sensor.digi_xbee3_77665544_analog_input_4", }, ("sensor", "00:11:22:33:44:55:66:77-215-12"): { - "channels": ["analog_input"], - "entity_class": "AnalogInput", - "entity_id": "sensor.digi_xbee3_77665544_analog_input_5", + DEV_SIG_CHANNELS: ["analog_input"], + DEV_SIG_ENT_MAP_CLASS: "AnalogInput", + DEV_SIG_ENT_MAP_ID: "sensor.digi_xbee3_77665544_analog_input_5", }, ("number", "00:11:22:33:44:55:66:77-218-13"): { - "channels": ["analog_output"], - "entity_class": "ZhaNumber", - "entity_id": "number.digi_xbee3_77665544_analog_output", + DEV_SIG_CHANNELS: ["analog_output"], + DEV_SIG_ENT_MAP_CLASS: "ZhaNumber", + DEV_SIG_ENT_MAP_ID: "number.digi_xbee3_77665544_analog_output", }, ("number", "00:11:22:33:44:55:66:77-219-13"): { - "channels": ["analog_output"], - "entity_class": "ZhaNumber", - "entity_id": "number.digi_xbee3_77665544_analog_output_2", + DEV_SIG_CHANNELS: ["analog_output"], + DEV_SIG_ENT_MAP_CLASS: "ZhaNumber", + DEV_SIG_ENT_MAP_ID: "number.digi_xbee3_77665544_analog_output_2", }, }, - "event_channels": ["232:0x0008"], - "manufacturer": "Digi", - "model": "XBee3", - "node_descriptor": b"\x01@\x8e\x1e\x10R\xff\x00\x00,\xff\x00\x00", + DEV_SIG_EVT_CHANNELS: ["232:0x0008"], + SIG_MANUFACTURER: "Digi", + SIG_MODEL: "XBee3", + SIG_NODE_DESC: b"\x01@\x8e\x1e\x10R\xff\x00\x00,\xff\x00\x00", }, ]