[SOLVED] formatBeforePublish JS not executed and passed as String

format is not transform.
String formatter expects format directives like
"%.2f" or
"fred %s"

I think what you need is something like
formatBeforePublish="{ \"current_heating_setpoint\":\"%s \" }"

Or for MQTT binding versions 2.5 you can use transform
transformationPatternOut="JS:setTempThermostat.js"

https://www.openhab.org/addons/bindings/mqtt.generic/#channel-configuration