Files
Vulture/VNode/services
Laurent Ollagnier 856b90567d (config) VNode : Utilise localhost comme adresse du serveur mqtt
On est sur le même pod.
Voir si besoin de faire une variable d'env ou autre si besoin de
spécifier pour le dev
2025-11-16 19:05:59 +01:00
..
2025-11-16 19:05:42 +01:00
2025-11-16 19:05:42 +01:00

Présentation des divers services liés à Vulture.

📟 Gestionnaire de Buzzer pour Vulture (Buzzer-Manager.js)

Ce script Node.js gère les buzzers du jeu Vulture en utilisant MQTT pour la communication entre les buzzers et les autres composants du système.

🚀 Fonctionnalités Principales

  • Connexion au Broker MQTT : Se connecte à un broker MQTT (mqtt://localhost par défaut) pour envoyer et recevoir des messages.
  • Gestion des Buzzers :
    • Blocage/Déblocage : Bloque les buzzers lorsqu'un est activé pour empêcher les autres de répondre, et les débloque sur demande.
    • Mode Tilt : Permet d'ignorer certains buzzers en les ajoutant au mode "tilt".
  • Validation des Données : Vérifie que les informations reçues des buzzers sont valides (ID du buzzer, couleur, etc.).
  • Intégration Lumineuse : Contrôle les effets lumineux en fonction des actions des buzzers via le gestionnaire de lumières.

🛠️ Configuration et Utilisation

  • Installation des Dépendances :
npm install mqtt
  • Configuration :

    • Modifier l'URL du broker MQTT et le client ID si nécessaire dans le script :
// Configuration du broker MQTT
const brokerUrl = 'mqtt://votre-broker';
const clientId = 'buzzer_manager';
  • Lancement du Script :
node buzzer-manager.js

📡 Sujets MQTT Utilisés

  • Souscriptions :
    • Vulture/buzzer/pressed/# : Détecte lorsqu'un buzzer est pressé.
    • Vulture/buzzer/unlock : Gère les demandes de déblocage des buzzers.
    • Vulture/buzzer/tilt : Gère l'ajout ou le retrait des buzzers en mode tilt.
  • Publications :
    • Vulture/buzzer/confirmation/{buzzer_id} : Confirme la réception des actions des buzzers.
    • Vulture/buzzer/status : Informe sur l'état actuel des buzzers (bloqués, débloqués, tilt).
    • Vulture/light/change : Demande des changements d'effets lumineux au gestionnaire de lumières.

🖥️ Moniteur de Statut des Buzzers pour Vulture (BuzzerWatcher.js)

Ce script Node.js surveille l'état des buzzers du jeu Vulture en les pingant régulièrement et en publiant leur statut (en ligne/hors ligne) sur un broker MQTT.

🚀 Fonctionnalités Principales

  • Surveillance des Buzzers : Pinge chaque buzzer à intervalles réguliers pour vérifier s'il est en ligne.
  • Publication MQTT : Envoie le statut (online ou offline) de chaque buzzer sur un topic MQTT spécifié, permettant aux autres composants du système de réagir en conséquence.
  • Configuration Flexible : Charge dynamiquement les adresses IP des buzzers et les paramètres MQTT depuis un fichier config.json.

🛠️ Installation et Configuration

Prérequis

  • Node.js installé sur votre machine.
  • Modules NPM requis : ping et mqtt.

Installation des Dépendances

npm install ping mqtt

Configuration

  1. Fichier de Configuration : Créez un fichier config.json dans le répertoire \services\config\ avec le contenu suivant :
{
  "hosts": {
    "buzzers": {
      "IP": {
        "buzzer1": "192.168.1.10",
        "buzzer2": "192.168.1.11"
      },
      "MQTTconfig": {
        "mqttHost": "mqtt://localhost",
        "mqttTopic": "Vulture/buzzers/status"
      }
    }
  }
}
  • Adresses IP des Buzzers : Remplacez par les adresses IP de vos buzzers.
  • Configuration MQTT :
    • mqttHost : L'adresse de votre broker MQTT.
    • mqttTopic : Le topic sur lequel publier le statut des buzzers.
  1. Chemin du Fichier de Configuration : Assurez-vous que le chemin vers config.json dans le script est correct :
const config = JSON.parse(fs.readFileSync('\\services\\config\\config.json', 'utf8'));

▶️ Utilisation

  • Lancement du Script :
node BuzzerWatcher.js

Le script va :

  • Se connecter au broker MQTT spécifié.
  • Pinger chaque buzzer toutes les 3 secondes.
  • Publier le statut de chaque buzzer sur le topic MQTT configuré.

📡 Topic MQTT Utilisés

  • Publication :
    • Topic : Vulture/buzzers
    • Payload Exemple :
{
  "buzzer": "buzzer1",
  "ip": "192.168.1.10",
  "status": "online"
}

💡 Notes

  • Personnalisation de l'Intervalle : Vous pouvez modifier l'intervalle de ping en changeant la valeur dans setInterval(pingAndPublish, 3000); (valeur en millisecondes).
  • Extensibilité : Pour ajouter plus de buzzers, il suffit d'ajouter leurs adresses IP dans le fichier config.json.