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
from typing import Final
from homeassistant.const import (
DATA_BYTES,
DATA_EXABYTES,
DATA_GIGABYTES,
DATA_KILOBYTES,
DATA_MEGABYTES,
DATA_PETABYTES,
DATA_TERABYTES,
DATA_YOTTABYTES,
DATA_ZETTABYTES,
)
from homeassistant.const import UnitOfInformation
BYTE_SIZES = [
DATA_BYTES,
DATA_KILOBYTES,
DATA_MEGABYTES,
DATA_GIGABYTES,
DATA_TERABYTES,
DATA_PETABYTES,
DATA_EXABYTES,
DATA_ZETTABYTES,
DATA_YOTTABYTES,
UnitOfInformation.BYTES,
UnitOfInformation.KILOBYTES,
UnitOfInformation.MEGABYTES,
UnitOfInformation.GIGABYTES,
UnitOfInformation.TERABYTES,
UnitOfInformation.PETABYTES,
UnitOfInformation.EXABYTES,
UnitOfInformation.ZETTABYTES,
UnitOfInformation.YOTTABYTES,
]
# Defaults
DEFAULT_DAYS = "1"
DEFAULT_HOST = "localhost"
DEFAULT_NAME = "Lidarr"
DEFAULT_UNIT = DATA_GIGABYTES
DEFAULT_UNIT = UnitOfInformation.GIGABYTES
DEFAULT_MAX_RECORDS = 20
DOMAIN: Final = "lidarr"

View File

@ -9,12 +9,13 @@ from typing import Any, Generic
from aiopyarr import LidarrQueue, LidarrQueueItem, LidarrRootFolder
from homeassistant.components.sensor import (
SensorDeviceClass,
SensorEntity,
SensorEntityDescription,
SensorStateClass,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import DATA_GIGABYTES
from homeassistant.const import UnitOfInformation
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
@ -29,7 +30,9 @@ def get_space(data: list[LidarrRootFolder], name: str) -> str:
for mount in data:
if name in mount.path:
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}"
@ -68,7 +71,8 @@ SENSOR_TYPES: dict[str, LidarrSensorEntityDescription[Any]] = {
"disk_space": LidarrSensorEntityDescription(
key="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",
value_fn=get_space,
state_class=SensorStateClass.TOTAL,