ich habe eine Frage dazu, wie ich im MQTT-Subsystem die Topics für ein Gerät am sinnvollsten strukturiere. Da man die Geräte nach dem Anlegen auf der Hauptebene ja nicht mehr bearbeiten kann, möchte ich gerne folgenschwere (aufwändige) Fehler vermeiden.
Konkret geht es hier um den AC-gekoppelten Batterie-Speicher "Zendure SolarFlow 2400 AC", aber eigentlich ist die Frage auch auf andere Geräte übertragbar.
Das Gerät sendet die Topics in folgender Struktur:

Wie ihr seht, ist in die Struktur auf 3. Ebene die Seriennummer des Gerätes eingebunden. Wie verpacke ich das am sinnvollsten? Ich denke zum einen an ein späteres Teilen der Geräte-Konfiguration, aber auch daran, dass evtl. das Gerät bei einem Defekt ersetzt werden könnte und ich nicht alles neu anlegen möchte.
Mir sind folgende Ansätze eingefallen:
1) Das Gerät mit "Zendure" anlegen und den Rest in das App Level Topic (z.B. /sensor/Hxxxxxxxxxx9/heatState) nehmen.
2) Mehrere Geräte "Zendure/sensor/Hxxxxxxxxxx9", "Zendure/switch/Hxxxxxxxxxx9" etc. anlegen und in den App Level Topics dann nur noch die letzte Hierachieebene also z.B. "/heatState" definieren.
Bei Variante 1) muss man alle Topics bearbeiten wenn man die Konfiguration auf eine andere Seriennummer anpassen möchte. Bei 2) hätte man die Möglichkeit beim Import des Geräteprofils das Topic zu ändern.
Falls ich das richtig verstehe, wäre bei Variante 1) die Änderung der Seriennummer in einer bestehenden Konfiguration zwar aufwändig, aber zumindest möglich (ohne alle Objektverknüfungen neu machen zu müssen). Bei Variante 2) muss man das Gerät mit allen Verknüfungen komplett neu anlegen, braucht aber die Seriennummer nur an einer Stelle anpassen.
Noch ein paar weitere Gedanken:
Die Schalter für unterschiedliche Prefix/Infix/Postfix Level helfen hier gar nicht, oder?
Das exportierte Geräte-Profil (*.json) kann man auch mit einem Texteditor bearbeiten, aber die Warnungen beim Import machen mich dann noch nervös (der TWS bemerkt die Bearbeitung, weil der Hash nicht mehr stimmt) und das ist nicht die elegante Art. Ich erinnere mich an Warnungen von Elabnet zu einem ähnlichen Vorgehen in anderem Kontext, weil so Prüfungen umgangen werden und es zu schwerwiegenden Fehlern kommen kann.
Übersehe ich noch etwas? Welches Vorgehen wäre "Best Practice"?
VG
Stefan
PS:
Ich weiß noch nicht, ob eine Selfmade-Steuerung über MQTT überhaupt der "richtige" Weg für mich ist. Das einfachste wäre sicher die Verwendung der Hersteller-Cloud mit einem kompatiblen D0-Lesekopf oder die Nutzung der HomeAssistant-Integration. Aber ich habe bereits einen D0-Lesekopf und die Daten im KNX und HA mag ich nicht. Aber um diese Frage des "wie steuern" solls hier gar nicht gehen. Ich evaluiere erstmal meine Optionen.