mirror of
https://github.com/home-assistant/core.git
synced 2025-07-21 20:27:08 +00:00
Add CPU Power to System Bridge (#80781)
* Add CPU Power to System Bridge * Rename * Update homeassistant/components/system_bridge/sensor.py Co-authored-by: Aarni Koskela <akx@iki.fi> * Fix unit * Add suggested_display_precision=2 --------- Co-authored-by: Aarni Koskela <akx@iki.fi>
This commit is contained in:
parent
2a5ffa9a5b
commit
61d260e5fe
@ -10,6 +10,6 @@
|
|||||||
"iot_class": "local_push",
|
"iot_class": "local_push",
|
||||||
"loggers": ["systembridgeconnector"],
|
"loggers": ["systembridgeconnector"],
|
||||||
"quality_scale": "silver",
|
"quality_scale": "silver",
|
||||||
"requirements": ["systembridgeconnector==3.4.8"],
|
"requirements": ["systembridgeconnector==3.4.9"],
|
||||||
"zeroconf": ["_system-bridge._tcp.local."]
|
"zeroconf": ["_system-bridge._tcp.local."]
|
||||||
}
|
}
|
||||||
|
@ -60,6 +60,23 @@ def battery_time_remaining(data: SystemBridgeCoordinatorData) -> datetime | None
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def cpu_power_package(data: SystemBridgeCoordinatorData) -> float | None:
|
||||||
|
"""Return the CPU package power."""
|
||||||
|
if data.cpu.power_package is not None:
|
||||||
|
return data.cpu.power_package
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def cpu_power_per_cpu(
|
||||||
|
data: SystemBridgeCoordinatorData,
|
||||||
|
cpu: int,
|
||||||
|
) -> float | None:
|
||||||
|
"""Return CPU power per CPU."""
|
||||||
|
if (value := getattr(data.cpu, f"power_per_cpu_{cpu}", None)) is not None:
|
||||||
|
return value
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
def cpu_speed(data: SystemBridgeCoordinatorData) -> float | None:
|
def cpu_speed(data: SystemBridgeCoordinatorData) -> float | None:
|
||||||
"""Return the CPU speed."""
|
"""Return the CPU speed."""
|
||||||
if data.cpu.frequency_current is not None:
|
if data.cpu.frequency_current is not None:
|
||||||
@ -133,6 +150,15 @@ BASE_SENSOR_TYPES: tuple[SystemBridgeSensorEntityDescription, ...] = (
|
|||||||
data.system.boot_time, tz=timezone.utc
|
data.system.boot_time, tz=timezone.utc
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
SystemBridgeSensorEntityDescription(
|
||||||
|
key="cpu_power_package",
|
||||||
|
name="CPU Package Power",
|
||||||
|
native_unit_of_measurement=UnitOfPower.WATT,
|
||||||
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
|
suggested_display_precision=2,
|
||||||
|
icon="mdi:chip",
|
||||||
|
value=cpu_power_package,
|
||||||
|
),
|
||||||
SystemBridgeSensorEntityDescription(
|
SystemBridgeSensorEntityDescription(
|
||||||
key="cpu_speed",
|
key="cpu_speed",
|
||||||
name="CPU speed",
|
name="CPU speed",
|
||||||
@ -502,8 +528,7 @@ async def async_setup_entry(
|
|||||||
]
|
]
|
||||||
|
|
||||||
for index in range(coordinator.data.cpu.count):
|
for index in range(coordinator.data.cpu.count):
|
||||||
entities = [
|
entities.append(
|
||||||
*entities,
|
|
||||||
SystemBridgeSensor(
|
SystemBridgeSensor(
|
||||||
coordinator,
|
coordinator,
|
||||||
SystemBridgeSensorEntityDescription(
|
SystemBridgeSensorEntityDescription(
|
||||||
@ -516,8 +541,25 @@ async def async_setup_entry(
|
|||||||
value=lambda data, k=index: getattr(data.cpu, f"usage_{k}", None),
|
value=lambda data, k=index: getattr(data.cpu, f"usage_{k}", None),
|
||||||
),
|
),
|
||||||
entry.data[CONF_PORT],
|
entry.data[CONF_PORT],
|
||||||
),
|
)
|
||||||
]
|
)
|
||||||
|
if hasattr(coordinator.data.cpu, f"power_per_cpu_{index}"):
|
||||||
|
entities.append(
|
||||||
|
SystemBridgeSensor(
|
||||||
|
coordinator,
|
||||||
|
SystemBridgeSensorEntityDescription(
|
||||||
|
key=f"cpu_power_core_{index}",
|
||||||
|
name=f"CPU Core {index} Power",
|
||||||
|
entity_registry_enabled_default=False,
|
||||||
|
native_unit_of_measurement=UnitOfPower.WATT,
|
||||||
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
|
suggested_display_precision=2,
|
||||||
|
icon="mdi:chip",
|
||||||
|
value=lambda data, k=index: cpu_power_per_cpu(data, k),
|
||||||
|
),
|
||||||
|
entry.data[CONF_PORT],
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
async_add_entities(entities)
|
async_add_entities(entities)
|
||||||
|
|
||||||
|
@ -2478,7 +2478,7 @@ swisshydrodata==0.1.0
|
|||||||
synology-srm==0.2.0
|
synology-srm==0.2.0
|
||||||
|
|
||||||
# homeassistant.components.system_bridge
|
# homeassistant.components.system_bridge
|
||||||
systembridgeconnector==3.4.8
|
systembridgeconnector==3.4.9
|
||||||
|
|
||||||
# homeassistant.components.tailscale
|
# homeassistant.components.tailscale
|
||||||
tailscale==0.2.0
|
tailscale==0.2.0
|
||||||
|
@ -1808,7 +1808,7 @@ sunwatcher==0.2.1
|
|||||||
surepy==0.8.0
|
surepy==0.8.0
|
||||||
|
|
||||||
# homeassistant.components.system_bridge
|
# homeassistant.components.system_bridge
|
||||||
systembridgeconnector==3.4.8
|
systembridgeconnector==3.4.9
|
||||||
|
|
||||||
# homeassistant.components.tailscale
|
# homeassistant.components.tailscale
|
||||||
tailscale==0.2.0
|
tailscale==0.2.0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user