mirror of
https://github.com/home-assistant/core.git
synced 2025-08-31 02:11:32 +02:00
Make sensor startup code more dry in System monitor
This commit is contained in:
@@ -54,6 +54,13 @@ SENSOR_TYPE_MANDATORY_ARG = 4
|
|||||||
|
|
||||||
SIGNAL_SYSTEMMONITOR_UPDATE = "systemmonitor_update"
|
SIGNAL_SYSTEMMONITOR_UPDATE = "systemmonitor_update"
|
||||||
|
|
||||||
|
SENSORS_NO_ARG = ("load_", "memory_", "processor_use", "swap_", "last_boot")
|
||||||
|
SENSORS_WITH_ARG = {
|
||||||
|
"disk_": "disk_arguments",
|
||||||
|
"ipv": "network_arguments",
|
||||||
|
**dict.fromkeys(NET_IO_TYPES, "network_arguments"),
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@lru_cache
|
@lru_cache
|
||||||
def get_cpu_icon() -> Literal["mdi:cpu-64-bit", "mdi:cpu-32-bit"]:
|
def get_cpu_icon() -> Literal["mdi:cpu-64-bit", "mdi:cpu-32-bit"]:
|
||||||
@@ -422,10 +429,10 @@ async def async_setup_entry(
|
|||||||
startup_arguments["cpu_temperature"] = cpu_temperature
|
startup_arguments["cpu_temperature"] = cpu_temperature
|
||||||
|
|
||||||
_LOGGER.debug("Setup from options %s", entry.options)
|
_LOGGER.debug("Setup from options %s", entry.options)
|
||||||
|
|
||||||
for _type, sensor_description in SENSOR_TYPES.items():
|
for _type, sensor_description in SENSOR_TYPES.items():
|
||||||
if _type.startswith("disk_"):
|
for sensor_type, sensor_argument in SENSORS_WITH_ARG.items():
|
||||||
for argument in startup_arguments["disk_arguments"]:
|
if _type.startswith(sensor_type):
|
||||||
|
for argument in startup_arguments[sensor_argument]:
|
||||||
is_enabled = check_legacy_resource(
|
is_enabled = check_legacy_resource(
|
||||||
f"{_type}_{argument}", legacy_resources
|
f"{_type}_{argument}", legacy_resources
|
||||||
)
|
)
|
||||||
@@ -442,85 +449,7 @@ async def async_setup_entry(
|
|||||||
)
|
)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if _type.startswith("ipv"):
|
if _type.startswith(SENSORS_NO_ARG):
|
||||||
for argument in startup_arguments["network_arguments"]:
|
|
||||||
is_enabled = check_legacy_resource(
|
|
||||||
f"{_type}_{argument}", legacy_resources
|
|
||||||
)
|
|
||||||
loaded_resources.add(slugify(f"{_type}_{argument}"))
|
|
||||||
entities.append(
|
|
||||||
SystemMonitorSensor(
|
|
||||||
coordinator,
|
|
||||||
sensor_description,
|
|
||||||
entry.entry_id,
|
|
||||||
argument,
|
|
||||||
is_enabled,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
continue
|
|
||||||
|
|
||||||
if _type == "last_boot":
|
|
||||||
argument = ""
|
|
||||||
is_enabled = check_legacy_resource(f"{_type}_{argument}", legacy_resources)
|
|
||||||
loaded_resources.add(slugify(f"{_type}_{argument}"))
|
|
||||||
entities.append(
|
|
||||||
SystemMonitorSensor(
|
|
||||||
coordinator,
|
|
||||||
sensor_description,
|
|
||||||
entry.entry_id,
|
|
||||||
argument,
|
|
||||||
is_enabled,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
continue
|
|
||||||
|
|
||||||
if _type.startswith("load_"):
|
|
||||||
argument = ""
|
|
||||||
is_enabled = check_legacy_resource(f"{_type}_{argument}", legacy_resources)
|
|
||||||
loaded_resources.add(slugify(f"{_type}_{argument}"))
|
|
||||||
entities.append(
|
|
||||||
SystemMonitorSensor(
|
|
||||||
coordinator,
|
|
||||||
sensor_description,
|
|
||||||
entry.entry_id,
|
|
||||||
argument,
|
|
||||||
is_enabled,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
continue
|
|
||||||
|
|
||||||
if _type.startswith("memory_"):
|
|
||||||
argument = ""
|
|
||||||
is_enabled = check_legacy_resource(f"{_type}_{argument}", legacy_resources)
|
|
||||||
loaded_resources.add(slugify(f"{_type}_{argument}"))
|
|
||||||
entities.append(
|
|
||||||
SystemMonitorSensor(
|
|
||||||
coordinator,
|
|
||||||
sensor_description,
|
|
||||||
entry.entry_id,
|
|
||||||
argument,
|
|
||||||
is_enabled,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
if _type in NET_IO_TYPES:
|
|
||||||
for argument in startup_arguments["network_arguments"]:
|
|
||||||
is_enabled = check_legacy_resource(
|
|
||||||
f"{_type}_{argument}", legacy_resources
|
|
||||||
)
|
|
||||||
loaded_resources.add(slugify(f"{_type}_{argument}"))
|
|
||||||
entities.append(
|
|
||||||
SystemMonitorSensor(
|
|
||||||
coordinator,
|
|
||||||
sensor_description,
|
|
||||||
entry.entry_id,
|
|
||||||
argument,
|
|
||||||
is_enabled,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
continue
|
|
||||||
|
|
||||||
if _type == "processor_use":
|
|
||||||
argument = ""
|
argument = ""
|
||||||
is_enabled = check_legacy_resource(f"{_type}_{argument}", legacy_resources)
|
is_enabled = check_legacy_resource(f"{_type}_{argument}", legacy_resources)
|
||||||
loaded_resources.add(slugify(f"{_type}_{argument}"))
|
loaded_resources.add(slugify(f"{_type}_{argument}"))
|
||||||
@@ -553,20 +482,6 @@ async def async_setup_entry(
|
|||||||
)
|
)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if _type.startswith("swap_"):
|
|
||||||
argument = ""
|
|
||||||
is_enabled = check_legacy_resource(f"{_type}_{argument}", legacy_resources)
|
|
||||||
loaded_resources.add(slugify(f"{_type}_{argument}"))
|
|
||||||
entities.append(
|
|
||||||
SystemMonitorSensor(
|
|
||||||
coordinator,
|
|
||||||
sensor_description,
|
|
||||||
entry.entry_id,
|
|
||||||
argument,
|
|
||||||
is_enabled,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
# Ensure legacy imported disk_* resources are loaded if they are not part
|
# Ensure legacy imported disk_* resources are loaded if they are not part
|
||||||
# of mount points automatically discovered
|
# of mount points automatically discovered
|
||||||
for resource in legacy_resources:
|
for resource in legacy_resources:
|
||||||
|
Reference in New Issue
Block a user