Déclencher des scènes d’ambiance Gladys avec des cartes NFC

Bonjour,

Je réfléchis à un petit projet interactif utilisant des cartes physiques équipées de tags NFC pour déclencher différentes ambiances dans Gladys.

L’idée serait de placer un tag NFC très fin dans la pochette de chaque carte. Lorsque la carte est scannée avec un téléphone, celui-ci envoie un identifiant à Gladys par HTTP ou MQTT.

Gladys pourrait ensuite :

  • modifier la couleur et la luminosité des lampes

  • lancer une musique ou une ambiance sonore locale

  • activer une scène pendant une durée déterminée

  • enregistrer la dernière carte scannée

  • afficher son nom sur le tableau de bord

  • revenir automatiquement à l’ambiance normale après quelques minutes

Le projet contiendrait 78 cartes différentes. Voici la liste que j’utiliserais pour associer chaque identifiant NFC à un nom et à une ambiance :

Je précise que je participe à la maintenance du site lié. Je partage cette page uniquement pour montrer le jeu de données et les 78 entrées que l’automatisation devrait gérer.

Je cherche maintenant la meilleure architecture dans Gladys.

1. HTTP ou MQTT pour transmettre l’identifiant ?

Pour un usage principalement local, est-il préférable que le téléphone publie directement l’identifiant de la carte sur un topic MQTT ?

Par exemple :

gladys/nfc/card

Avec une valeur comme :

the-world

Ou serait-il plus simple d’utiliser NFC Tools ou Tasker pour envoyer une requête HTTP à l’API Gladys ?

2. Un appareil virtuel pour stocker la carte

Je pensais créer un appareil MQTT virtuel avec une fonctionnalité texte ou numérique représentant la dernière carte scannée.

Est-ce une bonne méthode pour permettre aux scènes de réagir à la valeur, ou faudrait-il déclencher directement une scène différente depuis le téléphone ?

3. Éviter de créer 78 scènes

Je préférerais ne pas créer une scène séparée pour chaque carte.

Existe-t-il une manière propre de créer une seule scène qui :

  1. récupère l’identifiant reçu

  2. recherche cet identifiant dans une table de correspondance

  3. récupère la couleur, la luminosité, le son et la durée associés

  4. exécute les actions correspondantes

La table pourrait ressembler à ceci :

{
  "the-world": {
    "color": "#D4AF37",
    "brightness": 45,
    "duration": 900
  },
  "the-hermit": {
    "color": "#6B7280",
    "brightness": 20,
    "duration": 1200
  }
}

Est-ce que ce type de logique peut être géré directement dans Gladys, ou serait-il préférable de passer par Node-RED ou une petite intégration externe ?

4. Détecter la carte à l’endroit ou à l’envers

Une carte peut être posée normalement ou tournée à 180 degrés.

Je pourrais enregistrer deux actions NFC différentes sur le téléphone, par exemple :

the-world:upright
the-world:reversed

Mais cela demanderait probablement deux tags par carte.

Voyez-vous une méthode plus simple pour transmettre également l’orientation de la carte ?

5. Temporisation et restauration de l’état précédent

Après 10 ou 15 minutes, je voudrais restaurer les lampes et les appareils dans leur état précédent.

Gladys permet-il de mémoriser les états avant le lancement de la scène, puis de les restaurer automatiquement à la fin ?

Sinon, je pourrais simplement lancer une scène d’ambiance normale après un délai fixe.

6. Affichage sur le tableau de bord

Enfin, serait-il possible d’afficher dans le dashboard :

  • le nom de la dernière carte

  • l’heure du scan

  • son orientation

  • l’ambiance actuellement active

Je souhaite commencer par un prototype avec seulement trois cartes avant de préparer les 78.

Pour ce type de projet, utiliseriez-vous plutôt MQTT, l’Open API, Node-RED ou le futur système d’intégrations externes de Gladys ?