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:
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.
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.
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 ]