Na ja, die Frage wäre wohl eher, ob es überhaupt sinnvoll ist, den Sollwert zu verstellen, oder ob es nicht einfacher ist, direkt die Sollwertverschiebung zu nutzen. Die größte Herausforderung dabei wäre, es so zu drehen, dass Du trotzdem nur ein Widget zur Darstellung brauchst.
Die einfache Variante wäre, Die Anzeige getrennt über ein zweites Widget zu realisieren, das heißt, Du zeigst den Sollwert an, aber ohne Setpoint.
Zusätzlich legst Du Setpoint Widget an, welches im Wertebereich -128 bis +127 funktioniert (natürlich kann man den Wertebereich auch weiter eingrenzen

)
Damit hättest Du auch die Verstellung über Setpoint, aber keine Abweichung mehr. Nachteil ist halt, dass Du zwei Items brauchst.
Die andere Möglichkeit wäre, die Temperaturänderung jeweils über eine Rule auszuführen, die dann die Sollwertverschiebung berücksichtigt. dazu muss das angezeigte Widget unbound sein, also keine Verlinkung zum knx Channel haben. Du brauchst also insgesamt drei Items, eines für Sollwert, eines für Sollwertverschiebung und eines für die Darstellung und Entgegennahme von Befehlen.
Den Status des Items setzt Du über eine Rule, die triggert, wenn sich der Sollwert geändert hat. Der wert wird einfach übernommen.
Wenn des unbound Item aber einen Befehl erhält (der kommt dann von der UI), triggert eine zweite Rule, die zunächst die Sollwertverschiebung von der gesetzten Temperatur abzieht. (natürlich nur die Hälfte, weil die Sollwertverschiebung ja jeweils nur ein halbes Grad ausmacht)
Allerdings ist hier natürlich die Frage, was passiert, wenn Du die Temperatur z.B. am Wandtaster immer wieder absenkst, während Du die Temperatur in der UI immer wieder erhöhst. Irgendwann erreichst Du dann den oberen Grenzwert der Sollwert-Verschiebung.
Vielleicht wäre es also sinnvoller, in einem ersten Schritt den Sollwert zu setzen und über die Rule einfach die Sollwertverschiebung auf 0 zu setzen.
Wichtig zu klären wäre hier aber, ob es ungewünschte Seiteneffekte gibt (z.B. automatischer Programmwechsel im RTR, Reduzierung der Lebensdauer (weil z.B. der Sollwert im EPROM gespeichert wird, während das für die Sollwertverschiebung nicht gilt) - bei manchen RTR kann man das Verhalten für Speichern auch umstellen, genau aus dem Grund...
openHAB5.1.3 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox VE 9.1.9 - 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