Files
pilot/gnome-pilot-extension/README.md
2026-01-10 20:24:11 +01:00

255 lines
7.4 KiB
Markdown

# Pilot Control - GNOME Shell Extension
Extension GNOME Shell pour contrôler Pilot V2 (agent MQTT pour Home Assistant) directement depuis votre environnement de bureau.
## Fonctionnalités
- **Contrôle du service systemd** : Démarrer, arrêter, redémarrer le service Pilot V2
- **Gestion de la télémétrie** : Activer/désactiver les métriques système individuellement
- **Configuration des commandes** : Gérer la liste des commandes MQTT autorisées
- **Édition simplifiée** : Modifier les paramètres sans éditer manuellement le YAML
- **Interface intuitive** : Icône dans le panel GNOME avec menu rapide et fenêtre de contrôle complète
## Prérequis
- GNOME Shell 45 ou supérieur
- Pilot V2 installé et configuré
- Service systemd `mqtt_pilot.service` (user service)
- GTK4 et libadwaita
## Structure des fichiers
```
gnome-pilot-extension/
├── metadata.json # Métadonnées de l'extension
├── extension.js # Point d'entrée principal
├── prefs.js # Fenêtre de préférences
├── yamlConfig.js # Module de lecture/écriture YAML
├── serviceManager.js # Gestion du service systemd
├── stylesheet.css # Styles CSS
├── ui/
│ ├── pilotWindow.js # Fenêtre principale
│ ├── metricEditDialog.js # Dialogue d'édition des métriques
│ └── commandEditDialog.js # Dialogue d'édition des commandes
└── README.md
```
## Installation
### Méthode 1 : Installation manuelle
1. **Copier l'extension dans le répertoire des extensions utilisateur** :
```bash
# Depuis le répertoire du projet Pilot
mkdir -p ~/.local/share/gnome-shell/extensions/pilot-control@gnome-shell-extensions
cp -r gnome-pilot-extension/* ~/.local/share/gnome-shell/extensions/pilot-control@gnome-shell-extensions/
```
2. **Redémarrer GNOME Shell** :
- Sur X11 : `Alt+F2`, taper `r`, puis `Entrée`
- Sur Wayland : Déconnexion/reconnexion
3. **Activer l'extension** :
```bash
gnome-extensions enable pilot-control@gnome-shell-extensions
```
Ou via l'application Extensions (GNOME Extensions).
### Méthode 2 : Script d'installation automatique
Créez un script d'installation :
```bash
#!/bin/bash
# install-extension.sh
EXTENSION_UUID="pilot-control@gnome-shell-extensions"
EXTENSION_DIR="$HOME/.local/share/gnome-shell/extensions/$EXTENSION_UUID"
echo "Installing Pilot Control extension..."
# Créer le répertoire
mkdir -p "$EXTENSION_DIR"
# Copier les fichiers
cp -r gnome-pilot-extension/* "$EXTENSION_DIR/"
# Vérifier l'installation
if [ -f "$EXTENSION_DIR/metadata.json" ]; then
echo "✓ Extension installed successfully"
echo " Location: $EXTENSION_DIR"
echo ""
echo "Next steps:"
echo "1. Restart GNOME Shell (Alt+F2, type 'r', Enter on X11)"
echo "2. Enable the extension:"
echo " gnome-extensions enable $EXTENSION_UUID"
else
echo "✗ Installation failed"
exit 1
fi
```
Rendre le script exécutable et l'exécuter :
```bash
chmod +x install-extension.sh
./install-extension.sh
```
## Utilisation
### Accès rapide depuis le panel
1. Cliquez sur l'icône d'ordinateur dans le panel GNOME (en haut à droite)
2. Le menu affiche :
- **Status du service** (Running/Stopped)
- **Actions rapides** : Start, Stop, Restart
- **Open Control Panel** : Ouvre la fenêtre complète
### Fenêtre de contrôle principale
La fenêtre principale est divisée en 3 sections :
#### 1. Service Control
- **Service Status** : Switch pour démarrer/arrêter le service
- **Auto-start Service** : Enable/disable au démarrage du système
- **Restart Service** : Redémarrer pour appliquer les changements
#### 2. Telemetry Metrics
- **Enable Telemetry** : Switch global pour toute la télémétrie
- Liste des métriques individuelles :
- Switch pour activer/désactiver chaque métrique
- Bouton "..." pour éditer les paramètres (nom, interval, etc.)
#### 3. Commands
- **Enable Commands** : Switch global pour les commandes MQTT
- **Allowed Commands** : Gérer la liste des commandes autorisées
- shutdown, reboot, sleep, hibernate, screen
### Édition des métriques
Cliquez sur le bouton "..." à côté d'une métrique pour modifier :
- **Enabled** : Activer/désactiver
- **Display Name** : Nom affiché dans Home Assistant
- **Unique ID** : Identifiant unique
- **Update Interval** : Intervalle de mise à jour (en secondes)
### Édition des commandes autorisées
Cliquez sur "Allowed Commands" pour :
- Sélectionner les commandes à autoriser via MQTT
- Voir la description de chaque commande
- Sauvegarder les modifications
## Sauvegarde et rechargement
- **Sauvegarde automatique** : Lors de chaque modification, une sauvegarde du config.yaml est créée (config.yaml.backup_TIMESTAMP)
- **Rechargement du service** : Après sauvegarde, le service est automatiquement redémarré pour appliquer les changements
- **Bouton Refresh** : Recharge la configuration depuis le fichier YAML
## Configuration
Par défaut, l'extension cherche le fichier de configuration dans :
1. `~/app/pilot/pilot-v2/config.yaml`
2. `~/.config/pilot/config.yaml`
3. `/etc/pilot/config.yaml`
4. `./pilot-v2/config.yaml`
Pour modifier le chemin, utilisez les préférences de l'extension.
## Dépannage
### L'extension ne se charge pas
```bash
# Vérifier les logs
journalctl -f -o cat /usr/bin/gnome-shell
# Vérifier que l'extension est bien installée
gnome-extensions list | grep pilot
# Vérifier les erreurs
gnome-extensions show pilot-control@gnome-shell-extensions
```
### Le service ne démarre pas
```bash
# Vérifier le status du service
systemctl --user status mqtt_pilot.service
# Vérifier les logs
journalctl --user -u mqtt_pilot.service -n 50
```
### Problèmes de permissions
Si les commandes systemctl ne fonctionnent pas, vérifiez que le service est bien un service utilisateur (user service) et non un service système.
### Fichier config.yaml non trouvé
Modifiez le chemin dans [yamlConfig.js:25-32](gnome-pilot-extension/yamlConfig.js#L25-L32) ou utilisez les préférences.
## Développement
### Tester les modifications
```bash
# Recharger l'extension après modifications
gnome-extensions disable pilot-control@gnome-shell-extensions
gnome-extensions enable pilot-control@gnome-shell-extensions
# Sur X11, recharger GNOME Shell
# Alt+F2, 'r', Entrée
```
### Consulter les logs
```bash
# Logs en temps réel
journalctl -f -o cat /usr/bin/gnome-shell | grep -i pilot
# Ou via Looking Glass (Alt+F2, 'lg')
```
### Structure du code
- **extension.js** : Crée le bouton panel et gère le cycle de vie
- **ui/pilotWindow.js** : Fenêtre principale avec 3 sections
- **yamlConfig.js** : Parser/writer YAML simple
- **serviceManager.js** : Wrapper systemctl
- **ui/*Dialog.js** : Dialogues d'édition
## Limitations connues (V1)
- Parser YAML simple (ne gère que la structure de config.yaml)
- Pas de validation avancée des entrées
- Pas de support pour les configurations complexes (listes imbriquées, etc.)
- Nécessite un redémarrage du service pour appliquer les changements
## Améliorations futures
- Support de plusieurs instances de Pilot
- Gestion des logs en temps réel
- Notifications pour les événements importants
- Support des thèmes sombres/clairs
- Validation avancée des entrées
- Backup/restore de configurations
## Licence
Même licence que le projet Pilot
## Auteur
Extension créée pour simplifier la gestion de Pilot V2 depuis GNOME Shell