diff --git a/src/modules/node_info/files/PveMod_SensorInfo.pm b/src/modules/node_info/files/PveMod_SensorInfo.pm
index f63b5e6..09f55ae 100644
--- a/src/modules/node_info/files/PveMod_SensorInfo.pm
+++ b/src/modules/node_info/files/PveMod_SensorInfo.pm
@@ -68,9 +68,10 @@ sub _merge_graphics_files {
my $merged = {
Graphics => {
- Intel => {},
- NVIDIA => {},
- AMD => {},
+ Intel => {},
+ NVIDIA => {},
+ AMD => {},
+ temp_unit => $config{lm_sensors}{temp_unit},
}
};
@@ -134,7 +135,7 @@ sub _load_graphics_data {
\@filepaths,
$graphics_cache,
\&_merge_graphics_files,
- { Graphics => { Intel => {}, NVIDIA => {}, AMD => {} } }
+ { Graphics => { Intel => {}, NVIDIA => {}, AMD => {}, temp_unit => $config{lm_sensors}{temp_unit} } }
);
my $intel_count = scalar(keys %{$data->{Graphics}{Intel} // {}});
diff --git a/src/modules/node_info/files/PveMod_pvemanagerlib.js b/src/modules/node_info/files/PveMod_pvemanagerlib.js
index c4fdd51..5ed2df1 100644
--- a/src/modules/node_info/files/PveMod_pvemanagerlib.js
+++ b/src/modules/node_info/files/PveMod_pvemanagerlib.js
@@ -224,8 +224,7 @@ Ext.define('PVE.node.StatusView', {
objValue = {};
}
// sensors configuration
- const cpuTempHelper = Ext.create('PVE.mod.TempHelper', {srcUnit: PVE.mod.TempHelper.CELSIUS, dstUnit: objValue.temp_unit === 'F' ? PVE.mod.TempHelper.FAHRENHEIT : PVE.mod.TempHelper.CELSIUS});
-
+ const cpuTempHelper = Ext.create('PVE.mod.TempHelper', {srcUnit: PVE.mod.TempHelper.CELSIUS, dstUnit: value.temp_unit === 'F' ? PVE.mod.TempHelper.FAHRENHEIT : PVE.mod.TempHelper.CELSIUS});
const cpuKeysI = Object.keys(objValue).filter(item => String(item).startsWith('coretemp-isa-')).sort();
const cpuKeysA = Object.keys(objValue).filter(item => String(item).startsWith('k10temp-pci-')).sort();
const cpuKeysRpi = Object.keys(objValue).filter(item => String(item).startsWith('cpu_thermal-virtual-')).sort();
@@ -395,6 +394,12 @@ Ext.define('PVE.node.StatusView', {
return '';
}
+ // Create temperature helper for GPU temperature conversion
+ const gpuTempHelper = Ext.create('PVE.mod.TempHelper', {
+ srcUnit: PVE.mod.TempHelper.CELSIUS,
+ dstUnit: gpuStats.temp_unit === 'F' ? PVE.mod.TempHelper.FAHRENHEIT : PVE.mod.TempHelper.CELSIUS
+ });
+
let html = '
';
// Intel GPUs - Secondary details
@@ -467,13 +472,18 @@ Ext.define('PVE.node.StatusView', {
// Temperature
if (stats.temperature) {
+ const gpuTemp = gpuTempHelper.getTemp(parseFloat(stats.temperature.gpu));
+ const tempUnit = gpuTempHelper.getUnit();
+ // Convert thresholds to target unit for comparison
+ const tempHigh = gpuTempHelper.getTemp(80);
+ const tempWarn = gpuTempHelper.getTemp(70);
let tempStyle = '';
- if (stats.temperature.gpu >= 80) {
+ if (gpuTemp >= tempHigh) {
tempStyle = 'color: red; font-weight: bold;';
- } else if (stats.temperature.gpu >= 70) {
+ } else if (gpuTemp >= tempWarn) {
tempStyle = 'color: #FFC300; font-weight: bold;';
}
- details.push(`Temp: ${stats.temperature.gpu}${stats.temperature.unit}`);
+ details.push(`Temp: ${Ext.util.Format.number(gpuTemp, '0')}${tempUnit}`);
}
// Power
@@ -520,7 +530,7 @@ Ext.define('PVE.node.StatusView', {
} catch(e) {
objValue = {};
}
- const tempHelper = Ext.create('PVE.mod.TempHelper', {srcUnit: PVE.mod.TempHelper.CELSIUS, dstUnit: objValue.temp_unit === 'F' ? PVE.mod.TempHelper.FAHRENHEIT : PVE.mod.TempHelper.CELSIUS});
+ const tempHelper = Ext.create('PVE.mod.TempHelper', {srcUnit: PVE.mod.TempHelper.CELSIUS, dstUnit: value.temp_unit === 'F' ? PVE.mod.TempHelper.FAHRENHEIT : PVE.mod.TempHelper.CELSIUS});
const drvKeys = Object.keys(objValue).filter(item => String(item).startsWith(addressPrefix)).sort((a, b) => a.localeCompare(b, undefined, { numeric: true, sensitivity: 'base' }));
let drvData = [];
drvKeys.forEach((drvKey) => {
@@ -600,7 +610,7 @@ Ext.define('PVE.node.StatusView', {
} catch(e) {
objValue = {};
}
- const tempHelper = Ext.create('PVE.mod.TempHelper', {srcUnit: PVE.mod.TempHelper.CELSIUS, dstUnit: objValue.temp_unit === 'F' ? PVE.mod.TempHelper.FAHRENHEIT : PVE.mod.TempHelper.CELSIUS});
+ const tempHelper = Ext.create('PVE.mod.TempHelper', {srcUnit: PVE.mod.TempHelper.CELSIUS, dstUnit: value.temp_unit === 'F' ? PVE.mod.TempHelper.FAHRENHEIT : PVE.mod.TempHelper.CELSIUS});
const nvmeKeys = Object.keys(objValue).filter(item => String(item).startsWith(addressPrefix)).sort();
let nvmeData = [];
nvmeKeys.forEach((nvmeKey, index) => {
@@ -688,7 +698,7 @@ Ext.define('PVE.node.StatusView', {
} catch(e) {
objValue = {};
}
- const tempHelper = Ext.create('PVE.mod.TempHelper', {srcUnit: PVE.mod.TempHelper.CELSIUS, dstUnit: objValue.temp_unit === 'F' ? PVE.mod.TempHelper.FAHRENHEIT : PVE.mod.TempHelper.CELSIUS});
+ const tempHelper = Ext.create('PVE.mod.TempHelper', {srcUnit: PVE.mod.TempHelper.CELSIUS, dstUnit: value.temp_unit === 'F' ? PVE.mod.TempHelper.FAHRENHEIT : PVE.mod.TempHelper.CELSIUS});
// Keep only keys that do not belong to known categories
const otherKeys = Object.keys(objValue).filter(key =>