Files
HomeAssistantVS/custom_components/asusrouter/compilers.py
T
2026-06-11 11:50:50 -04:00

59 lines
1.8 KiB
Python

"""AsusRouter compilers module."""
from __future__ import annotations
from .const import (
CONF_LABELS_INTERFACES,
MAP_NETWORK_TEMP,
NAME,
NETWORK,
SENSORS_PARAM_NETWORK,
)
from .dataclass import ARSensorDescription
def list_sensors_network(
interfaces: list[str] | None = None,
) -> list[ARSensorDescription]:
"""Compile a list of network sensors."""
sensors: list[ARSensorDescription] = []
if not interfaces or len(interfaces) < 1:
return sensors
for intf in interfaces:
interface = MAP_NETWORK_TEMP.get(intf, intf)
for sensor_type, data in SENSORS_PARAM_NETWORK.items():
key = f"{interface}_{sensor_type}"
sensors.append(
ARSensorDescription(
key=key,
key_group=NETWORK,
name=f"{CONF_LABELS_INTERFACES.get(interface, interface)} "
f"{data[NAME]}"
or None,
icon=data["icon"] or None,
state_class=data["state_class"] or None,
device_class=data["device_class"] or None,
native_unit_of_measurement=data[
"native_unit_of_measurement"
]
or None,
suggested_unit_of_measurement=data[
"suggested_unit_of_measurement"
]
or None,
suggested_display_precision=data[
"suggested_display_precision"
]
or None,
entity_registry_enabled_default=data[
"entity_registry_enabled_default"
]
or True,
)
)
return sensors