Résumé Détaillé du Processus de Gestion des Alarms SignalK avec Node-RED
Ce projet décrit comment gérer et afficher les alarmes générées par le système SignalK dans un environnement nautique, en utilisant Node-RED comme plateforme centrale pour traiter les notifications. La solution inclut une visualisation sur une ancienne tablette Android et des alertes sonores pour les alarmes critiques.
1. Objectif du Système
L'objectif principal est :
- Recevoir des notifications depuis SignalK.
- Les traiter pour déterminer leur gravité (normale, avertissement, alarme, urgence).
- Les afficher sur une interface graphique sur une tablette Android.
- Émettre des sons spécifiques selon le type d'alarme.
- Permettre à l'utilisateur de marquer les notifications comme "lus" ou "résolus".
2. Composants Principaux
2.1. Matériel
- Tablette Android : Utilisée comme interface utilisateur pour afficher les notifications et permettre l'interaction.
- Raspberry Pi (optionnel) : Peut être le dispositif exécutant Node-RED si aucun serveur distant n'est utilisé.
2.2. Logiciel
- SignalK : Système de surveillance utilisé pour générer et envoyer des notifications basées sur les données du bateau (tension, température, etc.).
- Node-RED : Plateforme de programmation visuelle pour traiter et gérer les notifications.
- Node-RED Dashboard 2.0 : Pour créer des interfaces graphiques interactives.
- Plugin PlaySound : Pour jouer des fichiers audio comme alertes.
- Festival TTS : Pour lire les messages à haute voix (si installé sur le système).
3. Flux de Travail
3.1. Réception des Notifications
Nœud signalk-notification :
- Ce nœud reçoit toutes les notifications générées par SignalK.
- Les notifications peuvent avoir différents états : normal, alerte, avertissement, alarme, urgence.
Sous-flux Gérer le Tableau des Notifications :
- Ce sous-flux gère un tableau global (
flow.matrizNotificaciones
) où sont stockées les notifications actives.
- Si une notification existe déjà dans le tableau, elle est mise à jour. Si elle est nouvelle, elle est ajoutée.
- Si une notification change à l'état normal, elle est supprimée du tableau.
3.2. Traitement des Notifications
3.2.1. Filtrage par État
Un nœud switch
filtre les notifications en fonction de leur état :
- État non normal : Traitées pour émettre des sons et les afficher sur l'interface.
- État normal : Seulement mises à jour dans la liste des notifications et supprimées du tableau.
3.2.2. Émission de Sons
Le sous-flux Émettre le Son Approprié ou Arrêter gère la lecture des sons en fonction du type d'alarme :
- Alerte : Joue un son doux.
- Avertissement : Joue un son modéré.
- Alarme : Joue un son fort.
- Urgence : Joue un son critique.
- Arrêt : Arrête tous les sons actifs.
3.2.3. Lecture à Voix Haute
Un nœud exec
utilise la commande festival --tts
pour lire le message de la notification à haute voix.
Cela garantit que l'opérateur reste informé même s'il ne regarde pas l'écran.
3.3. Visualisation sur la Tablette
3.3.1. Tableau des Notifications
Un nœud ui-table
affiche une liste des 25 dernières notifications.
Chaque ligne inclut :
- Chemin : Identifiant unique de la notification.
- Description : Message associé à la notification.
- Statut : Indicateur visuel montrant si la notification a été lue.
3.3.2. Notifications Émergentes
Un nœud ui-notification
affiche des notifications émergentes lorsqu'une nouvelle alarme arrive.
L'utilisateur peut interagir avec ces notifications :
- Bouton "Reçu" : Confirme que la notification a été vue.
- Bouton "Résolu" : Change le statut de la notification à normal et la supprime du tableau.
3.4. Mise à Jour de l'État dans SignalK
Lorsque l'utilisateur marque une notification comme "lu" ou "résolu" :
- Un signal est envoyé au nœud
signalk-send-notification
pour mettre à jour l'état dans SignalK.
- La notification est supprimée du tableau global (
flow.matrizNotificaciones
).
4. Implémentation Détaillée
4.1. Configuration Initiale
Installer Node-RED :
- Assurez-vous que Node-RED est installé sur votre Raspberry Pi ou serveur.
- Installez les packages nécessaires :
node-red-dashboard
, node-red-contrib-play-sound
, etc.
Configurer SignalK :
- Configurez SignalK pour générer des notifications basées sur vos capteurs (par exemple, tension moyenne des batteries).
Préparer la Tablette :
- Installez l'application Node-RED Dashboard sur la tablette Android.
- Connectez la tablette au même réseau WiFi que le serveur Node-RED.
4.2. Flux dans Node-RED
4.2.1. Nœud signalk-notification
- Configurez ce nœud pour recevoir toutes les notifications de SignalK.
- Définissez des règles pour filtrer des notifications spécifiques si nécessaire.
4.2.2. Sous-flux Gérer le Tableau des Notifications
- Créez un sous-flux pour gérer le tableau global des notifications.
- Utilisez des nœuds
function
pour :
- Créer ou mettre à jour le tableau.
- Supprimer les notifications résolues.
4.2.3. Sous-flux Émettre le Son Approprié ou Arrêter
- Créez un sous-flux pour jouer des sons en fonction du type d'alarme.
- Utilisez des nœuds
PlaySound
pour charger des fichiers audio spécifiques.
4.2.4. Nœud ui-table
- Configurez ce nœud pour afficher le tableau des notifications.
- Personnalisez les colonnes pour afficher des informations pertinentes (chemin, description, statut).
4.2.5. Nœud ui-notification
- Configurez ce nœud pour afficher des notifications émergentes.
- Ajoutez des boutons pour l'interaction utilisateur :
- "Reçu" : Confirme la notification.
- "Résolu" : Résout la notification.
4.2.6. Nœud exec
- Configurez ce nœud pour utiliser
festival --tts
et lire les messages à haute voix.
- Assurez-vous que le système a Festival installé et configuré avec un support pour l'espagnol.
4.3. Optimisation
Déclencheur pour les Répétitions :
- Implémentez un mécanisme de déclenchement pour éviter les alarmes répétitives ennuyeuses.
- Permettez aux notifications avec un état normal de passer sans appliquer le déclenchement.
Nettoyage Automatique :
- Planifiez la suppression automatique des entrées vieilles du tableau global pour le garder propre.
5. Résultats Attendus
- Visualisation Claire : Toutes les notifications sont affichées sur une interface intuitive sur la tablette.
- Sons Personalisés : Chaque type d'alarme a un son spécifique pour faciliter l'identification.
- Interaction Simple : Les utilisateurs peuvent marquer les notifications comme lues ou résolues avec un seul clic.
- Mises à Jour en Temps Réel : Les notifications sont automatiquement mises à jour dans SignalK et sur l'interface de la tablette.
6. Conclusions
Ce système fournit une solution robuste et personnalisable pour gérer les alarmes dans un environnement nautique. En combinant SignalK avec Node-RED, une intégration fluide entre capteurs, notifications et interfaces utilisateur est réalisée. L'utilisation d'une ancienne tablette Android comme interface ajoute de la valeur au projet en redonnant un usage à un appareil autrement inactif.