Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 6m16s
104 lines
3.5 KiB
Markdown
104 lines
3.5 KiB
Markdown
# Système de Contrôle des LEDs Freebox
|
|
|
|
Ce module permet au bot de contrôler automatiquement les LEDs de l'écran LCD de la Freebox avec des timers programmables.
|
|
|
|
## Fonctionnalités
|
|
|
|
### Contrôle Manuel des LEDs
|
|
- Allumer/éteindre les LEDs instantanément via commande Discord
|
|
- Récupérer la configuration actuelle de l'écran LCD
|
|
|
|
### Timer Automatique
|
|
- Programmation d'extinction automatique la nuit
|
|
- Programmation d'allumage automatique le matin
|
|
- Gestion par bot unique par serveur (évite les conflits)
|
|
- Persistance des paramètres en base de données
|
|
|
|
## Configuration Prérequise
|
|
|
|
1. **Module Freebox activé** : `/database edit guildFbx.enabled true`
|
|
2. **Hôte configuré** : `/database edit guildFbx.host <ip_freebox>`
|
|
3. **Version API configurée** : `/database edit guildFbx.version <version>`
|
|
4. **Authentification** : `/freebox init` (suivre le processus d'autorisation)
|
|
|
|
## Commandes Disponibles
|
|
|
|
### Récupération de configuration
|
|
```
|
|
/freebox get lcd
|
|
```
|
|
Récupère et affiche la configuration actuelle de l'écran LCD.
|
|
|
|
### Contrôle manuel des LEDs
|
|
```
|
|
/freebox lcd leds enabled:true # Allumer les LEDs
|
|
/freebox lcd leds enabled:false # Éteindre les LEDs
|
|
```
|
|
|
|
### Gestion du timer
|
|
```
|
|
# Activer le timer avec horaires
|
|
/freebox lcd timer action:enable morning_time:08:00 night_time:22:30
|
|
|
|
# Vérifier le statut du timer
|
|
/freebox lcd timer action:status
|
|
|
|
# Désactiver le timer
|
|
/freebox lcd timer action:disable
|
|
```
|
|
|
|
## Fonctionnement du Timer
|
|
|
|
### Programmation
|
|
- Le timer est programmé automatiquement au démarrage du bot
|
|
- Seul le bot configuré comme "gestionnaire" peut contrôler les LEDs d'un serveur
|
|
- Les horaires sont vérifiés et formatés (HH:MM, 24h)
|
|
|
|
### Exécution
|
|
- **Matin** : Les LEDs s'allument à l'heure programmée
|
|
- **Soir** : Les LEDs s'éteignent à l'heure programmée
|
|
- **Reprogrammation** : Le cycle se répète automatiquement chaque jour
|
|
|
|
### Logs
|
|
Les opérations sont loggées dans la console :
|
|
- Programmation des timers
|
|
- Exécution des commandes d'allumage/extinction
|
|
- Erreurs de connexion ou d'authentification
|
|
|
|
## Gestion Multi-Bot
|
|
|
|
### Système de Verrouillage
|
|
- Un seul bot peut gérer les LEDs par serveur Discord
|
|
- L'ID du bot gestionnaire est stocké en base de données
|
|
- Les autres bots reçoivent un message d'erreur s'ils tentent d'utiliser les commandes
|
|
|
|
### Changement de Bot Gestionnaire
|
|
Pour changer de bot gestionnaire :
|
|
1. Désactiver le timer sur le bot actuel : `/freebox lcd timer action:disable`
|
|
2. Activer le timer sur le nouveau bot : `/freebox lcd timer action:enable`
|
|
|
|
## Dépannage
|
|
|
|
### Erreurs Communes
|
|
- **"Module Freebox désactivé"** : Activer avec `/database edit guildFbx.enabled true`
|
|
- **"Hôte non configuré"** : Définir avec `/database edit guildFbx.host <ip>`
|
|
- **"Token d'app manquant"** : Refaire l'initialisation avec `/freebox init`
|
|
- **"Géré par un autre bot"** : Désactiver sur l'autre bot d'abord
|
|
|
|
### Vérification de Configuration
|
|
1. Vérifier que la Freebox est accessible sur le réseau
|
|
2. S'assurer que l'application est autorisée dans l'interface Freebox
|
|
3. Vérifier les logs de la console pour les erreurs détaillées
|
|
|
|
## API Freebox Utilisée
|
|
|
|
- `GET /api/v8/lcd/config/` : Récupération de la configuration LCD
|
|
- `PUT /api/v8/lcd/config/` : Modification de la configuration LCD
|
|
- Propriété `led_strip_enabled` : Contrôle de l'état des LEDs
|
|
|
|
## Sécurité
|
|
|
|
- Les tokens d'authentification sont gérés automatiquement
|
|
- Les sessions sont créées à la demande
|
|
- Les erreurs d'authentification sont loggées mais les tokens ne sont pas exposés
|