[SOLVED] Getting timer remaining time

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.

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?