Tasker – timers, how to do this correctly.

Yes, there is a Wait and Wait Until action available already, and you can get away using this for a while. Unlike before, these actions are no longer as CPU intensive as it’s used to be.  I will show you how to set up Tasker timers correctly. This way, you will be sure, that you take the most battery efficient approach possible. Interested? Read on!

If you have any issues with timer context not working for you please read this post.

Tasker timers, theory…

I write this as I was asked about how to terminate the incognito chrome browsing on a mobile when the phone is no longer in use. Potentially, the person interested didn’t want to disclose their browsing habits. I get the lock screen arguments, but having such thing on is not always desired for many reasons. Motives apart I will use this, and turn off wifi if not connected to show you how to deal with timers correctly.

The idea is simple. I don’t want to start a timer. This may seem counter-intuitive at first but bear with me. The lowest CPU, and therefore battery condition are time-based. Your mobile is running a UNIX timer anyway, and we can hook up to it. Instead of telling Tasker to start counting till 300 (5min = 5 x 60sec=300)and perform an action, we can schedule an action to happen at the time which is 300sec away. This works as some sort of timer, can be easily cancelled (unlike wait), changed or updated.

Tasker timers, practice…

These 2 profiles will show you how to deal with a tasker timer, how easy is to cancel it or update it. We will use AutoNotification (optional for timer routine alone) to give us short notification of what’s happening and intercept the incognito session in the 2nd profile. In 2 profiles I can contain all it takes to cancel, update or reschedule the timer. It is simple, and CPU efficient.

WI-FI OFF after 5 min if not connected

If you are not interested in any notifications for this profile the project looks very simple:




Turn Off wifiSet The Timer
Profile: Turn Off wifi 
Time: From %WifiTimer Till %WifiTimer
Enter: Turn Off Wifi 
	A1: WiFi [ Set:Off ]
	A2: Variable Clear [ Name:%WifiTimer Pattern Matching:Off ]
Profile: Set The Timer 
State: Not Wifi Connected [ SSID:* MAC:* IP:* ]
Enter: Not Connected To Wifi
	A1: Variable Set [ Name:%WifiTimer To:℅TIMES+300 Do Maths:On Append:Off ]

Exit: Connected To Wifi
	A1: Variable Clear [ Name:%WifiTimer Pattern Matching:Off ]

If you wish to have timer giving you notifications, few additional steps are needed to create and discard the notifications as required.

Turn Off wifiSet The Timer
Profile: Turn Off wifi
Time: From %WifiTimer Till %WifiTimer
Enter: Turn Off Wifi (41)
	A1: WiFi [ Set:Off ]
	A2: Variable Clear [ Name:%WifiTimer Pattern Matching:Off ]
	A3: AutoNotification Cancel [ Configuration:Id: 11
		Cancel All: false Timeout (Seconds):0 ]
Profile: Set The Timer
State: Not Wifi Connected [ SSID:* MAC:* IP:* ]
State: Variable Value [ %WIFI ~ on ]
Enter: Not Connected To Wifi (43)
	A1: Variable Set [ Name:%WifiTimer To:%TIMES+300 Do Maths:On Append:Off ]
	A2: Variable Convert [ Name:%WifiTimer Function:
            Seconds to Date Time Store Result In:%wifitermination ]
	A3: AutoNotification [ Configuration:Use HTML: false
	Title: WIFI will turn off shortly
	Text: I will turn off at %wifitermination
	Icon: android.resource://net.dinglisch.android.taskerm/hl_device_access_network_wifi
	Status Bar Icon: alerts_and_states_error
	Status Bar Text Size: 16
	Id: 11
	Is Group Summary: false
	Title Expanded: WIFI will turn off shortly
	Skip Picture Cache: false
	Text Expanded: I will turn off at%wifitermination
	Update Notification: false
	Only on Phone: false Timeout (Seconds):20 ]

Exit: Connected To Wifi (44)
	A1: Variable Clear [ Name:%WifiTimer Pattern Matching:Off ]
	A2: AutoNotification Cancel [ Configuration:Id: 11
	Cancel All: false Timeout (Seconds):0 ]

Close Chrome Incognito after 5 min if

Closing the chrome can be done in a similar manner. Root and AutoNotification are required for this to work correctly. We are going to kill the chrome app, as only incognito browsing sessions will perish, our other chrome tabs will load on next chrome launch. AutoNotification will be used to look for an incognito notification in one of our contexts, to make sure the chrome is only killed when incognito tabs are opened. There is no need for notifications really as profile will only work when the screen is off.




Set Chrome TimerClose Chrome
Profile: Set Chrome Timer
State: Display State [ Is:Off ]
State: AutoNotification Intercept [ Configuration:Event Behaviour: false
Persistency Type: Persistent Only
Has Reply Action: false
Notification Title: Chrome
Notification Text: Close all incognito tabs
Get All Fields : false
Get Internal Actions: false
Get Internal Actions Big: false ]
Enter: Set Chrome Timer
	A1: Variable Set [ Name:%ChromeTimer To:%TIMES+300 Do Maths:On Append:Off ]

Exit: Cancel Termination
	A1: Variable Clear [ Name:%ChromeTimer Pattern Matching:Off ]
Profile: Close Chrome
Time: From %ChromeTimer Till %ChromeTimer
Enter: Terminate Incognito
	A1: Run Shell [ Command:am force-stop com.android.chrome 
            Timeout (Seconds):0 Use Root:On 
            Store Output In: Store Errors In: Store Result In: ]
	A2: Variable Clear [ Name:%ChromeTimer Pattern Matching:Off ]
SHARE