Files
2026-01-10 20:24:11 +01:00
..
2026-01-10 20:24:11 +01:00
2026-01-10 20:24:11 +01:00
2026-01-10 20:24:11 +01:00
2026-01-10 20:24:11 +01:00
2026-01-10 20:24:11 +01:00
2026-01-10 20:24:11 +01:00
2026-01-10 20:24:11 +01:00
2026-01-10 20:24:11 +01:00
2026-01-10 20:24:11 +01:00
2026-01-10 20:24:11 +01:00
2026-01-10 20:24:11 +01:00
2026-01-10 20:24:11 +01:00
2026-01-10 20:24:11 +01:00
2026-01-10 20:24:11 +01:00

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 :
# 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/
  1. Redémarrer GNOME Shell :

    • Sur X11 : Alt+F2, taper r, puis Entrée
    • Sur Wayland : Déconnexion/reconnexion
  2. Activer l'extension :

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 :

#!/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 :

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

# 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

# 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 ou utilisez les préférences.

Développement

Tester les modifications

# 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

# 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