diff --git a/README.md b/README.md index 14b5eb9..b844431 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,12 @@ The **Fleet Control Agent** is a lightweight monitoring and control script desig * **Hardware Reset:** Supports physical MMDVM HAT reset via GPIO pins (requires RPi.GPIO). * **Auto-Healing:** Automatically detects service failures and attempts to restart them. +### 🔄 Dynamic Profiles (Multiple Configurations) +The agent supports unlimited dynamic profile switching (e.g., switching between a BrandMeister and a DMR+ configuration on the fly). + +In your `node_config.json`, you can define any number of custom profiles under the `"profiles"` key. For each profile, specify a label and the list of services/files to swap. +The Central Console dashboard will automatically read this configuration and dynamically generate a button for each profile. If you don't need profile switching for a specific node, simply leave the dictionary empty (`"profiles": {}` or remove the block entirely). The dashboard will gracefully hide the profile controls for that node, keeping the UI clean. + ### 🤖 Telegram Bot Integration The agent features built-in support for **Telegram Bot** notifications. This allows system administrators to receive real-time alerts regarding node status, offline services, and critical system events directly on their mobile devices. Notifications are highly manageable: they can be dynamically enabled or muted for each individual node directly from the central NOC Fleet Console, ensuring you only get notified when it matters. @@ -80,6 +86,12 @@ Il **Fleet Control Agent** è lo script di monitoraggio e controllo per i nodi r * **Reset Hardware:** Supporta il reset fisico della scheda MMDVM HAT tramite pin GPIO (richiede RPi.GPIO). * **Auto-Healing:** Rileva automaticamente i crash dei servizi e tenta di riavviarli. +### 🔄 Profili Dinamici Multipli (Dynamic Profiles) +L'agent supporta il cambio rapido tra un numero illimitato di configurazioni (es. per passare "al volo" da un setup BrandMeister a uno DMR+). + +Nel file `node_config.json`, puoi definire quanti profili desideri sotto la chiave `"profiles"`. Per ogni profilo, ti basta specificare un'etichetta (label) e i servizi/file da scambiare. +La dashboard centrale leggerà questa configurazione e genererà dinamicamente un pulsante per ogni profilo inserito. Se un nodo non necessita di questa funzione, è sufficiente lasciare il dizionario vuoto (`"profiles": {}` o rimuovere del tutto il blocco). La dashboard capirà in automatico di dover nascondere i controlli dei profili per quel nodo specifico, mantenendo l'interfaccia pulita. + ### 🤖 Telegram Bot Integration L'agent dispone del supporto nativo per le notifiche tramite **Bot Telegram**. Questo permette agli amministratori di sistema di ricevere alert in tempo reale sullo stato dei nodi, sui servizi offline e sugli eventi critici direttamente sul proprio smartphone. La gestione degli avvisi è centralizzata: le notifiche possono essere attivate o silenziate dinamicamente per ogni singolo nodo direttamente dalla Fleet Console centrale, evitando spam inutile. diff --git a/install.txt b/install.txt index 1d169e8..9116a7a 100644 --- a/install.txt +++ b/install.txt @@ -46,6 +46,13 @@ C) REMOTE EDITING FILES (file_list.txt): D) OPTIONAL: Install 'RPi.GPIO' if you want hardware reset. [cite: 14] +E) MULTIPLE PROFILES (Dynamic Profiles): + In 'node_config.json', you can define custom setup profiles + under the "profiles" block. The web dashboard will automatically + generate a dedicated button for each profile you define here. + If you don't need this feature, simply leave it empty: + "profiles": {} + ------------------------------------------------------------ 3. RUNNING AS A SERVICE (SYSTEMD) ------------------------------------------------------------ @@ -103,6 +110,13 @@ C) EDITING FILE REMOTO (file_list.txt): D) OPZIONALE: Installa 'RPi.GPIO' per il reset hardware. [cite: 17] +E) PROFILI MULTIPLI (Dynamic Profiles): + In 'node_config.json', puoi definire profili personalizzati + sotto il blocco "profiles". La dashboard web genererà in + automatico un tasto dedicato per ogni profilo inserito. + Se non ti serve questa funzione, lascialo vuoto: + "profiles": {} + ------------------------------------------------------------ 3. ESECUZIONE COME SERVIZIO (SYSTEMD) ------------------------------------------------------------