Are you just setting the time on the timer or are you changing its start time?
Here is an example that sets the timer such that reset will restore it to whichever start time I most recently specified:
<abs contexttype="opengear" style="">
<meta>
<params>
<param access="1" maxlength="0" name="cddisplay" oid="cddisplay" type="STRING" value="39:58" widget="label"/>
<param access="1" maxlength="0" name="cdvalue" oid="cdvalue" type="STRING" value="40:00" widget="text"/>
</params>
</meta>
<timer autostart="false" id="cdtimer" pattern="mm:ss" rate="500" start="999:59" stop="00:00">
<timertask tasktype="ogparamset">params.setValue('cddisplay', 0, event.getDisplay());</timertask>
</timer>
<param expand="true" height="60" left="40" oid="cddisplay" style="style:timerLabel" top="40" width="120"/>
<param expand="true" height="60" left="40" oid="cdvalue" top="120" width="120"/>
<button buttontype="push" height="60" left="180" name="Start / Pause" top="40" width="120">
<task tasktype="ogscript">var timer = ogscript.getTimerManager().getTimer("cdtimer");
if (!timer.isRunning())
{
timer.startTimer(false);
}
else
{
timer.stopTimer(false);
}</task>
</button>
<button buttontype="push" height="60" left="180" name="Set Countdown" top="120" width="120">
<task tasktype="timercontrol">var startValue = params.getValue('cdvalue', 0);
var timer = ogscript.getTimerManager().getTimer('cdtimer');
var parsedStartValue = timer.getFormat().parseObject(startValue);
timer.setStart(parsedStartValue);
timer.setTime(parsedStartValue);</task>
</button>
<button buttontype="push" height="140" left="320" name="Reset" top="40" width="80">
<task tasktype="ogscript">var timer = ogscript.getTimerManager().getTimer('cdtimer');
timer.resetTimer();</task>
</button>
</abs>
#DashBoard