Die Grundregel
Ein Topic soll beschreiben, was gemessen wird und wo – nicht, womit. Der Messpunkt bleibt, das Gerät wird getauscht. Ein Topic, das die Seriennummer enthält, ist beim ersten Defekt wertlos.
Bewährt hat sich diese Reihenfolge, von grob nach fein:
| Ebene 1 | Liegenschaft oder Standort |
|---|---|
| Ebene 2 | Gebäude oder Bauteil |
| Ebene 3 | Geschoss, Zone oder Nutzeinheit |
| Ebene 4 | Messpunkt in Anlagenbezeichnung |
| Ebene 5 | Messgrösse |
Beispiel: werk-nord/halle-2/zone-ost/hv-abgang-04/wirkenergie-import
Warum die Reihenfolge zählt
MQTT-Abonnements arbeiten mit Platzhaltern: + für genau eine Ebene, # für alles darunter. Diese Platzhalter greifen nur dann sinnvoll, wenn die Hierarchie von grob nach fein läuft.
werk-nord/# liefert alles aus dem Werk. werk-nord/+/+/+/wirkenergie-import liefert alle Wirkenergie-Importwerte, unabhängig von Halle und Zone. Bei einer Struktur, die mit der Messgrösse beginnt, funktioniert keine dieser Abfragen.
Fünf Fehler, die später Geld kosten
- Seriennummer im Topic. Überlebt den ersten Gerätetausch nicht.
- Einheit im Topic, etwa
.../energie-kwh. Ändert sich die Skalierung, ändert sich das Topic. Einheiten gehören in die Nutzlast. - Umlaute, Leerzeichen und Grossbuchstaben. Technisch oft erlaubt, in der Praxis eine Quelle stiller Fehler. Kleinbuchstaben und Bindestriche.
- Zeitangaben im Topic, etwa ein Datum pro Tag. Erzeugt unendlich viele Topics und macht Abonnements unmöglich.
- Keine Reserveebene. Kommt ein zweites Gebäude dazu, muss die ganze Struktur umgebaut werden.
Was in die Nutzlast gehört
Das Topic sagt, wo. Die Nutzlast sagt, was und wann. Für Energiedaten hat sich ein kleines JSON-Objekt bewährt mit Wert, Einheit, Zeitstempel und einem Statusfeld.
Der Zeitstempel in der Nutzlast ist nicht optional. Er unterscheidet den Zeitpunkt der Messung vom Zeitpunkt der Zustellung – und erlaubt, Duplikate aus QoS 1 zu erkennen und nachgelieferte Werte korrekt einzuordnen. Ohne ihn ist eine Nachlieferung nach einem Broker-Ausfall nicht von einem aktuellen Wert zu unterscheiden.
Das EMU M-Center erlaubt frei konfigurierbare Topics und QoS; die MQTT-Funktion ist lizenzpflichtig und TLS-verschlüsselt.
Vor dem ersten Publish festlegen
- Schema schriftlich, abgestimmt mit dem Empfängersystem
- Benennungsregeln: Kleinbuchstaben, Bindestriche, keine Umlaute
- Eine Ebene Reserve für spätere Standorte oder Bauteile
- Nutzlastformat mit Wert, Einheit, Zeitstempel, Status
- Wer darf veröffentlichen, wer darf abonnieren
Dasselbe Prinzip gilt bei BACnet-Objektnamen – nur dass dort das Umbenennen noch teurer ist.