Use new enums in system_bridge (#62402)

Co-authored-by: epenet <epenet@users.noreply.github.com>
This commit is contained in:
epenet 2021-12-20 17:15:44 +01:00 committed by GitHub
parent 071e29bf1d
commit 8bd03d520b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 43 additions and 48 deletions

View File

@ -7,8 +7,7 @@ from dataclasses import dataclass
from systembridge import Bridge from systembridge import Bridge
from homeassistant.components.binary_sensor import ( from homeassistant.components.binary_sensor import (
DEVICE_CLASS_BATTERY_CHARGING, BinarySensorDeviceClass,
DEVICE_CLASS_UPDATE,
BinarySensorEntity, BinarySensorEntity,
BinarySensorEntityDescription, BinarySensorEntityDescription,
) )
@ -31,7 +30,7 @@ BASE_BINARY_SENSOR_TYPES: tuple[SystemBridgeBinarySensorEntityDescription, ...]
SystemBridgeBinarySensorEntityDescription( SystemBridgeBinarySensorEntityDescription(
key="version_available", key="version_available",
name="New Version Available", name="New Version Available",
device_class=DEVICE_CLASS_UPDATE, device_class=BinarySensorDeviceClass.UPDATE,
value=lambda bridge: bridge.information.updates.available, value=lambda bridge: bridge.information.updates.available,
), ),
) )
@ -40,7 +39,7 @@ BATTERY_BINARY_SENSOR_TYPES: tuple[SystemBridgeBinarySensorEntityDescription, ..
SystemBridgeBinarySensorEntityDescription( SystemBridgeBinarySensorEntityDescription(
key="battery_is_charging", key="battery_is_charging",
name="Battery Is Charging", name="Battery Is Charging",
device_class=DEVICE_CLASS_BATTERY_CHARGING, device_class=BinarySensorDeviceClass.BATTERY_CHARGING,
value=lambda bridge: bridge.battery.isCharging, value=lambda bridge: bridge.battery.isCharging,
), ),
) )

View File

