Mit dem „Zigbee2mqtt Amin Panel” und „z2m Admin” gibt es schon zwei Node-RED-Flows zur Administration der Zigbee-zu-MQTT-Bridge zigbee2mqtt (kurz: z2m). Leider werden beide seit einiger Zeit nicht mehr weiterentwickelt.
Die Geräteliste von z2m Admin funktioniert daher gar nicht mehr, und das Admin Panel hat andere Probleme wie z.B. den enormen MQTT-Verkehr durch häufige Bridge-Abfragen.
Bevor ich mich in die teils recht komplizierten Flows der Vorlagen einarbeite, habe ich einen möglichst einfachen eigenen Admin Flow zusammengebaut, der nur die (für mich) essentiellen Funktionen enthält.
Die Geräteliste
Die zigbee2mqtt Bridge verrät ihre komplette Geräteliste nach einer Abfrage durch eine MQTT-Message mit dem Topic
zigbee2mqtt/bridge/config/devices/get
Die Liste sendet z2m an das Topic
zigbee2mqtt/bridge/config/devices
Die json- Struktur enthält u.a. Name, Hersteller, Beschreibung, Modell und Netzwerk-Adresse der Geräte. Im Flow wird die Liste nicht regelmäßig abgefragt - das würde nur unnötig Verkehr und Last verursachen - sondern nur auf Anforderung oder nach Änderungen.
Ein Funktionsblock arbeitet die Daten für eine ui-List auf. Für bekannte Geräte können spezielle Icons angezeigt werden, ansonsten gibt es Standard-Icons für Coördinator, Router und Endgeräte.
Klickt man auf eine Zeile in der Liste, werden Felder in den Rename- und Send-Funktionen mit Name und Topic des Geräts vorbelegt (das läuft über die Verbinder rechts).

Geräte umbenennen
Wenn ein Gerät neu mit z2m gepaart wird, ist sein Name zunächst seine ieee-Adresse. Da sich niemand etwas wie „0xbc33acfffe90d3d1” merken kann, benennt man die Geräte auf „friendly names” um. Das MQTT-Topic dafür ist
zigbee2mqtt/bridge/config/rename
In der Payload stehen in „old” und „new” der alte und der neue Name des Geräts. Der alte Name kann durch Klick auf die Geräteliste belegt werden, der neue wird in einem Text-Input eingetragen. Beim Start des Flows wird der Input mit einem einmaligen Inject geleert.
Ein Button sendet die Message an MQTT. Nach einer Verzögerung von einer Sekunde wird die Geräteliste neu abgefragt. Sie zeigt dann schon den neuen Namen an.

Pairing zulassen
Normalerweise will man nicht, dass jederzeit neue Geräte in das eigene Zigbee-Netz kommen. Dafür existiert das Topic
zigbee2mqtt/bridge/config/permit_join
In der Payload kann man das Paring mit „Permit” oder „Deny” ein- oder ausschalten. Den jeweiligen Zustand merken wir uns im Flow-Context.

Messages anzeigen und senden
Damit man nicht immer zusätzlich einen MQTT-Client wie MQTTfx bemühen muss, kann man mit dem Flow auch MQTT-Messages senden und anzeigen lassen.
Zwei Text-Inputs nehmen Payload und Topic der Message auf. Das Topic wird beim Start mit dem Prefix zigbee2mqtt/
vorbelegt. Beim Klick auf die Geräteliste wird das Topic des entsprechenden Geräts übernommen. Beide Angaben werden im Flow Context zwischengespeichert.
Ein Button triggert einen Funktionsblock, der die zwischengespeicherten Werte zu einer Message zusammensetzt und an den MQTT-Broker absendet.

Beim Empfang werden einfach alle Messages an Topics, die mit zigbee2mqtt/
beginnen, in einem Template als Tabelle angezeigt. Die Anzeige ist auf 10 Messages begrenzt.
Als Zwischenspeicher dient pro Zeile eine Context-Variable. Der Funktionsblock sorgt für die Formatierung der Tabelle und das Durchrollen der Zeilen.

Das Dashboard sieht dann so aus:

Den kompletten Flow könnt ihr gern herunterladen und nach belieben nutzen oder verändern.