Add info based sensors to Smlight integration (#125482)
* Move entity category to class * improve type hints * Regenerate sensor snapshots to remove some invalid entries * Add info sensors that display various device settings/modes * Add strings for info sensors * Update sensor snapshot with new sensors * Use StateType Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com> * Use icon translations * statetype * drop ip sensor * Lookup enum values before translating * entities use options * update options strings strings * lookup values from options * update sensor snapshot --------- Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
This commit is contained in:
parent
5d9c986f87
commit
6aa07243cd
4 changed files with 278 additions and 635 deletions
15
homeassistant/components/smlight/icons.json
Normal file
15
homeassistant/components/smlight/icons.json
Normal file
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"entity": {
|
||||
"sensor": {
|
||||
"device_mode": {
|
||||
"default": "mdi:connection"
|
||||
},
|
||||
"firmware_channel": {
|
||||
"default": "mdi:update"
|
||||
},
|
||||
"zigbee_type": {
|
||||
"default": "mdi:zigbee"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -7,7 +7,7 @@ from dataclasses import dataclass
|
|||
from datetime import datetime, timedelta
|
||||
from itertools import chain
|
||||
|
||||
from pysmlight import Sensors
|
||||
from pysmlight import Info, Sensors
|
||||
|
||||
from homeassistant.components.sensor import (
|
||||
SensorDeviceClass,
|
||||
|
@ -18,6 +18,7 @@ from homeassistant.components.sensor import (
|
|||
from homeassistant.const import EntityCategory, UnitOfInformation, UnitOfTemperature
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
from homeassistant.helpers.typing import StateType
|
||||
from homeassistant.util.dt import utcnow
|
||||
|
||||
from . import SmConfigEntry
|
||||
|
@ -30,11 +31,42 @@ from .entity import SmEntity
|
|||
class SmSensorEntityDescription(SensorEntityDescription):
|
||||
"""Class describing SMLIGHT sensor entities."""
|
||||
|
||||
entity_category = EntityCategory.DIAGNOSTIC
|
||||
value_fn: Callable[[Sensors], float | None]
|
||||
|
||||
|
||||
SENSORS = [
|
||||
@dataclass(frozen=True, kw_only=True)
|
||||
class SmInfoEntityDescription(SensorEntityDescription):
|
||||
"""Class describing SMLIGHT information entities."""
|
||||
|
||||
value_fn: Callable[[Info], StateType]
|
||||
|
||||
|
||||
INFO: list[SmInfoEntityDescription] = [
|
||||
SmInfoEntityDescription(
|
||||
key="device_mode",
|
||||
translation_key="device_mode",
|
||||
device_class=SensorDeviceClass.ENUM,
|
||||
options=["eth", "wifi", "usb"],
|
||||
value_fn=lambda x: x.coord_mode,
|
||||
),
|
||||
SmInfoEntityDescription(
|
||||
key="firmware_channel",
|
||||
translation_key="firmware_channel",
|
||||
device_class=SensorDeviceClass.ENUM,
|
||||
options=["dev", "release"],
|
||||
value_fn=lambda x: x.fw_channel,
|
||||
),
|
||||
SmInfoEntityDescription(
|
||||
key="zigbee_type",
|
||||
translation_key="zigbee_type",
|
||||
device_class=SensorDeviceClass.ENUM,
|
||||
options=["coordinator", "router", "thread"],
|
||||
value_fn=lambda x: x.zb_type,
|
||||
),
|
||||
]
|
||||
|
||||
|
||||
SENSORS: list[SmSensorEntityDescription] = [
|
||||
SmSensorEntityDescription(
|
||||
key="core_temperature",
|
||||
translation_key="core_temperature",
|
||||
|
@ -71,7 +103,7 @@ SENSORS = [
|
|||
),
|
||||
]
|
||||
|
||||
UPTIME = [
|
||||
UPTIME: list[SmSensorEntityDescription] = [
|
||||
SmSensorEntityDescription(
|
||||
key="core_uptime",
|
||||
translation_key="core_uptime",
|
||||
|
@ -99,6 +131,7 @@ async def async_setup_entry(
|
|||
|
||||
async_add_entities(
|
||||
chain(
|
||||
(SmInfoSensorEntity(coordinator, description) for description in INFO),
|
||||
(SmSensorEntity(coordinator, description) for description in SENSORS),
|
||||
(SmUptimeSensorEntity(coordinator, description) for description in UPTIME),
|
||||
)
|
||||
|
@ -109,6 +142,7 @@ class SmSensorEntity(SmEntity, SensorEntity):
|
|||
"""Representation of a slzb sensor."""
|
||||
|
||||
entity_description: SmSensorEntityDescription
|
||||
_attr_entity_category = EntityCategory.DIAGNOSTIC
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
|
@ -122,11 +156,40 @@ class SmSensorEntity(SmEntity, SensorEntity):
|
|||
self._attr_unique_id = f"{coordinator.unique_id}_{description.key}"
|
||||
|
||||
@property
|
||||
def native_value(self) -> datetime | float | None:
|
||||
def native_value(self) -> datetime | str | float | None:
|
||||
"""Return the sensor value."""
|
||||
return self.entity_description.value_fn(self.coordinator.data.sensors)
|
||||
|
||||
|
||||
class SmInfoSensorEntity(SmEntity, SensorEntity):
|
||||
"""Representation of a slzb info sensor."""
|
||||
|
||||
entity_description: SmInfoEntityDescription
|
||||
_attr_entity_category = EntityCategory.DIAGNOSTIC
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
coordinator: SmDataUpdateCoordinator,
|
||||
description: SmInfoEntityDescription,
|
||||
) -> None:
|
||||
"""Initiate slzb sensor."""
|
||||
super().__init__(coordinator)
|
||||
|
||||
self.entity_description = description
|
||||
self._attr_unique_id = f"{coordinator.unique_id}_{description.key}"
|
||||
|
||||
@property
|
||||
def native_value(self) -> StateType:
|
||||
"""Return the sensor value."""
|
||||
value = self.entity_description.value_fn(self.coordinator.data.info)
|
||||
options = self.entity_description.options
|
||||
|
||||
if isinstance(value, int) and options is not None:
|
||||
value = options[value] if 0 <= value < len(options) else None
|
||||
|
||||
return value
|
||||
|
||||
|
||||
class SmUptimeSensorEntity(SmSensorEntity):
|
||||
"""Representation of a slzb uptime sensor."""
|
||||
|
||||
|
|
|
@ -68,6 +68,29 @@
|
|||
},
|
||||
"socket_uptime": {
|
||||
"name": "Zigbee uptime"
|
||||
},
|
||||
"device_mode": {
|
||||
"name": "Connection mode",
|
||||
"state": {
|
||||
"eth": "Ethernet",
|
||||
"wifi": "Wi-Fi",
|
||||
"usb": "USB"
|
||||
}
|
||||
},
|
||||
"firmware_channel": {
|
||||
"name": "Firmware channel",
|
||||
"state": {
|
||||
"dev": "Development",
|
||||
"release": "Stable"
|
||||
}
|
||||
},
|
||||
"zigbee_type": {
|
||||
"name": "Zigbee type",
|
||||
"state": {
|
||||
"coordinator": "Coordinator",
|
||||
"router": "Router",
|
||||
"thread": "Thread"
|
||||
}
|
||||
}
|
||||
},
|
||||
"button": {
|
||||
|
|
|
@ -1,4 +1,62 @@
|
|||
# serializer version: 1
|
||||
# name: test_sensors[sensor.mock_title_connection_mode-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'options': list([
|
||||
'eth',
|
||||
'wifi',
|
||||
'usb',
|
||||
]),
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||
'entity_id': 'sensor.mock_title_connection_mode',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Connection mode',
|
||||
'platform': 'smlight',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'device_mode',
|
||||
'unique_id': 'aa:bb:cc:dd:ee:ff_device_mode',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.mock_title_connection_mode-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'enum',
|
||||
'friendly_name': 'Mock Title Connection mode',
|
||||
'options': list([
|
||||
'eth',
|
||||
'wifi',
|
||||
'usb',
|
||||
]),
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.mock_title_connection_mode',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'eth',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.mock_title_core_chip_temp-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
|
@ -148,6 +206,62 @@
|
|||
'state': '188',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.mock_title_firmware_channel-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'options': list([
|
||||
'dev',
|
||||
'release',
|
||||
]),
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||
'entity_id': 'sensor.mock_title_firmware_channel',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Firmware channel',
|
||||
'platform': 'smlight',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'firmware_channel',
|
||||
'unique_id': 'aa:bb:cc:dd:ee:ff_firmware_channel',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.mock_title_firmware_channel-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'enum',
|
||||
'friendly_name': 'Mock Title Firmware channel',
|
||||
'options': list([
|
||||
'dev',
|
||||
'release',
|
||||
]),
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.mock_title_firmware_channel',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'dev',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.mock_title_ram_usage-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
|
@ -196,100 +310,6 @@
|
|||
'state': '99',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.mock_title_timestamp-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': None,
|
||||
'config_entry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||
'entity_id': 'sensor.mock_title_timestamp',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Timestamp',
|
||||
'platform': 'smlight',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'core_uptime',
|
||||
'unique_id': 'aa:bb:cc:dd:ee:ff_core_uptime',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.mock_title_timestamp-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'timestamp',
|
||||
'friendly_name': 'Mock Title Timestamp',
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.mock_title_timestamp',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': '2024-06-25T02:51:15+00:00',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.mock_title_timestamp_2-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': None,
|
||||
'config_entry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||
'entity_id': 'sensor.mock_title_timestamp_2',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Timestamp',
|
||||
'platform': 'smlight',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'socket_uptime',
|
||||
'unique_id': 'aa:bb:cc:dd:ee:ff_socket_uptime',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.mock_title_timestamp_2-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'timestamp',
|
||||
'friendly_name': 'Mock Title Timestamp',
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.mock_title_timestamp_2',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': '2024-06-30T23:57:53+00:00',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.mock_title_zigbee_chip_temp-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
|
@ -344,6 +364,64 @@
|
|||
'state': '32.7',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.mock_title_zigbee_type-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'options': list([
|
||||
'coordinator',
|
||||
'router',
|
||||
'thread',
|
||||
]),
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||
'entity_id': 'sensor.mock_title_zigbee_type',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Zigbee type',
|
||||
'platform': 'smlight',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'zigbee_type',
|
||||
'unique_id': 'aa:bb:cc:dd:ee:ff_zigbee_type',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.mock_title_zigbee_type-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'enum',
|
||||
'friendly_name': 'Mock Title Zigbee type',
|
||||
'options': list([
|
||||
'coordinator',
|
||||
'router',
|
||||
'thread',
|
||||
]),
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.mock_title_zigbee_type',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'unknown',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.mock_title_zigbee_uptime-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
|
@ -391,539 +469,3 @@
|
|||
'state': '2024-06-30T23:57:53+00:00',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.slzb_06_core_chip_temp-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||
'entity_id': 'sensor.slzb_06_core_chip_temp',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
'sensor': dict({
|
||||
'suggested_display_precision': 1,
|
||||
}),
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.TEMPERATURE: 'temperature'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Core chip temp',
|
||||
'platform': 'smlight',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'core_temperature',
|
||||
'unique_id': 'aa:bb:cc:dd:ee:ff_core_temperature',
|
||||
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.slzb_06_core_chip_temp-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'temperature',
|
||||
'friendly_name': 'slzb-06 Core chip temp',
|
||||
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.slzb_06_core_chip_temp',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': '35.0',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.slzb_06_core_chip_temp]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'temperature',
|
||||
'friendly_name': 'slzb-06 Core chip temp',
|
||||
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.slzb_06_core_chip_temp',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': '35.0',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.slzb_06_core_chip_temp].1
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||
'entity_id': 'sensor.slzb_06_core_chip_temp',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
'sensor': dict({
|
||||
'suggested_display_precision': 1,
|
||||
}),
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.TEMPERATURE: 'temperature'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Core chip temp',
|
||||
'platform': 'smlight',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'core_temperature',
|
||||
'unique_id': 'aa:bb:cc:dd:ee:ff_core_temperature',
|
||||
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.slzb_06_core_chip_temp].2
|
||||
DeviceRegistryEntrySnapshot({
|
||||
'area_id': None,
|
||||
'config_entries': <ANY>,
|
||||
'configuration_url': 'http://slzb-06.local',
|
||||
'connections': set({
|
||||
tuple(
|
||||
'mac',
|
||||
'aa:bb:cc:dd:ee:ff',
|
||||
),
|
||||
}),
|
||||
'disabled_by': None,
|
||||
'entry_type': None,
|
||||
'hw_version': None,
|
||||
'id': <ANY>,
|
||||
'identifiers': set({
|
||||
}),
|
||||
'is_new': False,
|
||||
'labels': set({
|
||||
}),
|
||||
'manufacturer': 'SMLIGHT',
|
||||
'model': 'SLZB-06p7',
|
||||
'model_id': None,
|
||||
'name': 'slzb-06',
|
||||
'name_by_user': None,
|
||||
'primary_config_entry': <ANY>,
|
||||
'serial_number': None,
|
||||
'suggested_area': None,
|
||||
'sw_version': 'core: v2.3.1.dev / zigbee: -1',
|
||||
'via_device_id': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.slzb_06_filesystem_usage-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': None,
|
||||
'config_entry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||
'entity_id': 'sensor.slzb_06_filesystem_usage',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.DATA_SIZE: 'data_size'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Filesystem usage',
|
||||
'platform': 'smlight',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'fs_usage',
|
||||
'unique_id': 'aa:bb:cc:dd:ee:ff_fs_usage',
|
||||
'unit_of_measurement': <UnitOfInformation.KILOBYTES: 'kB'>,
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.slzb_06_filesystem_usage-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'data_size',
|
||||
'friendly_name': 'slzb-06 Filesystem usage',
|
||||
'unit_of_measurement': <UnitOfInformation.KILOBYTES: 'kB'>,
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.slzb_06_filesystem_usage',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': '188',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.slzb_06_filesystem_usage]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'data_size',
|
||||
'friendly_name': 'slzb-06 Filesystem usage',
|
||||
'unit_of_measurement': <UnitOfInformation.KILOBYTES: 'kB'>,
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.slzb_06_filesystem_usage',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': '188',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.slzb_06_filesystem_usage].1
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': None,
|
||||
'config_entry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||
'entity_id': 'sensor.slzb_06_filesystem_usage',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.DATA_SIZE: 'data_size'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Filesystem usage',
|
||||
'platform': 'smlight',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'fs_usage',
|
||||
'unique_id': 'aa:bb:cc:dd:ee:ff_fs_usage',
|
||||
'unit_of_measurement': <UnitOfInformation.KILOBYTES: 'kB'>,
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.slzb_06_filesystem_usage].2
|
||||
DeviceRegistryEntrySnapshot({
|
||||
'area_id': None,
|
||||
'config_entries': <ANY>,
|
||||
'configuration_url': 'http://slzb-06.local',
|
||||
'connections': set({
|
||||
tuple(
|
||||
'mac',
|
||||
'aa:bb:cc:dd:ee:ff',
|
||||
),
|
||||
}),
|
||||
'disabled_by': None,
|
||||
'entry_type': None,
|
||||
'hw_version': None,
|
||||
'id': <ANY>,
|
||||
'identifiers': set({
|
||||
}),
|
||||
'is_new': False,
|
||||
'labels': set({
|
||||
}),
|
||||
'manufacturer': 'SMLIGHT',
|
||||
'model': 'SLZB-06p7',
|
||||
'model_id': None,
|
||||
'name': 'slzb-06',
|
||||
'name_by_user': None,
|
||||
'primary_config_entry': <ANY>,
|
||||
'serial_number': None,
|
||||
'suggested_area': None,
|
||||
'sw_version': 'core: v2.3.1.dev / zigbee: -1',
|
||||
'via_device_id': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.slzb_06_ram_usage-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': None,
|
||||
'config_entry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||
'entity_id': 'sensor.slzb_06_ram_usage',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.DATA_SIZE: 'data_size'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'RAM usage',
|
||||
'platform': 'smlight',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'ram_usage',
|
||||
'unique_id': 'aa:bb:cc:dd:ee:ff_ram_usage',
|
||||
'unit_of_measurement': <UnitOfInformation.KILOBYTES: 'kB'>,
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.slzb_06_ram_usage-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'data_size',
|
||||
'friendly_name': 'slzb-06 RAM usage',
|
||||
'unit_of_measurement': <UnitOfInformation.KILOBYTES: 'kB'>,
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.slzb_06_ram_usage',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': '99',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.slzb_06_ram_usage]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'data_size',
|
||||
'friendly_name': 'slzb-06 RAM usage',
|
||||
'unit_of_measurement': <UnitOfInformation.KILOBYTES: 'kB'>,
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.slzb_06_ram_usage',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': '99',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.slzb_06_ram_usage].1
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': None,
|
||||
'config_entry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||
'entity_id': 'sensor.slzb_06_ram_usage',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.DATA_SIZE: 'data_size'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'RAM usage',
|
||||
'platform': 'smlight',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'ram_usage',
|
||||
'unique_id': 'aa:bb:cc:dd:ee:ff_ram_usage',
|
||||
'unit_of_measurement': <UnitOfInformation.KILOBYTES: 'kB'>,
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.slzb_06_ram_usage].2
|
||||
DeviceRegistryEntrySnapshot({
|
||||
'area_id': None,
|
||||
'config_entries': <ANY>,
|
||||
'configuration_url': 'http://slzb-06.local',
|
||||
'connections': set({
|
||||
tuple(
|
||||
'mac',
|
||||
'aa:bb:cc:dd:ee:ff',
|
||||
),
|
||||
}),
|
||||
'disabled_by': None,
|
||||
'entry_type': None,
|
||||
'hw_version': None,
|
||||
'id': <ANY>,
|
||||
'identifiers': set({
|
||||
}),
|
||||
'is_new': False,
|
||||
'labels': set({
|
||||
}),
|
||||
'manufacturer': 'SMLIGHT',
|
||||
'model': 'SLZB-06p7',
|
||||
'model_id': None,
|
||||
'name': 'slzb-06',
|
||||
'name_by_user': None,
|
||||
'primary_config_entry': <ANY>,
|
||||
'serial_number': None,
|
||||
'suggested_area': None,
|
||||
'sw_version': 'core: v2.3.1.dev / zigbee: -1',
|
||||
'via_device_id': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.slzb_06_zigbee_chip_temp-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||
'entity_id': 'sensor.slzb_06_zigbee_chip_temp',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
'sensor': dict({
|
||||
'suggested_display_precision': 1,
|
||||
}),
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.TEMPERATURE: 'temperature'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Zigbee chip temp',
|
||||
'platform': 'smlight',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'zigbee_temperature',
|
||||
'unique_id': 'aa:bb:cc:dd:ee:ff_zigbee_temperature',
|
||||
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.slzb_06_zigbee_chip_temp-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'temperature',
|
||||
'friendly_name': 'slzb-06 Zigbee chip temp',
|
||||
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.slzb_06_zigbee_chip_temp',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': '32.7',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.slzb_06_zigbee_chip_temp]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'temperature',
|
||||
'friendly_name': 'slzb-06 Zigbee chip temp',
|
||||
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.slzb_06_zigbee_chip_temp',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': '32.7',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.slzb_06_zigbee_chip_temp].1
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||
'entity_id': 'sensor.slzb_06_zigbee_chip_temp',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
'sensor': dict({
|
||||
'suggested_display_precision': 1,
|
||||
}),
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.TEMPERATURE: 'temperature'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Zigbee chip temp',
|
||||
'platform': 'smlight',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'zigbee_temperature',
|
||||
'unique_id': 'aa:bb:cc:dd:ee:ff_zigbee_temperature',
|
||||
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
|
||||
})
|
||||
# ---
|
||||
# name: test_sensors[sensor.slzb_06_zigbee_chip_temp].2
|
||||
DeviceRegistryEntrySnapshot({
|
||||
'area_id': None,
|
||||
'config_entries': <ANY>,
|
||||
'configuration_url': 'http://slzb-06.local',
|
||||
'connections': set({
|
||||
tuple(
|
||||
'mac',
|
||||
'aa:bb:cc:dd:ee:ff',
|
||||
),
|
||||
}),
|
||||
'disabled_by': None,
|
||||
'entry_type': None,
|
||||
'hw_version': None,
|
||||
'id': <ANY>,
|
||||
'identifiers': set({
|
||||
}),
|
||||
'is_new': False,
|
||||
'labels': set({
|
||||
}),
|
||||
'manufacturer': 'SMLIGHT',
|
||||
'model': 'SLZB-06p7',
|
||||
'model_id': None,
|
||||
'name': 'slzb-06',
|
||||
'name_by_user': None,
|
||||
'primary_config_entry': <ANY>,
|
||||
'serial_number': None,
|
||||
'suggested_area': None,
|
||||
'sw_version': 'core: v2.3.1.dev / zigbee: -1',
|
||||
'via_device_id': None,
|
||||
})
|
||||
# ---
|
||||
|
|
Loading…
Add table
Reference in a new issue