Add PSU voltage sensors with 220V range highlighting

This commit is contained in:
Mikhail Chusavitin
2026-02-24 18:05:26 +03:00
parent 752b063613
commit 15dc86a0e4
3 changed files with 51 additions and 3 deletions

View File

@@ -662,6 +662,11 @@ code {
border-left-color: #f39c12;
}
.sensor-card.voltage-out-of-range {
border-left-color: #e74c3c;
background: #fff5f5;
}
.sensor-card.ns {
border-left-color: #95a5a6;
opacity: 0.6;

View File

@@ -1100,8 +1100,10 @@ function renderSensors(sensors) {
items.forEach(s => {
let valueStr = '';
let statusClass = s.status === 'ok' ? 'ok' : (s.status === 'ns' ? 'ns' : 'warn');
const sensorName = String(s.name || '').toLowerCase();
const isPSUVoltage = type === 'voltage' && sensorName.includes('psu') && sensorName.includes('voltage');
if (s.value) {
if (Number.isFinite(s.value)) {
valueStr = `${s.value} ${s.unit}`;
} else if (s.raw_value) {
valueStr = s.raw_value;
@@ -1109,7 +1111,13 @@ function renderSensors(sensors) {
valueStr = s.status;
}
html += `<div class="sensor-card ${statusClass}">
// Highlight PSU mains voltage deviations from nominal 220V (±10%).
let extraClass = '';
if (isPSUVoltage && Number.isFinite(s.value) && (s.value < 198 || s.value > 242)) {
extraClass = ' voltage-out-of-range';
}
html += `<div class="sensor-card ${statusClass}${extraClass}">
<span class="sensor-name">${escapeHtml(s.name)}</span>
<span class="sensor-value">${escapeHtml(valueStr)}</span>
</div>`;