corrige temperature
This commit is contained in:
254
gnome-pilot-extension/README.md
Normal file
254
gnome-pilot-extension/README.md
Normal file
@@ -0,0 +1,254 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user