Hallo,
Ich denke über ein kleines interaktives Projekt nach, das physische Karten mit NFC-Tags verwendet, um verschiedene Stimmungen in Gladys auszulösen.
Die Idee wäre, ein sehr dünnes NFC-Tag in die Hülle jeder Karte zu legen. Wenn die Karte mit einem Telefon gescannt wird, sendet dieses eine Kennung an Gladys per HTTP oder MQTT.
Gladys könnte dann:
-
die Farbe und Helligkeit der Lampen ändern
-
eine Musik oder lokale Klangkulisse abspielen
-
eine Szene für eine bestimmte Dauer aktivieren
-
die zuletzt gescannte Karte speichern
-
ihren Namen auf dem Dashboard anzeigen
-
nach einigen Minuten automatisch zur normalen Stimmung zurückkehren
Das Projekt würde 78 verschiedene Karten enthalten. Hier ist die Liste, die ich verwenden würde, um jede NFC-Kennung mit einem Namen und einer Stimmung zu verknüpfen:
Ich weise darauf hin, dass ich an der Wartung der verlinkten Website beteiligt bin. Ich teile diese Seite nur, um den Datensatz und die 78 Einträge zu zeigen, die die Automatisierung verarbeiten sollte.
Ich suche jetzt die beste Architektur in Gladys.
1. HTTP oder MQTT zum Übertragen der Kennung?
Ist es für eine hauptsächlich lokale Nutzung besser, wenn das Telefon die Kartenkennung direkt auf ein MQTT-Topic veröffentlicht?
Zum Beispiel:
gladys/nfc/card
Mit einem Wert wie:
the-world
Oder wäre es einfacher, NFC Tools oder Tasker zu verwenden, um eine HTTP-Anfrage an die Gladys-API zu senden?
2. Ein virtuelles Gerät zum Speichern der Karte
Ich dachte daran, ein virtuelles MQTT-Gerät mit einer Text- oder numerischen Funktion zu erstellen, die die zuletzt gescannte Karte darstellt.
Ist das eine gute Methode, um zu ermöglichen, dass Szenen auf den Wert reagieren, oder sollte man direkt eine andere Szene vom Telefon aus auslösen?
3. Vermeidung der Erstellung von 78 Szenen
Ich würde lieber keine separate Szene für jede Karte erstellen.
Gibt es eine saubere Möglichkeit, eine einzige Szene zu erstellen, die:
-
die empfangene Kennung abruft
-
diese Kennung in einer Zuordnungstabelle sucht
-
die Farbe, Helligkeit, den Klang und die Dauer abruft, die damit verknüpft sind
-
die entsprechenden Aktionen ausführt
Die Tabelle könnte so aussehen:
{
"the-world": {
"color": "#D4AF37",
"brightness": 45,
"duration": 900
},
"the-hermit": {
"color": "#6B7280",
"brightness": 20,
"duration": 1200
}
}
Kann diese Art von Logik direkt in Gladys verwaltet werden, oder wäre es besser, über Node-RED oder eine kleine externe Integration zu gehen?
4. Erkennung der Karte aufrecht oder umgekehrt
Eine Karte kann normal oder um 180 Grad gedreht platziert werden.
Ich könnte zwei verschiedene NFC-Aktionen auf dem Telefon speichern, zum Beispiel:
the-world:upright
the-world:reversed
Aber das würde wahrscheinlich zwei Tags pro Karte erfordern.
Sehen Sie eine einfachere Methode, um auch die Ausrichtung der Karte zu übertragen?
5. Zeitsteuerung und Wiederherstellung des vorherigen Zustands
Nach 10 oder 15 Minuten möchte ich die Lampen und Geräte in ihren vorherigen Zustand zurückversetzen.
Erlaubt Gladys, die Zustände vor dem Start der Szene zu speichern und sie dann automatisch am Ende wiederherzustellen?
Falls nicht, könnte ich einfach eine Szene für die normale Stimmung nach einer festen Verzögerung starten.
6. Anzeige auf dem Dashboard
Schließlich wäre es möglich, im Dashboard anzuzeigen:
-
der Name der letzten Karte
-
die Scan-Zeit
-
ihre Ausrichtung
-
die aktuell aktive Stimmung
Ich möchte mit einem Prototyp beginnen, der nur drei Karten verwendet, bevor ich die 78 vorbereite.
Für dieses Projekt würden Sie eher MQTT, die Open API, Node-RED oder das zukünftige externe Integrationssystem von Gladys verwenden?