Grundsätzlich gibt es verschiedene Optionen, die Aufgabe umzusetzen.
Die "einfachste" Variante: Sorge dafür, dass jedes Update des Items per mqtt weitergeleitet wird. Dazu legst Du lediglich in einem Generic mqtt Thing einen passenden Channel an, der den Wert an das gewünschte Topic sendet. Anschließend verlinkst Du diesen Channel mit dem gewünschten Item, wobei Du im Link das Profile "Follow" wählst.
Vorteil: simpel
Nachteil: evtl. bekommst Du unnötig viele Updates; evtl. wird zu viel weitergeleitet (ein QuantityType Item enthält die Einheit, die sollte vermutlich im mqtt Payload nicht enthalten sein, das kann schief gehen) Aber evtl. funktioniert es direkt und ohne weiteres Zutun...
Eine weitere Option: Du legst ein eigenes mqtt-Sende-Item an und definierst eine Rule. Die rule wird bei "zu sendendes Item changed" getriggert, extrahiert den aktuellen Status und sendet ihn aktiv an das mqtt Item, welches die Payload auf dem gewählten Topic publizierrt.
Vorteil: sollte immer funktionieren, senden nur wenn nötig, man kann evtl. störende Informationen (Einheiten...) direkt ohne Umwege wegfiltern.
Nachteil: je Wert eine Rule plus ein Item extra, oder zusätzlicher Aufwand, um die Rule zu generalisieren, so dass sie mit mehreren Itempaaren zusammenarbeiten kann.
Dritte Option: Du legst eine Rule an, welche auf Wertänderungen einer Gruppe von Items reagiert. In der Gruppe sind alle Items zusammengefasst, die Du versenden willst.
Die Rule wertet aus, welches Item die Rule getriggert hat und wählst darauf beruhend das passende Topic zum Versand aus. Anschließend bestimmt die Rule den zu versendenden Wert und versendet ihn direkt, ohne Umweg über ein Item bzw. einen mqtt Channel.
Vorteil: sehr schlank, Du brauchst lediglich das Group Item (und selbst das könnte man weg lassen, nur bringt die Gruppe Vorteile beim Schreiben der passenden Rule...). Du brauchst weder zusätzliche Items noch zusätzliche mqtt things/channel, da der Versand direkt aus der Rule heraus per mqtt Action geschieht.
Nachteil: Die Rule ist evtl. etwas aufwändiger.
Je nachdem, wie die Randbedingungen sind, kann dennoch die dritte Option die schlanke Variante sein (zumindest wenn es mehr als nur ein Wert sein soll)
Der Code aus dem Posting wäre in einer Rule zu platzieren, welche dann jeweils bei einem changed Ereignis getriggert wird, ohne weiteres Drumherum wäre das also Option 2 - von der ich eher abraten möchte - entweder richtig oder gar nicht...

openHAB5.0.3 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox 9.1.2 - AMD Ryzen 5 3600 6 Kerne, 12 Threads - 64 GByte RAM - ZFS Pools: Raid Z1, 3 x 20 TB HDD -> 40 TByte und Raid Z0-Mirrored 4 x 1 TByte NVMe -> 2 TByte