Wildcard Devices

Hallo @job,

so:

$message['payload']['data'][4][0]

Die Funktionsparameter liegen in data. Die Werte liegen in Index 4. Die Besonderheit ist jetzt, dass ein Array von Variablen für den Kanal übergeben werden kann. Daher noch der Index 0. Das ist bewusst so implementiert, da zum Teil mehrere Variablen gleichzeitig gesetzt werden können. Diese bekommst du dann auch zeitgleich als Ereignis. Es gibt Situationen, wo genau das benötigt wird.

Viele Grüße

Sathya

3 Likes

DANKE!

Das war mal wieder zu einfach …

Die Struktur hatte ich ja schon gesehen, aber darauf, das payload einfach als Array anzusprechen bin ich nicht gekommen. :wink:

2 Likes

So, die notwendigen Daten werden jetzt schon einmal an Node-BLUE übertragen:

2 Likes

Kann es sein, dass durch diese Anpassungen u.a. das Attribut $message['peerName'] durch $message['metadata']['name'] für normale Gerätevariablen ersetzt worden ist?

$message['peerName'] fehlt nämlich seit dem Upgrade auf das letzte nightly 0.8.0-2956. :wink:

Hallo,

das ist mir auch aufgefallen.

Zuerst dachte ich, $message[‘peerName’] sei ganz verschwunden, aber jetzt sehe ich beispielsweise folgende Message:

screenshot2

Ist diese Umstellung jetzt dauerhaft? Dann müsste ich meine Flows entsprechend auf die neuen Metadaten anpassen.

Viele Grüße

FiveEights

Hallo @FiveEights, hallo @job,

ja, das ist der Fall. Das war allerdings ein Versehen. Was meint ihr, kann es so bleiben? name ließe sich natürlich auch in peerName umbenennen.

Viele Grüße

Sathya

Hallo Sathya,

ich habe mittlerweile alle meine Flows auf die neue Message-Struktur umgestellt und alles funktioniert problemlos. Aus meiner Sicht also alles okay, auch “name” als Bezeichnung für den Device-Name kann bleiben. Bei mir ist bis jetzt keine Anforderung aufgetreten, wo die Metadaten in der neuen Form nicht verwendbar waren.

Ich verwende den Device-Name häufiger in Template-Nodes um Meldungen zu generieren. Hier musste ich etwas probieren, bis ich herausgefunden habe, dass man jetzt auf den Device-Name über {{metadata.name}} zugreifen kann.

Ich finde es auch sehr gut, dass jetzt die ID des Raumes in metadata.room mitgeliefert wird.
Wenn das mit vertretbarem Aufwand umzusetzen ist, dann wäre natürlich ein zusätzliches Metadaten-Feld mit dem Namen des Raumes noch hilfreich. Bis jetzt lese ich diesen immer noch separat in einem Function-Node über getRooms aus und füge den Raum-Namen selbst der Message hinzu.

Ich hoffe, das ist für Dich hilfreich.

Viele Grüße

FiveEights

2 Likes