core/homeassistant/components/glances/const.py

204 lines
5.5 KiB
Python

"""Constants for Glances component."""
from __future__ import annotations
from dataclasses import dataclass
import sys
from homeassistant.components.sensor import SensorDeviceClass, SensorEntityDescription
from homeassistant.const import DATA_GIBIBYTES, DATA_MEBIBYTES, PERCENTAGE, TEMP_CELSIUS
DOMAIN = "glances"
CONF_VERSION = "version"
DEFAULT_HOST = "localhost"
DEFAULT_NAME = "Glances"
DEFAULT_PORT = 61208
DEFAULT_VERSION = 3
DEFAULT_SCAN_INTERVAL = 60
DATA_UPDATED = "glances_data_updated"
SUPPORTED_VERSIONS = [2, 3]
if sys.maxsize > 2 ** 32:
CPU_ICON = "mdi:cpu-64-bit"
else:
CPU_ICON = "mdi:cpu-32-bit"
@dataclass
class GlancesSensorEntityDescription(SensorEntityDescription):
"""Describe Glances sensor entity."""
type: str | None = None
name_suffix: str | None = None
SENSOR_TYPES: tuple[GlancesSensorEntityDescription, ...] = (
GlancesSensorEntityDescription(
key="disk_use_percent",
type="fs",
name_suffix="used percent",
native_unit_of_measurement=PERCENTAGE,
icon="mdi:harddisk",
),
GlancesSensorEntityDescription(
key="disk_use",
type="fs",
name_suffix="used",
native_unit_of_measurement=DATA_GIBIBYTES,
icon="mdi:harddisk",
),
GlancesSensorEntityDescription(
key="disk_free",
type="fs",
name_suffix="free",
native_unit_of_measurement=DATA_GIBIBYTES,
icon="mdi:harddisk",
),
GlancesSensorEntityDescription(
key="memory_use_percent",
type="mem",
name_suffix="RAM used percent",
native_unit_of_measurement=PERCENTAGE,
icon="mdi:memory",
),
GlancesSensorEntityDescription(
key="memory_use",
type="mem",
name_suffix="RAM used",
native_unit_of_measurement=DATA_MEBIBYTES,
icon="mdi:memory",
),
GlancesSensorEntityDescription(
key="memory_free",
type="mem",
name_suffix="RAM free",
native_unit_of_measurement=DATA_MEBIBYTES,
icon="mdi:memory",
),
GlancesSensorEntityDescription(
key="swap_use_percent",
type="memswap",
name_suffix="Swap used percent",
native_unit_of_measurement=PERCENTAGE,
icon="mdi:memory",
),
GlancesSensorEntityDescription(
key="swap_use",
type="memswap",
name_suffix="Swap used",
native_unit_of_measurement=DATA_GIBIBYTES,
icon="mdi:memory",
),
GlancesSensorEntityDescription(
key="swap_free",
type="memswap",
name_suffix="Swap free",
native_unit_of_measurement=DATA_GIBIBYTES,
icon="mdi:memory",
),
GlancesSensorEntityDescription(
key="processor_load",
type="load",
name_suffix="CPU load",
native_unit_of_measurement="15 min",
icon=CPU_ICON,
),
GlancesSensorEntityDescription(
key="process_running",
type="processcount",
name_suffix="Running",
native_unit_of_measurement="Count",
icon=CPU_ICON,
),
GlancesSensorEntityDescription(
key="process_total",
type="processcount",
name_suffix="Total",
native_unit_of_measurement="Count",
icon=CPU_ICON,
),
GlancesSensorEntityDescription(
key="process_thread",
type="processcount",
name_suffix="Thread",
native_unit_of_measurement="Count",
icon=CPU_ICON,
),
GlancesSensorEntityDescription(
key="process_sleeping",
type="processcount",
name_suffix="Sleeping",
native_unit_of_measurement="Count",
icon=CPU_ICON,
),
GlancesSensorEntityDescription(
key="cpu_use_percent",
type="cpu",
name_suffix="CPU used",
native_unit_of_measurement=PERCENTAGE,
icon=CPU_ICON,
),
GlancesSensorEntityDescription(
key="temperature_core",
type="sensors",
name_suffix="Temperature",
native_unit_of_measurement=TEMP_CELSIUS,
device_class=SensorDeviceClass.TEMPERATURE,
),
GlancesSensorEntityDescription(
key="temperature_hdd",
type="sensors",
name_suffix="Temperature",
native_unit_of_measurement=TEMP_CELSIUS,
device_class=SensorDeviceClass.TEMPERATURE,
),
GlancesSensorEntityDescription(
key="fan_speed",
type="sensors",
name_suffix="Fan speed",
native_unit_of_measurement="RPM",
icon="mdi:fan",
),
GlancesSensorEntityDescription(
key="battery",
type="sensors",
name_suffix="Charge",
native_unit_of_measurement=PERCENTAGE,
icon="mdi:battery",
),
GlancesSensorEntityDescription(
key="docker_active",
type="docker",
name_suffix="Containers active",
native_unit_of_measurement="",
icon="mdi:docker",
),
GlancesSensorEntityDescription(
key="docker_cpu_use",
type="docker",
name_suffix="Containers CPU used",
native_unit_of_measurement=PERCENTAGE,
icon="mdi:docker",
),
GlancesSensorEntityDescription(
key="docker_memory_use",
type="docker",
name_suffix="Containers RAM used",
native_unit_of_measurement=DATA_MEBIBYTES,
icon="mdi:docker",
),
GlancesSensorEntityDescription(
key="used",
type="raid",
name_suffix="Raid used",
icon="mdi:harddisk",
),
GlancesSensorEntityDescription(
key="available",
type="raid",
name_suffix="Raid available",
icon="mdi:harddisk",
),
)