Ein read only Zeiger auf eine read only Zeichenkette.
Ansonsten wirfst du da ein paar Begriffe durcheinander, so dass ich da wenig zu sagen kann.
Klarer: Ich verstehe nicht, was du (und auch warum) erreichen willst.
Man möge mich korrigieren, wenn ich da falsch liege aber:
constexpr char* ist im Grunde dasselbe wie "char * const" was ein konstanter Zeiger auf ein nicht-konstantes char Array ist. Das ist aber nicht korrekt, weil String-Literale den Typ const char Variable[n] haben, also der "Inhalt" konstant ist.
"constexpr const char*" auf der anderen Seite, ist im Grunde dasselbe wie "const char* const" was ein konstanter Zeiger auf ein konstantes char Array ist. Hier ist sowohl der Zeiger, als auch der "Inhalt" auf den der Zeiger zeigt, konstant
also
const char* TOPIC_POWER = "Nici/Schrank/Power"; // Konstanter "Inhalt", nicht konstanter Zeiger
oder constexpr const char* TOPIC_POWER = "Nici/Schrank/Power"; // "Inhalt" wie auch Zeiger konstant
... wäre auch const char * const TOPIC_POWER = "Nici/Schrank/Power";
(hat @combie schon vorgeschlagen)
Welches const jetzt was konstant macht und warum für constexpr da eine andere Syntax gilt als für const ist wirklich etwas verwirrend und hängt wohl damit zusammen dass etwas das mal definiert wurde, nie mehr geändert werden darf.