Add selectable host temperature sensors (#1307)

This commit is contained in:
ZacharyZcR
2026-08-24 01:08:39 +08:00
committed by GitHub
parent 5e76aec2bf
commit 433ede0b0d
6 changed files with 115 additions and 5 deletions
@@ -58,12 +58,19 @@ export function parseSysfsThermalOutput(output: string): TemperatureSensor[] {
export function parseSensorsOutput(output: string): TemperatureSensor[] {
const seen = new Set<string>();
const sensors: TemperatureSensor[] = [];
let device = "";
for (const line of output.split("\n")) {
const trimmed = line.trim();
if (trimmed && !line.startsWith(" ") && !trimmed.includes(":")) {
device = trimmed;
continue;
}
const match = line.match(/^\s*([^:]+):\s*([+-]?\d+(?:\.\d+)?)\s*°?C\b/i);
if (!match) continue;
const sensor = normalizeSensor(match[1], Number(match[2]));
const label = device ? `${device}: ${match[1]}` : match[1];
const sensor = normalizeSensor(label, Number(match[2]));
if (!sensor) continue;
const key = `${sensor.label.toLowerCase()}:${sensor.celsius}`;
@@ -26,8 +26,22 @@ fan1: 1200 RPM
`);
expect(result).toEqual([
{ label: "Package id 0", celsius: 52 },
{ label: "Core 0", celsius: 48.5 },
{ label: "coretemp-isa-0000: Package id 0", celsius: 52 },
{ label: "coretemp-isa-0000: Core 0", celsius: 48.5 },
]);
});
it("keeps duplicate sensor names distinct across devices", () => {
const result = parseSensorsOutput(`
nvme-pci-0100
Composite: +41.0°C
nvme-pci-0200
Composite: +52.0°C
`);
expect(result).toEqual([
{ label: "nvme-pci-0100: Composite", celsius: 41 },
{ label: "nvme-pci-0200: Composite", celsius: 52 },
]);
});
});