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:
PaulVua
2026-05-12 17:42:58 +02:00
parent b87b054e2b
commit d34b029d48
3 changed files with 60 additions and 17 deletions

View File

@@ -1 +1 @@
1.7.5 1.7.6

View File

@@ -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",

View File

@@ -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)) {