# \[SOLVED\] Getting timer remaining time

**URL:** <https://community.openhab.org/t/solved-getting-timer-remaining-time/87501>\
**Category:** Scripts & Rules\
**Created:** [December 12, 2019, 9:59pm UTC](https://community.openhab.org/t/solved-getting-timer-remaining-time/87501 "2019-12-12T21:59:41Z")\
**Posts on this page:** 1\
**Showing post:** 7

<div class="post-metadata">

**Author:** ![michalp](https://community.openhab.org/letter_avatar_proxy/v4/letter/m/47e85d/32.png) [@michalp](https://community.openhab.org/u/michalp)\
**Post date:** [January 22, 2020, 2:34pm UTC](https://community.openhab.org/t/solved-getting-timer-remaining-time/87501/7 "2020-01-22T14:34:58Z")

</div>

Hi,

I try to implement this Countdown Timer. Generaly it works, but I don’t know how to cancel it if the switch goes OFF before time expires.

```csv
import time
import personal.countdown_timer
reload (personal.countdown_timer)
from personal.countdown_timer import CountdownTimer
from core.log import log_traceback, logging, LOG_PREFIX
from datetime import datetime, timedelta
log = logging.getLogger("{}.TEST.countdown_timer".format(LOG_PREFIX))

from core.rules import rule
from core.triggers import when

func_called = False

def test():
    global func_called
    func_called = True

number = "alarmTime" // number Item for countdown
delay_item = "alarmDelay" // switch Item for starting countdown

@rule("Countdown timer", description="Start countdown for getting out")
@when("Item alarmDelay received update")
def countdown_timer(event):
    if((items[delay_item]) == ON):
        timer = CountdownTimer(log, (datetime.now() + timedelta(seconds=10)), test, number)
        time.sleep(0.1)

# elif((items[delay_item]) == OFF):
# log.info("Cancel...")
# timer.cancel()
 

```

If I try to do else or elif timer.cancel, I got local variable ‘timer’ referenced before assignment error. As I am total noob in python, could you please show me some example how it should be implemented?

---

_[View the full topic](https://community.openhab.org/t/solved-getting-timer-remaining-time/87501)._
