Wait for executing a rule

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.