UPS 제거 상태에 맞춘 배터리 기능 정리
This commit is contained in:
+43
-32
@@ -3219,8 +3219,10 @@ function collect_snapshot(bool $applyFan = true): array
|
||||
'watts' => isset($latest['cpu_watts']) ? (float)$latest['cpu_watts'] : null,
|
||||
];
|
||||
$battery = $applyFan ? battery_status() : [
|
||||
'voltage' => isset($latest['battery_voltage']) ? (float)$latest['battery_voltage'] : null,
|
||||
'percent' => isset($latest['battery_percent']) ? (float)$latest['battery_percent'] : null,
|
||||
'enabled' => CONTROL_BATTERY_ENABLED,
|
||||
'removed' => !CONTROL_BATTERY_ENABLED,
|
||||
'voltage' => CONTROL_BATTERY_ENABLED && isset($latest['battery_voltage']) ? (float)$latest['battery_voltage'] : null,
|
||||
'percent' => CONTROL_BATTERY_ENABLED && isset($latest['battery_percent']) ? (float)$latest['battery_percent'] : null,
|
||||
];
|
||||
|
||||
if ($applyFan) {
|
||||
@@ -3231,8 +3233,8 @@ function collect_snapshot(bool $applyFan = true): array
|
||||
'rp1_temp_c' => $rp1Temp,
|
||||
'cpu_voltage' => $cpuPower['voltage'],
|
||||
'cpu_watts' => $cpuPower['watts'],
|
||||
'battery_voltage' => $battery['voltage'],
|
||||
'battery_percent' => $battery['percent'],
|
||||
'battery_voltage' => CONTROL_BATTERY_ENABLED ? $battery['voltage'] : null,
|
||||
'battery_percent' => CONTROL_BATTERY_ENABLED ? $battery['percent'] : null,
|
||||
'pwm_value' => $pwm,
|
||||
'pwm_percent' => round($pwm / 255 * 100, 2),
|
||||
'pwm_mode' => $policy['mode'],
|
||||
@@ -3278,34 +3280,43 @@ function collect_snapshot(bool $applyFan = true): array
|
||||
'throttling' => $throttledStatuses['throttling'],
|
||||
]);
|
||||
|
||||
$history = add_battery_remaining_history(sensor_history((int)setting_value('battery.history_chart_limit')));
|
||||
$batteryTrend = battery_trend_history((int)setting_value('battery.trend_hours'));
|
||||
$batteryProfile = battery_profile_history((int)setting_value('battery.profile_days'));
|
||||
$battery['remaining'] = battery_remaining_estimate($battery, $history, $batteryTrend, $batteryProfile);
|
||||
$history = sync_current_battery_remaining_history($history, [
|
||||
'time' => date('Y-m-d H:i:s'),
|
||||
'temp_c' => $temp,
|
||||
'fan_rpm' => $rpm,
|
||||
'fan_efficiency' => fan_efficiency($rpm, $temp, $cpuPower['watts'] ?? null),
|
||||
'rp1_temp_c' => $rp1Temp,
|
||||
'cpu_voltage' => $cpuPower['voltage'],
|
||||
'cpu_watts' => $cpuPower['watts'],
|
||||
'battery_voltage' => $battery['voltage'],
|
||||
'battery_percent' => $battery['percent'],
|
||||
'fan_pwm' => $pwm,
|
||||
'pwm_percent' => round($pwm / 255 * 100, 2),
|
||||
'pwm_mode' => $policy['mode'],
|
||||
'cpu_load_1' => round((float)$load[0], 2),
|
||||
'cpu_load_5' => round((float)$load[1], 2),
|
||||
'cpu_load_15' => round((float)$load[2], 2),
|
||||
'disk_total_kb' => $disk['total_kb'],
|
||||
'disk_used_kb' => $disk['used_kb'],
|
||||
'disk_free_kb' => $disk['free_kb'],
|
||||
'mem_total_mb' => $mem['total_mb'],
|
||||
'mem_used_mb' => $mem['used_mb'],
|
||||
'mem_percent' => $mem['total_mb'] > 0 ? round($mem['used_mb'] / $mem['total_mb'] * 100, 1) : 0,
|
||||
], $battery['remaining']['seconds'] ?? null);
|
||||
$history = array_slice($history, -(int)setting_value('battery.history_sync_limit'));
|
||||
if (CONTROL_BATTERY_ENABLED) {
|
||||
$history = add_battery_remaining_history(sensor_history((int)setting_value('battery.history_chart_limit')));
|
||||
$batteryTrend = battery_trend_history((int)setting_value('battery.trend_hours'));
|
||||
$batteryProfile = battery_profile_history((int)setting_value('battery.profile_days'));
|
||||
$battery['remaining'] = battery_remaining_estimate($battery, $history, $batteryTrend, $batteryProfile);
|
||||
$history = sync_current_battery_remaining_history($history, [
|
||||
'time' => date('Y-m-d H:i:s'),
|
||||
'temp_c' => $temp,
|
||||
'fan_rpm' => $rpm,
|
||||
'fan_efficiency' => fan_efficiency($rpm, $temp, $cpuPower['watts'] ?? null),
|
||||
'rp1_temp_c' => $rp1Temp,
|
||||
'cpu_voltage' => $cpuPower['voltage'],
|
||||
'cpu_watts' => $cpuPower['watts'],
|
||||
'battery_voltage' => $battery['voltage'],
|
||||
'battery_percent' => $battery['percent'],
|
||||
'fan_pwm' => $pwm,
|
||||
'pwm_percent' => round($pwm / 255 * 100, 2),
|
||||
'pwm_mode' => $policy['mode'],
|
||||
'cpu_load_1' => round((float)$load[0], 2),
|
||||
'cpu_load_5' => round((float)$load[1], 2),
|
||||
'cpu_load_15' => round((float)$load[2], 2),
|
||||
'disk_total_kb' => $disk['total_kb'],
|
||||
'disk_used_kb' => $disk['used_kb'],
|
||||
'disk_free_kb' => $disk['free_kb'],
|
||||
'mem_total_mb' => $mem['total_mb'],
|
||||
'mem_used_mb' => $mem['used_mb'],
|
||||
'mem_percent' => $mem['total_mb'] > 0 ? round($mem['used_mb'] / $mem['total_mb'] * 100, 1) : 0,
|
||||
], $battery['remaining']['seconds'] ?? null);
|
||||
$history = array_slice($history, -(int)setting_value('battery.history_sync_limit'));
|
||||
} else {
|
||||
$history = sensor_history(240);
|
||||
$battery['remaining'] = [
|
||||
'display' => 'UPS 제거됨',
|
||||
'seconds' => null,
|
||||
'source' => 'battery_removed',
|
||||
];
|
||||
}
|
||||
|
||||
$processes = process_resource_data((int)setting_value('display.process_limit'));
|
||||
$fanSpike = fan_spike_analysis($history, $fan, $system, $processes);
|
||||
|
||||
Reference in New Issue
Block a user