Background.requestApplicationWake() dosen't work in the morning

I made a simple background app to wake me up in the morning and remind me when I sit too long time. I use Background.registerForTemporalEvent(time); to set a every 5 min background sever, and check my step count and activity record to determind whether to remind me to move.

Until now ,all work well except that the Background.requestApplicationWake didn't work in the morning. I have turn off the Not to Disturb mode, but it don't work until I do something on the watch, like push a botton.  It due to remind me every 5min after 6:40, but it don't , and when I push a botton, it immediatly push the alret. It seem like when I was sleep the alert won't work until I do something to indicate that I have wake up. I am so frustrate because I want the background service to wake me up, not me to wake it up.

The reason that I don't just use a alarm is that I will dismiss the Alarm unconsciously and continue to sleep, I need the watch to alert me every 5 min until I really wake up, like take several step or do some activity.

This is the temporal event code:

   public function initialize() {
        ServiceDelegate.initialize();
    }
    var minu as Lang.Number=0;

    public function onTemporalEvent() as Void {
        var timenow=Gregorian.info(Time.now(), Time.FORMAT_MEDIUM);
        var actt=ActivityMonitor.getInfo();
        var nowstep=actt.steps;
        var nowmb=actt.moveBarLevel;
        minu=timenow.min/5;
        var stepadd=0;
        var recentact=0;
        recentact=Storage.getValue("RECENTACTT");
        var actifo=Activity.getActivityInfo();
        if(actifo.timerState==3){
            recentact=0;
        }
        else{
            recentact=recentact+1;
        }
        Storage.setValue("RECENTACTT", recentact);
        var steprec =new Array<Number>[13];
       
        steprec=Storage.getValue("STEPRECORD");
        stepadd=nowstep-steprec[(minu>8)?(minu-9):(minu+3)];
        steprec[minu]=nowstep;
        Storage.setValue("STEPRECORD", steprec);
        if((timenow.hour==6&&timenow.min>30)||((timenow.hour>6)&&(timenow.hour<12))||((timenow.hour>13)&&(timenow.hour<21))){
           
            if(nowmb>0||(stepadd<100&&recentact>9))
            {
                var timerString = "step"+stepadd+"recent"+recentact;
                Background.requestApplicationWake(timerString);

            }
           
        }
        Background.exit(true);
    }

Did anyone have an idea how I can made it alert me before I wake up?  Thanks a lot!