Synchronisation des Scénarios avec l'Équipement
La synchronisation est l'étape qui permet de transférer vos scénarios depuis la base de données vers l'équipement Logic Controller via MQTT. C'est une étape essentielle pour que vos automatisations soient réellement exécutées.
Principe de la Synchronisation
Les scénarios existent à deux endroits distincts :
- Base de données (BDD) : Où vous créez et modifiez vos scénarios via l'interface web
- Équipement Logic Controller : Où les scénarios sont stockés et exécutés en temps réel
La synchronisation utilise le protocole MQTT pour transférer les scénarios entre ces deux emplacements.
Un scénario enregistré dans la BDD ne sera PAS exécuté tant qu'il n'a pas été synchronisé avec l'équipement.
Accéder à la Synchronisation
Prérequis
Avant de pouvoir synchroniser, assurez-vous que :
- ✅ L'équipement est en ligne (statut "online")
- ✅ Vous avez au moins un scénario créé dans la BDD
- ✅ Vous disposez des permissions nécessaires (abonnement Premium ou Démo)
Ouvrir la modal de synchronisation
- Accédez à l'onglet "Scénario" de votre équipement
- En haut à droite, cliquez sur le bouton "Synchroniser avec l'équipement"
- La modal de synchronisation s'ouvre et charge automatiquement l'état des scénarios
Si l'équipement est hors ligne ou si vous n'avez aucun scénario, le bouton sera désactivé (grisé).
Chargement Automatique
Dès l'ouverture de la modal, le système :
- 📡 Envoie une commande LIST via MQTT à l'équipement
- ⏱️ Attend la réponse de l'équipement (timeout de 8 secondes)
- 🔍 Compare les scénarios de la BDD avec ceux de l'équipement
- 📊 Affiche les résultats avec les actions possibles
La synchronisation utilise les topics MQTT suivants :
{MAC}/SCENARIO/CMD- Envoi des commandes{MAC}/SCENARIO/CMD/OUT- Réception de la liste des scénarios{MAC}/SCENARIO/ACK- Accusés de réception{MAC}/SCENARIO- Envoi de scénarios complets
États de Synchronisation
Chaque scénario dans la modal affiche un état visuel clair :
✅ Synchronisé
- Badge : Badge vert "Synchronisé" avec icône ✓
- Bordure gauche : Verte
- Signification : Le scénario est identique dans la BDD et l'équipement
- Condition :
lastSyncAtexiste etupdatedAt≤lastSyncAtet le statut actif/inactif correspond - Action disponible : Supprimer de l'équipement
⚠️ À mettre à jour
- Badge : Badge orange "À mettre à jour" avec icône ⚠
- Bordure gauche : Orange/Jaune
- Signification : Le scénario existe dans les deux mais a été modifié dans la BDD
- Condition :
- Soit
lastSyncAtest null (jamais synchronisé) - Soit
updatedAt>lastSyncAt(modifié depuis la dernière sync) - Soit le statut actif/inactif a changé
- Soit
- Actions disponibles :
- Mettre à jour dans l'équipement
- Supprimer de l'équipement
❌ Non synchronisé
- Badge : Badge gris "Non synchronisé" avec icône ✗
- Bordure gauche : Grise
- Signification : Le scénario existe uniquement dans la BDD, pas dans l'équipement
- Condition : Aucun scénario correspondant trouvé dans l'équipement
- Action disponible : Ajouter à l'équipement
🚨 Scénario orphelin
- Badge : Badge rouge "Non référencé" avec icône ?
- Bordure gauche : Rouge
- Fond : Légèrement rouge transparent
- Signification : Le scénario existe dans l'équipement mais pas dans la BDD
- Cause possible :
- Scénario supprimé de la BDD mais pas encore de l'équipement
- BDD réinitialisée
- Scénario créé directement sur l'équipement (cas rare)
- Action disponible : Supprimer de l'équipement
Badge "À sync" dans la liste
Dans l'onglet "Scénario" (vue liste), chaque carte de scénario affiche un badge "À sync" orange si :
- Le scénario n'a jamais été synchronisé (
lastSyncAtest null) - Le scénario a été modifié après la dernière synchronisation (
updatedAt>lastSyncAt)
Ce badge vous permet de voir rapidement quels scénarios nécessitent une synchronisation sans ouvrir la modal.
Actions de Synchronisation
Ajouter à l'équipement
Quand l'utiliser : Pour un scénario qui existe uniquement dans la BDD
Processus :
- Cliquez sur "Ajouter à l'équipement"
- Un toast d'information s'affiche : "Ajout du scénario [nom] en cours..."
- Le scénario est converti au format MQTT WAGO
- Publication sur le topic
{MAC}/SCENARIO - Attente de 1,5 seconde pour la confirmation
- Mise à jour de
lastSyncAtdans la BDD - Toast de succès : "Scénario [nom] ajouté à l'équipement"
Après avoir créé un nouveau scénario, pensez à l'ajouter à l'équipement pour qu'il soit opérationnel.
Mettre à jour dans l'équipement
Quand l'utiliser : Pour un scénario qui a été modifié dans la BDD
Processus :
- Cliquez sur "Mettre à jour"
- Un toast d'information s'affiche : "Mise à jour du scénario [nom] en cours..."
- Le scénario mis à jour est converti au format MQTT WAGO
- Publication sur le topic
{MAC}/SCENARIO(écrase l'ancien) - Attente de 1,5 seconde
- Mise à jour de
lastSyncAtdans la BDD - Toast de succès : "Scénario [nom] mis à jour dans l'équipement"
Si vous activez ou désactivez un scénario, cela déclenche aussi un état "À mettre à jour" car le statut actif/inactif doit être synchronisé avec l'équipement.
Supprimer de l'équipement
Quand l'utiliser :
- Pour retirer un scénario de l'équipement tout en le gardant dans la BDD
- Pour nettoyer un scénario orphelin
Processus :
- Cliquez sur "Supprimer" ou "Supprimer de l'équipement"
- Un toast d'information s'affiche : "Suppression du scénario [id] en cours..."
- Envoi d'une commande DELETE via le topic
{MAC}/SCENARIO/CMD - Attente de 1,5 seconde
- Mise à jour de
lastSyncAtànulldans la BDD (pour les scénarios non-orphelins) - Toast de succès : "Scénario [id] supprimé de l'équipement"
Supprimer de l'équipement ne supprime PAS le scénario de la BDD. Il reste accessible et éditable, mais ne s'exécute plus sur l'équipement jusqu'à ce que vous le rajoutiez.
Actualiser l'État
En bas de la modal, le bouton "Actualiser" permet de :
- Recharger l'état actuel des scénarios depuis l'équipement
- Mettre à jour la comparaison BDD/Équipement
- Détecter les nouveaux changements
Quand l'utiliser :
- Après avoir effectué plusieurs synchronisations
- Si plusieurs utilisateurs gèrent le même équipement
- Pour vérifier que les actions ont bien été appliquées
Informations Affichées
Pour chaque scénario dans la modal, vous voyez :
En-tête
- Nom du scénario avec icône
- Badge actif/inactif (vert/gris)
- Badge d'état de sync (synchronisé/à mettre à jour/non synchronisé)
Description (si présente)
- Texte descriptif du scénario
Pied de page
- Date de dernière modification (ex: "il y a 2 heures")
- ID dans l'équipement (ex: "scenario_123") - uniquement si présent dans l'équipement
- Boutons d'action selon l'état
Gestion des Erreurs
Erreur : Timeout
Message : "Timeout: L'équipement n'a pas répondu à la commande LIST..."
Cause : L'équipement n'a pas répondu dans les 8 secondes
Solutions :
- Vérifiez que l'équipement est bien en ligne
- Vérifiez la connexion MQTT
- Assurez-vous que le firmware de l'équipement est à jour (fonctionnalité des scénarios supportée)
- Cliquez sur "Réessayer"
Erreur : Réponse MQTT invalide
Message : "Erreur lors du traitement de la réponse MQTT: [détails]"
Cause : La réponse de l'équipement n'est pas dans le format attendu
Solutions :
- Vérifiez la version du firmware
- Contactez le support technique
- Cliquez sur "Réessayer"
Erreur : Équipement signale une erreur
Message : "Erreur de l'équipement: [message de l'équipement]"
Cause : L'équipement a retourné un ACK avec status "error" ou "failure"
Solutions :
- Consultez les logs de l'équipement
- Vérifiez que le scénario est compatible avec l'équipement
- Essayez de supprimer puis recréer le scénario
Workflow Complet de Synchronisation
Voici un workflow typique d'utilisation de la synchronisation :
Scénario 1 : Nouveau scénario
- ✏️ Créer un nouveau scénario dans le canva
- 💾 Enregistrer le scénario (sauvegardé dans la BDD)
- 🔍 Le scénario apparaît dans la liste avec badge "À sync"
- 🔄 Ouvrir la modal de synchronisation
- ➕ Cliquer sur "Ajouter à l'équipement"
- ✅ Le scénario est maintenant actif et synchronisé
Scénario 2 : Modification d'un scénario existant
- ✏️ Éditer un scénario existant dans le canva
- 🔧 Modifier les blocs, paramètres, conditions
- 💾 Enregistrer les modifications
- 🔍 Le scénario affiche maintenant le badge "À sync"
- 🔄 Ouvrir la modal de synchronisation
- 🔁 Cliquer sur "Mettre à jour"
- ✅ Les modifications sont appliquées à l'équipement
Scénario 3 : Activation/Désactivation
- 🎚️ Basculer le switch actif/inactif d'un scénario
- 🔍 Le badge "À sync" apparaît
- 🔄 Ouvrir la modal de synchronisation
- 🔁 Cliquer sur "Mettre à jour" pour synchroniser le nouveau statut
- ✅ L'équipement active ou désactive le scénario
Scénario 4 : Nettoyage d'un scénario orphelin
- 🔄 Ouvrir la modal de synchronisation
- 🔍 Un scénario orphelin (rouge) est détecté
- 🗑️ Cliquer sur "Supprimer de l'équipement"
- ✅ Le scénario est retiré de l'équipement
- 🔄 Actualiser pour confirmer la suppression
Indicateurs Visuels
Codes couleurs des bordures
- 🟢 Vert : Scénario synchronisé (tout est à jour)
- 🟡 Jaune/Orange : Scénario à mettre à jour (modifications en attente)
- ⚪ Gris : Scénario non synchronisé (jamais envoyé à l'équipement)
- 🔴 Rouge : Scénario orphelin (dans l'équipement mais pas en BDD)
Icônes des badges
- ✓ (check-circle) : Synchronisé
- ⚠ (exclamation-circle) : À mettre à jour
- ✗ (x-circle) : Non synchronisé
- ? (question-circle) : Orphelin / Non référencé
Informations Techniques
Format MQTT
Les scénarios sont convertis au format WAGO avant envoi via MQTT :
Structure d'un message de scénario :
{
"scenarioId": "scenario_123",
"active": true,
"blocks": [...],
"connections": [...],
"parameters": [...]
}
Commande LIST :
{
"command": "LIST"
}
Commande DELETE :
{
"command": "DELETE",
"scenarioId": "scenario_123",
"confirm": true
}
Détection des changements
Le système détecte automatiquement qu'un scénario a changé si :
lastSyncAtestnull(jamais synchronisé)updatedAt>lastSyncAt(modifié depuis la dernière sync) - comparaison à la seconde prèsisActive(BDD) ≠active(équipement) - le statut a changé
Bonnes Pratiques
Pour une synchronisation efficace :
✅ Synchronisez après chaque modification importante : Ne laissez pas s'accumuler les changements ✅ Vérifiez les badges "À sync" : Consultez régulièrement la liste des scénarios ✅ Utilisez "Actualiser" : Avant et après une série de synchronisations ✅ Nettoyez les orphelins : Supprimez les scénarios orphelins pour éviter la confusion ✅ Vérifiez le statut de l'équipement : Assurez-vous qu'il est "online" avant de synchroniser ✅ Attendez la confirmation : Les toasts vous indiquent le succès ou l'échec de chaque action ✅ Testez après sync : Vérifiez que le scénario s'exécute correctement
Limitations et Contraintes
Délai de communication
- Timeout : 8 secondes pour la commande LIST
- Délai post-action : 1,5 seconde d'attente après chaque commande
- Ces délais sont nécessaires pour la communication MQTT et le traitement par l'équipement
Firmware
- La fonctionnalité nécessite un firmware à jour sur l'équipement
- Les anciens firmware peuvent ne pas supporter les commandes de scénarios
- Vérifiez régulièrement les mises à jour firmware disponibles
Connexion MQTT
- L'équipement doit être connecté au broker MQTT
- Une connexion instable peut entraîner des échecs de synchronisation
- En cas de problème, vérifiez les paramètres réseau de l'équipement
Dépannage
Le bouton "Synchroniser" est désactivé
Vérifiez :
- L'équipement est-il en ligne ?
- Avez-vous au moins un scénario créé ?
- Disposez-vous des permissions nécessaires (Premium/Démo) ?
La modal affiche "Timeout"
Actions :
- Vérifiez l'état de l'équipement (doit être "online")
- Vérifiez la connexion MQTT dans les paramètres
- Redémarrez l'équipement si nécessaire
- Mettez à jour le firmware de l'équipement
Un scénario ne s'exécute pas après synchronisation
Actions :
- Vérifiez que le scénario est activé (switch ON)
- Ouvrez la modal et vérifiez l'état (doit être "Synchronisé")
- Consultez l'onglet "Logs" pour voir les exécutions
- Vérifiez que les capteurs utilisés existent et fonctionnent
- Testez le scénario avec le bouton "Tester"
Des scénarios orphelins apparaissent
Causes possibles :
- Suppression d'un scénario de la BDD sans le supprimer de l'équipement
- Réinitialisation de la BDD
- Migration d'équipement
Solution :
- Supprimez les orphelins de l'équipement via le bouton "Supprimer de l'équipement"
Conclusion
La synchronisation MQTT est le pont entre votre configuration web et l'exécution temps réel sur l'équipement. En comprenant les différents états et en suivant les bonnes pratiques, vous maintiendrez une parfaite cohérence entre vos scénarios en BDD et ceux actifs sur le terrain.
Vous savez créer, configurer et synchroniser des scénarios. N'hésitez pas à expérimenter et à créer des automatisations complexes adaptées à vos besoins !