Aller au contenu principal

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 :

  1. Base de données (BDD) : Où vous créez et modifiez vos scénarios via l'interface web
  2. É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.

Important

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

  1. Accédez à l'onglet "Scénario" de votre équipement
  2. En haut à droite, cliquez sur le bouton "Synchroniser avec l'équipement"
  3. La modal de synchronisation s'ouvre et charge automatiquement l'état des scénarios
Équipement hors ligne

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 :

  1. 📡 Envoie une commande LIST via MQTT à l'équipement
  2. ⏱️ Attend la réponse de l'équipement (timeout de 8 secondes)
  3. 🔍 Compare les scénarios de la BDD avec ceux de l'équipement
  4. 📊 Affiche les résultats avec les actions possibles
Communication MQTT

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 : lastSyncAt existe et updatedAtlastSyncAt et 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 lastSyncAt est null (jamais synchronisé)
    • Soit updatedAt > lastSyncAt (modifié depuis la dernière sync)
    • Soit le statut actif/inactif a changé
  • 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é (lastSyncAt est 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 :

  1. Cliquez sur "Ajouter à l'équipement"
  2. Un toast d'information s'affiche : "Ajout du scénario [nom] en cours..."
  3. Le scénario est converti au format MQTT WAGO
  4. Publication sur le topic {MAC}/SCENARIO
  5. Attente de 1,5 seconde pour la confirmation
  6. Mise à jour de lastSyncAt dans la BDD
  7. Toast de succès : "Scénario [nom] ajouté à l'équipement"
Conseil

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 :

  1. Cliquez sur "Mettre à jour"
  2. Un toast d'information s'affiche : "Mise à jour du scénario [nom] en cours..."
  3. Le scénario mis à jour est converti au format MQTT WAGO
  4. Publication sur le topic {MAC}/SCENARIO (écrase l'ancien)
  5. Attente de 1,5 seconde
  6. Mise à jour de lastSyncAt dans la BDD
  7. Toast de succès : "Scénario [nom] mis à jour dans l'équipement"
Mise à jour du statut

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 :

  1. Cliquez sur "Supprimer" ou "Supprimer de l'équipement"
  2. Un toast d'information s'affiche : "Suppression du scénario [id] en cours..."
  3. Envoi d'une commande DELETE via le topic {MAC}/SCENARIO/CMD
  4. Attente de 1,5 seconde
  5. Mise à jour de lastSyncAt à null dans la BDD (pour les scénarios non-orphelins)
  6. Toast de succès : "Scénario [id] supprimé de l'équipement"
Différence avec la suppression totale

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 :

  1. Recharger l'état actuel des scénarios depuis l'équipement
  2. Mettre à jour la comparaison BDD/Équipement
  3. 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 timeout

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

Gestion des erreurs

Workflow Complet de Synchronisation

Voici un workflow typique d'utilisation de la synchronisation :

Scénario 1 : Nouveau scénario

  1. ✏️ Créer un nouveau scénario dans le canva
  2. 💾 Enregistrer le scénario (sauvegardé dans la BDD)
  3. 🔍 Le scénario apparaît dans la liste avec badge "À sync"
  4. 🔄 Ouvrir la modal de synchronisation
  5. ➕ Cliquer sur "Ajouter à l'équipement"
  6. ✅ Le scénario est maintenant actif et synchronisé

Workflow nouveau scénario

Scénario 2 : Modification d'un scénario existant

  1. ✏️ Éditer un scénario existant dans le canva
  2. 🔧 Modifier les blocs, paramètres, conditions
  3. 💾 Enregistrer les modifications
  4. 🔍 Le scénario affiche maintenant le badge "À sync"
  5. 🔄 Ouvrir la modal de synchronisation
  6. 🔁 Cliquer sur "Mettre à jour"
  7. ✅ Les modifications sont appliquées à l'équipement

Workflow modification de scénario

Scénario 3 : Activation/Désactivation

  1. 🎚️ Basculer le switch actif/inactif d'un scénario
  2. 🔍 Le badge "À sync" apparaît
  3. 🔄 Ouvrir la modal de synchronisation
  4. 🔁 Cliquer sur "Mettre à jour" pour synchroniser le nouveau statut
  5. ✅ L'équipement active ou désactive le scénario

Workflow activation/désactivation

Scénario 4 : Nettoyage d'un scénario orphelin

  1. 🔄 Ouvrir la modal de synchronisation
  2. 🔍 Un scénario orphelin (rouge) est détecté
  3. 🗑️ Cliquer sur "Supprimer de l'équipement"
  4. ✅ Le scénario est retiré de l'équipement
  5. 🔄 Actualiser pour confirmer la suppression

Workflow nettoyage orphelin

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é

Indicateurs visuels

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 :

  1. lastSyncAt est null (jamais synchronisé)
  2. updatedAt > lastSyncAt (modifié depuis la dernière sync) - comparaison à la seconde près
  3. isActive (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 :

  1. Vérifiez l'état de l'équipement (doit être "online")
  2. Vérifiez la connexion MQTT dans les paramètres
  3. Redémarrez l'équipement si nécessaire
  4. Mettez à jour le firmware de l'équipement

Un scénario ne s'exécute pas après synchronisation

Actions :

  1. Vérifiez que le scénario est activé (switch ON)
  2. Ouvrez la modal et vérifiez l'état (doit être "Synchronisé")
  3. Consultez l'onglet "Logs" pour voir les exécutions
  4. Vérifiez que les capteurs utilisés existent et fonctionnent
  5. 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 maîtrisez maintenant les scénarios !

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 !


Liens Utiles