@ -9,18 +9,14 @@ from typing import Final, cast
from systembridge import Bridge from systembridge import Bridge
from homeassistant.components.sensor import ( from homeassistant.components.sensor import (
STATE_CLASS_MEASUREMENT, SensorDeviceClass,
SensorEntity, SensorEntity,
SensorEntityDescription, SensorEntityDescription,
SensorStateClass,
) )
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import ( from homeassistant.const import (
DATA_GIGABYTES, DATA_GIGABYTES,
DEVICE_CLASS_BATTERY,
DEVICE_CLASS_POWER,
DEVICE_CLASS_TEMPERATURE,
DEVICE_CLASS_TIMESTAMP,
DEVICE_CLASS_VOLTAGE,
ELECTRIC_POTENTIAL_VOLT, ELECTRIC_POTENTIAL_VOLT,
FREQUENCY_GIGAHERTZ, FREQUENCY_GIGAHERTZ,
FREQUENCY_HERTZ, FREQUENCY_HERTZ,
@ -64,7 +60,7 @@ BASE_SENSOR_TYPES: tuple[SystemBridgeSensorEntityDescription, ...] = (
SystemBridgeSensorEntityDescription( SystemBridgeSensorEntityDescription(
key="cpu_speed", key="cpu_speed",
name="CPU Speed", name="CPU Speed",
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=FREQUENCY_GIGAHERTZ, native_unit_of_measurement=FREQUENCY_GIGAHERTZ,
icon="mdi:speedometer", icon="mdi:speedometer",
value=lambda bridge: bridge.cpu.currentSpeed.avg, value=lambda bridge: bridge.cpu.currentSpeed.avg,
@ -73,8 +69,8 @@ BASE_SENSOR_TYPES: tuple[SystemBridgeSensorEntityDescription, ...] = (
key="cpu_temperature", key="cpu_temperature",
name="CPU Temperature", name="CPU Temperature",
entity_registry_enabled_default=False, entity_registry_enabled_default=False,
device_class=DEVICE_CLASS_TEMPERATURE, device_class=SensorDeviceClass.TEMPERATURE,
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=TEMP_CELSIUS, native_unit_of_measurement=TEMP_CELSIUS,
value=lambda bridge: bridge.cpu.temperature.main, value=lambda bridge: bridge.cpu.temperature.main,
), ),
@ -82,29 +78,29 @@ BASE_SENSOR_TYPES: tuple[SystemBridgeSensorEntityDescription, ...] = (
key="cpu_voltage", key="cpu_voltage",
name="CPU Voltage", name="CPU Voltage",
entity_registry_enabled_default=False, entity_registry_enabled_default=False,
device_class=DEVICE_CLASS_VOLTAGE, device_class=SensorDeviceClass.VOLTAGE,
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=ELECTRIC_POTENTIAL_VOLT, native_unit_of_measurement=ELECTRIC_POTENTIAL_VOLT,
value=lambda bridge: bridge.cpu.cpu.voltage, value=lambda bridge: bridge.cpu.cpu.voltage,
), ),
SystemBridgeSensorEntityDescription( SystemBridgeSensorEntityDescription(
key="displays_connected", key="displays_connected",
name="Displays Connected", name="Displays Connected",
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
icon="mdi:monitor", icon="mdi:monitor",
value=lambda bridge: len(bridge.display.displays), value=lambda bridge: len(bridge.display.displays),
), ),
SystemBridgeSensorEntityDescription( SystemBridgeSensorEntityDescription(
key="kernel", key="kernel",
name="Kernel", name="Kernel",
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
icon="mdi:devices", icon="mdi:devices",
value=lambda bridge: bridge.os.kernel, value=lambda bridge: bridge.os.kernel,
), ),
SystemBridgeSensorEntityDescription( SystemBridgeSensorEntityDescription(
key="memory_free", key="memory_free",
name="Memory Free", name="Memory Free",
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=DATA_GIGABYTES, native_unit_of_measurement=DATA_GIGABYTES,
icon="mdi:memory", icon="mdi:memory",
value=lambda bridge: round(bridge.memory.free / 1000 ** 3, 2), value=lambda bridge: round(bridge.memory.free / 1000 ** 3, 2),
@ -112,7 +108,7 @@ BASE_SENSOR_TYPES: tuple[SystemBridgeSensorEntityDescription, ...] = (
SystemBridgeSensorEntityDescription( SystemBridgeSensorEntityDescription(
key="memory_used_percentage", key="memory_used_percentage",
name="Memory Used %", name="Memory Used %",
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=PERCENTAGE, native_unit_of_measurement=PERCENTAGE,
icon="mdi:memory", icon="mdi:memory",
value=lambda bridge: round((bridge.memory.used / bridge.memory.total) * 100, 2), value=lambda bridge: round((bridge.memory.used / bridge.memory.total) * 100, 2),
@ -121,7 +117,7 @@ BASE_SENSOR_TYPES: tuple[SystemBridgeSensorEntityDescription, ...] = (
key="memory_used", key="memory_used",
name="Memory Used", name="Memory Used",
entity_registry_enabled_default=False, entity_registry_enabled_default=False,
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=DATA_GIGABYTES, native_unit_of_measurement=DATA_GIGABYTES,
icon="mdi:memory", icon="mdi:memory",
value=lambda bridge: round(bridge.memory.used / 1000 ** 3, 2), value=lambda bridge: round(bridge.memory.used / 1000 ** 3, 2),
@ -129,14 +125,14 @@ BASE_SENSOR_TYPES: tuple[SystemBridgeSensorEntityDescription, ...] = (
SystemBridgeSensorEntityDescription( SystemBridgeSensorEntityDescription(
key="os", key="os",
name="Operating System", name="Operating System",
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
icon="mdi:devices", icon="mdi:devices",
value=lambda bridge: f"{bridge.os.distro} {bridge.os.release}", value=lambda bridge: f"{bridge.os.distro} {bridge.os.release}",
), ),
SystemBridgeSensorEntityDescription( SystemBridgeSensorEntityDescription(
key="processes_load", key="processes_load",
name="Load", name="Load",
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=PERCENTAGE, native_unit_of_measurement=PERCENTAGE,
icon="mdi:percent", icon="mdi:percent",
value=lambda bridge: round(bridge.processes.load.currentLoad, 2), value=lambda bridge: round(bridge.processes.load.currentLoad, 2),
@ -145,7 +141,7 @@ BASE_SENSOR_TYPES: tuple[SystemBridgeSensorEntityDescription, ...] = (
key="processes_load_idle", key="processes_load_idle",
name="Idle Load", name="Idle Load",
entity_registry_enabled_default=False, entity_registry_enabled_default=False,
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=PERCENTAGE, native_unit_of_measurement=PERCENTAGE,
icon="mdi:percent", icon="mdi:percent",
value=lambda bridge: round(bridge.processes.load.currentLoadIdle, 2), value=lambda bridge: round(bridge.processes.load.currentLoadIdle, 2),
@ -154,7 +150,7 @@ BASE_SENSOR_TYPES: tuple[SystemBridgeSensorEntityDescription, ...] = (
key="processes_load_system", key="processes_load_system",
name="System Load", name="System Load",
entity_registry_enabled_default=False, entity_registry_enabled_default=False,
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=PERCENTAGE, native_unit_of_measurement=PERCENTAGE,
icon="mdi:percent", icon="mdi:percent",
value=lambda bridge: round(bridge.processes.load.currentLoadSystem, 2), value=lambda bridge: round(bridge.processes.load.currentLoadSystem, 2),
@ -163,7 +159,7 @@ BASE_SENSOR_TYPES: tuple[SystemBridgeSensorEntityDescription, ...] = (
key="processes_load_user", key="processes_load_user",
name="User Load", name="User Load",
entity_registry_enabled_default=False, entity_registry_enabled_default=False,
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=PERCENTAGE, native_unit_of_measurement=PERCENTAGE,
icon="mdi:percent", icon="mdi:percent",
value=lambda bridge: round(bridge.processes.load.currentLoadUser, 2), value=lambda bridge: round(bridge.processes.load.currentLoadUser, 2),
@ -186,16 +182,16 @@ BATTERY_SENSOR_TYPES: tuple[SystemBridgeSensorEntityDescription, ...] = (
SystemBridgeSensorEntityDescription( SystemBridgeSensorEntityDescription(
key="battery", key="battery",
name="Battery", name="Battery",
device_class=DEVICE_CLASS_BATTERY, device_class=SensorDeviceClass.BATTERY,
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=PERCENTAGE, native_unit_of_measurement=PERCENTAGE,
value=lambda bridge: bridge.battery.percent, value=lambda bridge: bridge.battery.percent,
), ),
SystemBridgeSensorEntityDescription( SystemBridgeSensorEntityDescription(
key="battery_time_remaining", key="battery_time_remaining",
name="Battery Time Remaining", name="Battery Time Remaining",
device_class=DEVICE_CLASS_TIMESTAMP, device_class=SensorDeviceClass.TIMESTAMP,
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
value=lambda bridge: str( value=lambda bridge: str(
datetime.now() + timedelta(minutes=bridge.battery.timeRemaining) datetime.now() + timedelta(minutes=bridge.battery.timeRemaining)
), ),
@ -221,7 +217,7 @@ async def async_setup_entry(
SystemBridgeSensorEntityDescription( SystemBridgeSensorEntityDescription(
key=f"filesystem_{uid}", key=f"filesystem_{uid}",
name=f"{key} Space Used", name=f"{key} Space Used",
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=PERCENTAGE, native_unit_of_measurement=PERCENTAGE,
icon="mdi:harddisk", icon="mdi:harddisk",
value=lambda bridge, i=key: round( value=lambda bridge, i=key: round(
@ -244,7 +240,7 @@ async def async_setup_entry(
SystemBridgeSensorEntityDescription( SystemBridgeSensorEntityDescription(
key=f"display_{name}_resolution_x", key=f"display_{name}_resolution_x",
name=f"Display {name} Resolution X", name=f"Display {name} Resolution X",
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=PIXELS, native_unit_of_measurement=PIXELS,
icon="mdi:monitor", icon="mdi:monitor",
value=lambda bridge, i=index: bridge.display.displays[ value=lambda bridge, i=index: bridge.display.displays[
@ -257,7 +253,7 @@ async def async_setup_entry(
SystemBridgeSensorEntityDescription( SystemBridgeSensorEntityDescription(
key=f"display_{name}_resolution_y", key=f"display_{name}_resolution_y",
name=f"Display {name} Resolution Y", name=f"Display {name} Resolution Y",
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=PIXELS, native_unit_of_measurement=PIXELS,
icon="mdi:monitor", icon="mdi:monitor",
value=lambda bridge, i=index: bridge.display.displays[ value=lambda bridge, i=index: bridge.display.displays[
@ -270,7 +266,7 @@ async def async_setup_entry(
SystemBridgeSensorEntityDescription( SystemBridgeSensorEntityDescription(
key=f"display_{name}_refresh_rate", key=f"display_{name}_refresh_rate",
name=f"Display {name} Refresh Rate", name=f"Display {name} Refresh Rate",
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=FREQUENCY_HERTZ, native_unit_of_measurement=FREQUENCY_HERTZ,
icon="mdi:monitor", icon="mdi:monitor",
value=lambda bridge, i=index: bridge.display.displays[ value=lambda bridge, i=index: bridge.display.displays[
@ -296,7 +292,7 @@ async def async_setup_entry(
key=f"gpu_{index}_core_clock_speed", key=f"gpu_{index}_core_clock_speed",
name=f"{name} Clock Speed", name=f"{name} Clock Speed",
entity_registry_enabled_default=False, entity_registry_enabled_default=False,
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=FREQUENCY_MEGAHERTZ, native_unit_of_measurement=FREQUENCY_MEGAHERTZ,
icon="mdi:speedometer", icon="mdi:speedometer",
value=lambda bridge, i=index: bridge.graphics.controllers[ value=lambda bridge, i=index: bridge.graphics.controllers[
@ -310,7 +306,7 @@ async def async_setup_entry(
key=f"gpu_{index}_memory_clock_speed", key=f"gpu_{index}_memory_clock_speed",
name=f"{name} Memory Clock Speed", name=f"{name} Memory Clock Speed",
entity_registry_enabled_default=False, entity_registry_enabled_default=False,
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=FREQUENCY_MEGAHERTZ, native_unit_of_measurement=FREQUENCY_MEGAHERTZ,
icon="mdi:speedometer", icon="mdi:speedometer",
value=lambda bridge, i=index: bridge.graphics.controllers[ value=lambda bridge, i=index: bridge.graphics.controllers[
@ -323,7 +319,7 @@ async def async_setup_entry(
SystemBridgeSensorEntityDescription( SystemBridgeSensorEntityDescription(
key=f"gpu_{index}_memory_free", key=f"gpu_{index}_memory_free",
name=f"{name} Memory Free", name=f"{name} Memory Free",
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=DATA_GIGABYTES, native_unit_of_measurement=DATA_GIGABYTES,
icon="mdi:memory", icon="mdi:memory",
value=lambda bridge, i=index: round( value=lambda bridge, i=index: round(
@ -336,7 +332,7 @@ async def async_setup_entry(
SystemBridgeSensorEntityDescription( SystemBridgeSensorEntityDescription(
key=f"gpu_{index}_memory_used_percentage", key=f"gpu_{index}_memory_used_percentage",
name=f"{name} Memory Used %", name=f"{name} Memory Used %",
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=PERCENTAGE, native_unit_of_measurement=PERCENTAGE,
icon="mdi:memory", icon="mdi:memory",
value=lambda bridge, i=index: round( value=lambda bridge, i=index: round(
@ -355,7 +351,7 @@ async def async_setup_entry(
key=f"gpu_{index}_memory_used", key=f"gpu_{index}_memory_used",
name=f"{name} Memory Used", name=f"{name} Memory Used",
entity_registry_enabled_default=False, entity_registry_enabled_default=False,
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=DATA_GIGABYTES, native_unit_of_measurement=DATA_GIGABYTES,
icon="mdi:memory", icon="mdi:memory",
value=lambda bridge, i=index: round( value=lambda bridge, i=index: round(
@ -369,7 +365,7 @@ async def async_setup_entry(
key=f"gpu_{index}_fan_speed", key=f"gpu_{index}_fan_speed",
name=f"{name} Fan Speed", name=f"{name} Fan Speed",
entity_registry_enabled_default=False, entity_registry_enabled_default=False,
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=PERCENTAGE, native_unit_of_measurement=PERCENTAGE,
icon="mdi:fan", icon="mdi:fan",
value=lambda bridge, i=index: bridge.graphics.controllers[ value=lambda bridge, i=index: bridge.graphics.controllers[
@ -383,8 +379,8 @@ async def async_setup_entry(
key=f"gpu_{index}_power_usage", key=f"gpu_{index}_power_usage",
name=f"{name} Power Usage", name=f"{name} Power Usage",
entity_registry_enabled_default=False, entity_registry_enabled_default=False,
device_class=DEVICE_CLASS_POWER, device_class=SensorDeviceClass.POWER,
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=POWER_WATT, native_unit_of_measurement=POWER_WATT,
value=lambda bridge, i=index: bridge.graphics.controllers[ value=lambda bridge, i=index: bridge.graphics.controllers[
i i
@ -397,8 +393,8 @@ async def async_setup_entry(
key=f"gpu_{index}_temperature", key=f"gpu_{index}_temperature",
name=f"{name} Temperature", name=f"{name} Temperature",
entity_registry_enabled_default=False, entity_registry_enabled_default=False,
device_class=DEVICE_CLASS_TEMPERATURE, device_class=SensorDeviceClass.TEMPERATURE,
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=TEMP_CELSIUS, native_unit_of_measurement=TEMP_CELSIUS,
value=lambda bridge, i=index: bridge.graphics.controllers[ value=lambda bridge, i=index: bridge.graphics.controllers[
i i
@ -410,7 +406,7 @@ async def async_setup_entry(
SystemBridgeSensorEntityDescription( SystemBridgeSensorEntityDescription(
key=f"gpu_{index}_usage_percentage", key=f"gpu_{index}_usage_percentage",
name=f"{name} Usage %", name=f"{name} Usage %",
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=PERCENTAGE, native_unit_of_measurement=PERCENTAGE,
icon="mdi:percent", icon="mdi:percent",
value=lambda bridge, i=index: bridge.graphics.controllers[ value=lambda bridge, i=index: bridge.graphics.controllers[
@ -429,7 +425,7 @@ async def async_setup_entry(
key=f"processes_load_cpu_{index}", key=f"processes_load_cpu_{index}",
name=f"Load CPU {index}", name=f"Load CPU {index}",
entity_registry_enabled_default=False, entity_registry_enabled_default=False,
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=PERCENTAGE, native_unit_of_measurement=PERCENTAGE,
icon="mdi:percent", icon="mdi:percent",
value=lambda bridge, index=index: round( value=lambda bridge, index=index: round(
@ -443,7 +439,7 @@ async def async_setup_entry(
key=f"processes_load_cpu_{index}_idle", key=f"processes_load_cpu_{index}_idle",
name=f"Idle Load CPU {index}", name=f"Idle Load CPU {index}",
entity_registry_enabled_default=False, entity_registry_enabled_default=False,
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=PERCENTAGE, native_unit_of_measurement=PERCENTAGE,
icon="mdi:percent", icon="mdi:percent",
value=lambda bridge, index=index: round( value=lambda bridge, index=index: round(
@ -457,7 +453,7 @@ async def async_setup_entry(
key=f"processes_load_cpu_{index}_system", key=f"processes_load_cpu_{index}_system",
name=f"System Load CPU {index}", name=f"System Load CPU {index}",
entity_registry_enabled_default=False, entity_registry_enabled_default=False,
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=PERCENTAGE, native_unit_of_measurement=PERCENTAGE,
icon="mdi:percent", icon="mdi:percent",
value=lambda bridge, index=index: round( value=lambda bridge, index=index: round(
@ -471,7 +467,7 @@ async def async_setup_entry(
key=f"processes_load_cpu_{index}_user", key=f"processes_load_cpu_{index}_user",
name=f"User Load CPU {index}", name=f"User Load CPU {index}",
entity_registry_enabled_default=False, entity_registry_enabled_default=False,
state_class=STATE_CLASS_MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=PERCENTAGE, native_unit_of_measurement=PERCENTAGE,
icon="mdi:percent", icon="mdi:percent",
value=lambda bridge, index=index: round( value=lambda bridge, index=index: round(