Ja, da gehört das % ja auch hin, %06X sind die letzten sechs Stellen der MAC, hier lautet die MAC also XX:XX:XX:8E:88:1A (X -> 0-F)
Und entsprechend heißt das Fulltopic dann tele/tasmota_8E881A/SENSOR
Das hier: %Tasmota%/%Stromzähler%/SENSOR kommt so aber nicht Zustande, da hat jemand das Fulltopic (und evtl. zusätzlich das Topic) verändert, ohne die Regeln zu befolgen
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
Hallo,
An alle das Topic habe ich selbst geändert und mir nichts dabei gedacht!
Aber nachdem ich im Netz schon mehrmals auf dieses Topic gestoßen bin war ich etwas verwundert habe mir aber nichts gedacht!
Tasmota erzeugt ein FullTopic (den gesamten Pfad zu einer Payload) gewöhnlich auf der Basis des Prefix und des Topic. Dabei ist das Topic gerätespezifisch und das Prefix "Firmwarespezifisch".
Es gibt für das Prefix, wie gesagt drei Werte, die im Sourcecode definiert sind, stat, cmnd und tele. cmnd ist ausschließlich ankommend, hier "horcht" Tasmota auf Befehle von außen. stat ist für Rückmeldungen, hier sendet Tasmota Zustände, wenn diese sich aus einem vorangegangenen Befehl ergeben - aber Achtung, Befehl ist hier allgemein gemeint, es spielt also keine Rolle, ob der Befehl über das Webfrontend, die http API, die Command-Schnittstelle, eine Tasmota Rule oder eben mqtt empfangen wurde (und es gäbe noch weitere Möglichkeiten, einen Befehl zu senden, wenn das Gerät entsprechend konfiguriert ist). tele schließlich gibt Daten aus, die zyklisch gesendet werden, wobei das nicht die einzigen Daten sind, die über tele ausgegeben werden, Sensoren werden z.B. grundsätzlich ebenfalls über tele gesendet, selbst wenn diese nicht zyklisch senden (z.B. Infrarotempfänger).
Man kann ohne Prefix arbeiten, dann geht aber Funktionalität verloren, entsprechend sollte %prefix% als Teilstring immer im FullTopic vorkommen. Wo man es einsetzt, ist aber einem selbst überlassen. Ich habe z.B. bei mir die Reihenfolge umgedreht, also %topic%/%prefix%/, so dass alle Topics pro Gerät eine gemeinsame Wurzel haben (mit der Standardvariante gibt es drei Wurzeln unter denen alle Tasmotageräte zu finden sind)
Die Topic-Variable ist ebenfalls wichtig. Über %topic% wird der Inhalt des Topic-Felds eingesetzt (das ist ja das Feld direkt über dem FullTopic).
Nun könnte man auf die Idee kommen, einfach den fixen Teil mit ins FullTopic zu schreiben. Da kommen jetzt aber ein paar fortgeschrittene Funktionen von Tasmota zum tragen.
Und zwar gibt es im Hintergrund weitere Topics, welche man nur per API kontrollieren kann. Es gibt z.B. das Group Topic.
Man kann z.B. alle Tasmota Geräte per cmnd/GroupTopic/Upgrade 1 anweisen, sofort die Firmware über die hinterlegte URL abzurufen und zu flashen.
Naturgemäß existiert das GroupTopic ausschließlich im cmnd-Zweig, die Antwort auf einen Befehl kommt dann über das individuelle Topic.
Man kann in jedem Tasmota Gerät mehrere (4?) Group Topics definieren, man könnte also mit einem einzelnen Befehl alle per Tasmota gesteuerten Rollläden öffnen oder schließen oder alle Lampen zentral ausschalten, statt dies individuell per Gerät zu erledigen.
Man kann jedes Tasmota Gerät auch einzeln über ein spezielles Fallback Topic ansprechen, welches immer die letzten sechs Stellen der MAC enthält.
Wie der Name schon verrät, sollte man dieses Topic nur verwenden, wenn das Gerät über mqtt anders nicht (mehr) gesteuert werden kann.
Über das Fallback Topic kann man immer das individuelle Gerät erreichen, egal, was im Topic oder FullTopic eingetragen ist. Man kann also (so das Gerät grundsätzlich über mqtt überhaupt erreichbar ist - WLAN und mqtt geht) darüber das Topic individuell setzen und so das Gerät normal ansprechbar machen. Aber das geht nur, wenn im FullTopic auch die %topic% Variable verwendet wird.
Das FullTopic sollte innerhalb eines Systems (alle Tasmota Geräte im eigenen mqtt Server) identisch gesetzt sein.
Jedes Tasmota Gerät wird beim Einschalten unter dem Topic tasmota/discovery/%12X/ gelistet, mit allen Daten, die notwendig sind um das Gerät individuell anzusprechen (allerdings ohne Information zum Fallback Topic, das ergibt sich aus %06X, was ja Teil von %12X ist)
Sobald mehr als ein Tasmota Gerät vorhanden ist, fällt dem FullTopic eine wichtige Rolle zu. Man sollte hier also immer korrekt konfigurieren.
Mögliche Varianten eines FullTopic: %prefix%/%topic%/, %topic%/%prefix%/, alleTasmotas/%prefix%/%topic%/.
Die Liste ist nicht vollständig, der Punkt ist, man könnte über das FullTopix dafür sorgen, dass alle Tasmota Geräte eine gemeinsame Wurzel im mqtt Baum bekommen, so dass sie dort nicht so viel Platz einnehmen (ich habe hier über 30 Geräte mit Tasmota Firmware und noch diverse andere Anbindungen über mqtt, da ist so eine Strukturierung ganz praktisch). Wichtig ist aber, dass sowohl %prefix% als auch %topic% vorkommen, damit die volle Funktionalität von Tasmota erhalten bleibt.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
Nach den ganzen Diskussionen mit euch und den vielen Hinweisen ist mir klar woher mein Fehler kommt.
Ich habe beim ausprobieren ein Update gemacht welches vieles verändert hat.
Nachdem ich den Fehler bemerkt hatte habe ich ein Downgrade gemacht.
Und da dies mein erstes MQTT Projekt war habe ich nun auch vieles gelernt!
Ich habe mich immer gewundert wo dieses Tele herkommt , nun ja jetzt weiß ich es!
Trotzdem vielen Dank an dich und den Rest!!!!!