Use DATA_SIZE device class in lidarr (#83907)

This commit is contained in:
epenet 2022-12-13 10:19:22 +01:00 committed by GitHub
parent 1ad4cb40df
commit b5107a3f1d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 24 deletions

View File

@ -2,35 +2,25 @@
import logging import logging
from typing import Final from typing import Final
from homeassistant.const import ( from homeassistant.const import UnitOfInformation
DATA_BYTES,
DATA_EXABYTES,
DATA_GIGABYTES,
DATA_KILOBYTES,
DATA_MEGABYTES,
DATA_PETABYTES,
DATA_TERABYTES,
DATA_YOTTABYTES,
DATA_ZETTABYTES,
)
BYTE_SIZES = [ BYTE_SIZES = [
DATA_BYTES, UnitOfInformation.BYTES,
DATA_KILOBYTES, UnitOfInformation.KILOBYTES,
DATA_MEGABYTES, UnitOfInformation.MEGABYTES,
DATA_GIGABYTES, UnitOfInformation.GIGABYTES,
DATA_TERABYTES, UnitOfInformation.TERABYTES,
DATA_PETABYTES, UnitOfInformation.PETABYTES,
DATA_EXABYTES, UnitOfInformation.EXABYTES,
DATA_ZETTABYTES, UnitOfInformation.ZETTABYTES,
DATA_YOTTABYTES, UnitOfInformation.YOTTABYTES,
] ]
# Defaults # Defaults
DEFAULT_DAYS = "1" DEFAULT_DAYS = "1"
DEFAULT_HOST = "localhost" DEFAULT_HOST = "localhost"
DEFAULT_NAME = "Lidarr" DEFAULT_NAME = "Lidarr"
DEFAULT_UNIT = DATA_GIGABYTES DEFAULT_UNIT = UnitOfInformation.GIGABYTES
DEFAULT_MAX_RECORDS = 20 DEFAULT_MAX_RECORDS = 20
DOMAIN: Final = "lidarr" DOMAIN: Final = "lidarr"

View File

@ -9,12 +9,13 @@ from typing import Any, Generic
from aiopyarr import LidarrQueue, LidarrQueueItem, LidarrRootFolder from aiopyarr import LidarrQueue, LidarrQueueItem, LidarrRootFolder
from homeassistant.components.sensor import ( from homeassistant.components.sensor import (
SensorDeviceClass,
SensorEntity, SensorEntity,
SensorEntityDescription, SensorEntityDescription,
SensorStateClass, SensorStateClass,
) )
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import DATA_GIGABYTES from homeassistant.const import UnitOfInformation
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
@ -29,7 +30,9 @@ def get_space(data: list[LidarrRootFolder], name: str) -> str:
for mount in data: for mount in data:
if name in mount.path: if name in mount.path:
mount.freeSpace = mount.freeSpace if mount.accessible else 0 mount.freeSpace = mount.freeSpace if mount.accessible else 0
space.append(mount.freeSpace / 1024 ** BYTE_SIZES.index(DATA_GIGABYTES)) space.append(
mount.freeSpace / 1024 ** BYTE_SIZES.index(UnitOfInformation.GIGABYTES)
)
return f"{space[0]:.2f}" return f"{space[0]:.2f}"
@ -68,7 +71,8 @@ SENSOR_TYPES: dict[str, LidarrSensorEntityDescription[Any]] = {
"disk_space": LidarrSensorEntityDescription( "disk_space": LidarrSensorEntityDescription(
key="disk_space", key="disk_space",
name="Disk space", name="Disk space",
native_unit_of_measurement=DATA_GIGABYTES, native_unit_of_measurement=UnitOfInformation.GIGABYTES,
device_class=SensorDeviceClass.DATA_SIZE,
icon="mdi:harddisk", icon="mdi:harddisk",
value_fn=get_space, value_fn=get_space,
state_class=SensorStateClass.TOTAL, state_class=SensorStateClass.TOTAL,