Das Thema wurde hier schon öfter andiskutiert - ich wollte es jetzt final endlich mal umsetzen.
Aktuell sieht das Namensschema wie folgt aus:
constexpr const char topicSleepCmnd = „Cmnd/ESPuino/Sleep“;
constexpr const char topicSleepState = „State/ESPuino/Sleep“;
constexpr const char topicRfidCmnd = „Cmnd/ESPuino/Rfid“;
constexpr const char topicRfidState = „State/ESPuino/Rfid“;
Eigentlich wäre es besser, ESPuino ganz vorne zu haben. Dazu kommt noch, dass in einigen Haushalten mehr als ein ESPuino vorhanden ist. Insofern wäre es auf jeden Fall sinnig, hier zusätzlich auch einen zusätzlichen Namen mit reinzubringen. Der Einfachheit halber könnte dies derjenige sein, der in DEVICE_HOSTNAME steht.
D.h. das Namensschema wäre dann:
{DEVICE_HOSTNAME}/{Cmnd/State}/{Aktion}
Frage1: Passt das so für euch?
Frage2: (vielleicht an @laszloh): Wie konkatteniert man am besten constexpr?
Ergänzend zieht man das alles zusätzlich ins Webinterface, da wir die Kladde für MQTT dort eh schon haben. D.h. man braucht eine grundsätzliche Initialisierung, die erstmal auf Basis dessen, was wir in der settings.h haben, die MQTT-Channels anlegt und als JSON(?) im NVS speichert. Vom Webinterface aus kann man diese Pfade dann abweichend konfigurieren und bei einem Neustart wird’s entsprechend geladen. Man müsste es auch nicht unbedingt als JSON machen, aber vermutlich wäre es so am saubersten.
Vielleicht lässt man das jedoch auch weg und bläht den Code nicht zusätzlich auf, da man MQTT-Channels für gewöhnlich eigentlich nicht ständig ändert.
Meinungen sind erwünscht!