This requires you using a “Virtual item”. The UI changes the virtual item, and your rule does the timer thingy like @rossko57 described.
Code in jruby is very straight forward as it has a feature to handle exactly this type of scenario. Just one line rule is needed.
require 'openhab'
changed(Virtual_SetPoint, for: 3.seconds) { Real_SetPoint << Virtual_SetPoint }
Or it can be written in a longer more traditional format:
require 'openhab'
rule 'delay setpoint' do
changed Virtual_SetPoint, for: 3.seconds
run { Real_SetPoint << Virtual_SetPoint }
end
It won’t execute the “run” block until Virtual_SetPoint remains the same value for 3 seconds.