v1.7.6: Tableau SystemD Services - ajout des 3 services manquants
Ajout dans le tableau admin et dans les listes allowed restart/toggle: - rtc_save_to_db.service - nebuleair-wifi-powersave.timer - nebuleair-cpu-power.service Aussi: nebuleair-noise-data.timer etait dans get_systemd_services mais absent des listes restart/toggle (les boutons n'auraient pas fonctionne). Corrige. Nouveau: support d'un display_name explicite par service (override optionnel) pour les noms qui ne suivent pas la convention 'nebuleair-*-data.timer'. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,20 @@
|
|||||||
{
|
{
|
||||||
"versions": [
|
"versions": [
|
||||||
|
{
|
||||||
|
"version": "1.7.6",
|
||||||
|
"date": "2026-05-12",
|
||||||
|
"changes": {
|
||||||
|
"features": [],
|
||||||
|
"improvements": [
|
||||||
|
"Page admin (tableau SystemD Services): ajout de 3 services manquants — rtc_save_to_db, nebuleair-wifi-powersave.timer, nebuleair-cpu-power.service",
|
||||||
|
"Page admin: support d'un display_name explicite par service (sinon auto-cleanup) — affichage propre pour les services .service en plus des .timer",
|
||||||
|
"Page admin: nebuleair-noise-data.timer ajoute aux listes allowed pour restart/toggle (etait dans get_systemd_services mais pas dans les 2 autres)"
|
||||||
|
],
|
||||||
|
"fixes": [],
|
||||||
|
"compatibility": []
|
||||||
|
},
|
||||||
|
"notes": "Le tableau SystemD Services affiche maintenant la liste complete des 11 services NebuleAir. Cohérence des 3 listes hardcodees (display, restart, toggle)."
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"version": "1.7.5",
|
"version": "1.7.5",
|
||||||
"date": "2026-05-12",
|
"date": "2026-05-12",
|
||||||
|
|||||||
@@ -1476,6 +1476,7 @@ if ($type == "execute_command") {
|
|||||||
if ($type == "get_systemd_services") {
|
if ($type == "get_systemd_services") {
|
||||||
try {
|
try {
|
||||||
// List of NebuleAir services to monitor with descriptions and frequencies
|
// List of NebuleAir services to monitor with descriptions and frequencies
|
||||||
|
// Optional 'display_name' overrides the auto-generated cleaned-up name.
|
||||||
$services = [
|
$services = [
|
||||||
'nebuleair-npm-data.timer' => [
|
'nebuleair-npm-data.timer' => [
|
||||||
'description' => 'Collects particulate matter data from NextPM sensor',
|
'description' => 'Collects particulate matter data from NextPM sensor',
|
||||||
@@ -1508,6 +1509,21 @@ if ($type == "get_systemd_services") {
|
|||||||
'nebuleair-db-cleanup-data.timer' => [
|
'nebuleair-db-cleanup-data.timer' => [
|
||||||
'description' => 'Cleans up old data from database',
|
'description' => 'Cleans up old data from database',
|
||||||
'frequency' => 'Daily'
|
'frequency' => 'Daily'
|
||||||
|
],
|
||||||
|
'nebuleair-wifi-powersave.timer' => [
|
||||||
|
'display_name' => 'Wifi powersave',
|
||||||
|
'description' => 'Enables WiFi power-saving mode to reduce battery consumption',
|
||||||
|
'frequency' => '10 min after boot'
|
||||||
|
],
|
||||||
|
'nebuleair-cpu-power.service' => [
|
||||||
|
'display_name' => 'Cpu power',
|
||||||
|
'description' => 'Applies CPU power mode from DB config at boot',
|
||||||
|
'frequency' => 'At boot'
|
||||||
|
],
|
||||||
|
'rtc_save_to_db.service' => [
|
||||||
|
'display_name' => 'Rtc save to db',
|
||||||
|
'description' => 'Reads DS3231 RTC over I2C and saves timestamp to DB',
|
||||||
|
'frequency' => 'Continuous (1Hz)'
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -1524,9 +1540,13 @@ if ($type == "get_systemd_services") {
|
|||||||
$enabledStatus = trim(shell_exec($enabledCmd));
|
$enabledStatus = trim(shell_exec($enabledCmd));
|
||||||
$isEnabled = ($enabledStatus === 'enabled');
|
$isEnabled = ($enabledStatus === 'enabled');
|
||||||
|
|
||||||
// Clean up service name for display
|
// Display name: explicit override if provided, otherwise auto-cleanup
|
||||||
$displayName = str_replace(['.timer', 'nebuleair-', '-data'], '', $service);
|
if (isset($serviceInfo['display_name'])) {
|
||||||
$displayName = ucfirst(str_replace('-', ' ', $displayName));
|
$displayName = $serviceInfo['display_name'];
|
||||||
|
} else {
|
||||||
|
$displayName = str_replace(['.timer', '.service', 'nebuleair-', '-data'], '', $service);
|
||||||
|
$displayName = ucfirst(str_replace('-', ' ', $displayName));
|
||||||
|
}
|
||||||
|
|
||||||
$serviceStatus[] = [
|
$serviceStatus[] = [
|
||||||
'name' => $service,
|
'name' => $service,
|
||||||
@@ -1570,8 +1590,12 @@ if ($type == "restart_systemd_service") {
|
|||||||
'nebuleair-sara-data.timer',
|
'nebuleair-sara-data.timer',
|
||||||
'nebuleair-bme280-data.timer',
|
'nebuleair-bme280-data.timer',
|
||||||
'nebuleair-mppt-data.timer',
|
'nebuleair-mppt-data.timer',
|
||||||
|
'nebuleair-noise-data.timer',
|
||||||
'nebuleair-mhz19-data.timer',
|
'nebuleair-mhz19-data.timer',
|
||||||
'nebuleair-db-cleanup-data.timer'
|
'nebuleair-db-cleanup-data.timer',
|
||||||
|
'nebuleair-wifi-powersave.timer',
|
||||||
|
'nebuleair-cpu-power.service',
|
||||||
|
'rtc_save_to_db.service'
|
||||||
];
|
];
|
||||||
|
|
||||||
if (!in_array($service, $allowedServices)) {
|
if (!in_array($service, $allowedServices)) {
|
||||||
@@ -1631,8 +1655,12 @@ if ($type == "toggle_systemd_service") {
|
|||||||
'nebuleair-sara-data.timer',
|
'nebuleair-sara-data.timer',
|
||||||
'nebuleair-bme280-data.timer',
|
'nebuleair-bme280-data.timer',
|
||||||
'nebuleair-mppt-data.timer',
|
'nebuleair-mppt-data.timer',
|
||||||
|
'nebuleair-noise-data.timer',
|
||||||
'nebuleair-mhz19-data.timer',
|
'nebuleair-mhz19-data.timer',
|
||||||
'nebuleair-db-cleanup-data.timer'
|
'nebuleair-db-cleanup-data.timer',
|
||||||
|
'nebuleair-wifi-powersave.timer',
|
||||||
|
'nebuleair-cpu-power.service',
|
||||||
|
'rtc_save_to_db.service'
|
||||||
];
|
];
|
||||||
|
|
||||||
if (!in_array($service, $allowedServices)) {
|
if (!in_array($service, $allowedServices)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user