Store runtime data inside the config entry in System Monitor (#116816)

* replace optional timeout by sane default

* SystemMonitorConfigEntry noz needed in repairs.py
This commit is contained in:
Michael
2024-05-05 02:03:57 +02:00
committed by GitHub
parent 95ddb734ed
commit 59349d2859
6 changed files with 45 additions and 27 deletions

View File

@ -25,7 +25,7 @@ from homeassistant.components.sensor import (
SensorEntityDescription,
SensorStateClass,
)
from homeassistant.config_entries import SOURCE_IMPORT, ConfigEntry
from homeassistant.config_entries import SOURCE_IMPORT
from homeassistant.const import (
CONF_RESOURCES,
CONF_TYPE,
@ -47,7 +47,8 @@ from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType, StateTyp
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from homeassistant.util import slugify
from .const import CONF_PROCESS, DOMAIN, DOMAIN_COORDINATOR, NET_IO_TYPES
from . import SystemMonitorConfigEntry
from .const import CONF_PROCESS, DOMAIN, NET_IO_TYPES
from .coordinator import SystemMonitorCoordinator
from .util import get_all_disk_mounts, get_all_network_interfaces, read_cpu_temperature
@ -501,20 +502,23 @@ async def async_setup_platform(
async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
hass: HomeAssistant,
entry: SystemMonitorConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up System Montor sensors based on a config entry."""
entities: list[SystemMonitorSensor] = []
legacy_resources: set[str] = set(entry.options.get("resources", []))
loaded_resources: set[str] = set()
coordinator: SystemMonitorCoordinator = hass.data[DOMAIN_COORDINATOR]
coordinator = entry.runtime_data.coordinator
psutil_wrapper = entry.runtime_data.psutil_wrapper
sensor_data = coordinator.data
def get_arguments() -> dict[str, Any]:
"""Return startup information."""
return {
"disk_arguments": get_all_disk_mounts(hass),
"network_arguments": get_all_network_interfaces(hass),
"disk_arguments": get_all_disk_mounts(hass, psutil_wrapper),
"network_arguments": get_all_network_interfaces(hass, psutil_wrapper),
}
cpu_temperature: float | None = None