can tasker diferenciate between state contexts and trigger contexts? - Tasker Tips & Tricks

Hi,
I'm new to tasker, i downloaded it like a week ago. So any help will be apreciated.
I want to know if it is possible to make some contexts to trigger a profile (trigger contexts), while others not (they must be true for the profile to get activated, but they must not trigger it (state contexts)).
For example, i want to try this:
- When waze is active and at certain locations (like my home), run and intent to cleanly exit waze.
This is intented so when i arrive at destination, waze gets closed automatically. The problem arises if i'm at home and then open waze to drive somewhere, then it gets closed immediatly. Therefore, i'd like that only the location context triggers the profile.
Is this even possible? I want to create other profiles and task under this premise too.
Regards

Make a profile that only activates on location.
Make a second, separate profile for Waze running.
Method 1:
1. Give a custom name to the Waze profile (necessary), e.g. "Waze is Running".
2. Set the Waze profile to run a dummy task like "wait 10 milliseconds".
3. In the first step of your location task, add a Task > Stop > if %PACTIVE doesn't match regex .*Waze is Running.*
4. After this first step, the location task has to stop Waze.
Alternatively, instead of adding a Task > Stop, you can put the "if condition" in the step that closes Waze. Just change it from "doesn't match regex" to "matches regex".
Method 2:
1. Waze profile sets a global variable like %Waze to yes or 1 when Waze is running (enter task)
2. Waze profile clears the global variable when Waze quits (exit task)
3. Location profile checks %Waze instead of checking %PACTIVE
%PACTIVE contains a list of all currently active profiles, but you can only check for those profiles to which you've given a custom name.

Ok, thanks. I had already started with method 2, the only thing i was missing was the third step.

I think this is a task for the state event "Variable Set". As soon as an variable has changed, the task will be executed once. There is no exit task.
Example:
1. Create profiles which set your location to a variable, e.g. %Location
2. New Profile with event "Variable Set" and the variable %Location
3. If %Location change, execute Task which checks if %Location is equal Home or not. If Home, kill Waze. If not, do nothing.
4. When you are at home and start Waze, it will not get killed because the variable %Location has not changed. Therefore the profile will not be triggered. Only when you left home the variable changes and the task will be executed. When you come back to your home, the task will be executed again.

Thanks!! , this is more consistent and more easily applied to others profiles given the way I handle my profiles and tasks.

Related

[Q] Tasker event trigger on SHARING?

Hello everyone,
I want an event to trigger such that whenever a text is shared from any app (context) by using the SHARE button , say Chrome browser or Opera mobile, a sound should PLAY (task). how do I achieve the event trigger?
Many thanks for helping.
The plugin AutoInput has a "UI Action" Event trigger, that you can configure to detect anything that is clicked on in the AI, then in the linked task you can check its "name" or "id" in the variable %aitext or %aiid,
However, to prevent the Event from triggering anytime you press anything all day long, you should add an "App" context to the Profile to constrain it to a list of particular apps (even if its 10 different ones etc) since you'll also need to figure out in those apps if the Share button(s) have a common/same name or ID, or if in the Task you're going to need to look for one of several values in those variables mentioned above.
Ratchet_Guy said:
The plugin AutoInput has a "UI Action" Event trigger, that you can configure to detect anything that is clicked on in the AI, then in the linked task you can check its "name" or "id" in the variable %aitext or %aiid,
However, to prevent the Event from triggering anytime you press anything all day long, you should add an "App" context to the Profile to constrain it to a list of particular apps (even if its 10 different ones etc) since you'll also need to figure out in those apps if the Share button(s) have a common/same name or ID, or if in the Task you're going to need to look for one of several values in those variables mentioned above.
Click to expand...
Click to collapse
Thank you for the reply.
I actuallly succeded doing the thing with Autoshare. [https://play.google.com/store/apps/details?id=com.joaomgcd.autoshare&hl=en]
1. Taker> Event> Plugin> Autoshare> Command=android.intent.action.SEND (rest all parameters default)
2. Taker> Task> Alert> Beep.
So, whenever I share any data, I automatically hear a beep!
Many thanks!

[Question] Best Practise to make a profile based on more than one variable state?

I would like to change my audio profiles based on different situations:
Audioprofile Normal
Normal audiosettings at daytime, when car is not connected and no meeting in calendar.
Audioprofile Night.
Silent audiosettings at nighttime, but only when I'm at home and car is not connected.
Audioprofile Car
Audioprofile in car when connected to bluetooth. Overwrites every other audioprofile.
Audioprofile Silent
Audioprofiles for meetings and special locations.
Every state has his own variable, like the daytime, the bluetooth connection, my location etc..
So I tought I could combine the variable states in a profile with "Variable Value" and the operator AND:
"[email protected]"
Variable Value
%Day=1
AND
%Meeting=1
AND
%Car=0
Enter Task=Audioprofile Silent
But I read this in the Tasker Wiki:
...
Warning: if you want to trigger on a variable and then take some action which sets the thing the variable represents you should use the Variable Set event instead. A Variable Value state will cause complications when the state exits and tries to restore the value again.
...
With "Variable Set" I can only query the value of one variable. That's not enough for my profiles.
How could I do this? Is the warning still valid?
JasMan78 said:
I would like to change my audio profiles based on different situations:
Audioprofile Normal
Normal audiosettings at daytime, when car is not connected and no meeting in calendar.
Audioprofile Night.
Silent audiosettings at nighttime, but only when I'm at home and car is not connected.
Audioprofile Car
Audioprofile in car when connected to bluetooth. Overwrites every other audioprofile.
Audioprofile Silent
Audioprofiles for meetings and special locations.
Every state has his own variable, like the daytime, the bluetooth connection, my location etc..
So I tought I could combine the variable states in a profile with "Variable Value" and the operator AND:
"[email protected]"
Variable Value
%Day=1
AND
%Meeting=1
AND
%Car=0
Enter Task=Audioprofile Silent
But I read this in the Tasker Wiki:
...
Warning: if you want to trigger on a variable and then take some action which sets the thing the variable represents you should use the Variable Set event instead. A Variable Value state will cause complications when the state exits and tries to restore the value again.
...
With "Variable Set" I can only query the value of one variable. That's not enough for my profiles.
How could I do this? Is the warning still valid?
Click to expand...
Click to collapse
What i would do create individual profiles based on time of day, power supply connection, wifi network connection, bluetooth device connection, etc. Each one of those trigger their own individual task which:
1. Sets a specific variable to "1".
2. Sets other settings specific to that profile (if needed).
3. Performs a separate task that change common settings all profiles share.
Then create exit tasks for each profile to:
1. Set specific variables to "0".
2. Set other settings specific to that profile no longer being active (if needed).
3. Performs that same separate task that changes common settings all profiles share.
The common task should be set up with a series of if/else statements for each condition you want. So if variables time of day and home wifi connected are "1", do this, else do nothing. if car Bluetooth connected set to "1", do this, else do nothing. Etc etc etc.
LeftyGR said:
What i would do create individual profiles based on time of day, power supply connection, wifi network connection, bluetooth device connection, etc. Each one of those trigger their own individual task which:
1. Sets a specific variable to "1".
2. Sets other settings specific to that profile (if needed).
3. Performs a separate task that change common settings all profiles share.
Then create exit tasks for each profile to:
1. Set specific variables to "0".
2. Set other settings specific to that profile no longer being active (if needed).
3. Performs that same separate task that changes common settings all profiles share.
The common task should be set up with a series of if/else statements for each condition you want. So if variables time of day and home wifi connected are "1", do this, else do nothing. if car Bluetooth connected set to "1", do this, else do nothing. Etc etc etc.
Click to expand...
Click to collapse
Thank you for your answer.
That could be a way to do it. I must think about it.
But is the warning still valid? I've a lot of profiles which base on variable states. I never have had any problems with them.
JasMan78 said:
Thank you for your answer.
That could be a way to do it. I must think about it.
But is the warning still valid? I've a lot of profiles which base on variable states. I never have had any problems with them.
Click to expand...
Click to collapse
I could be wrong, but I think it is saying not to trigger based on a variable. Meaning, a variable set to x causes y to happen. You can have a profile set a variable, but can get problems if a variable triggers a profile.
At least I think that's what it's saying...lol
That's exactly what I'm doing. A variable is set to 1, and a profile gets active because it checks the state "Variable Value" of this variable. This works fine for me, also the exit task as soon as the value is not longer 1.
The advantage of this method is, that I need only one profil which checks my location, appointments, bluetooth connection, etc.. The profile then sets the variable e.g. $Appointment to 1, and I can work with this variable in any other profile where I need to check if I've an appointment. If the name of the calendar change, I need only to change the name of the calendar in one profile.
And I can simply combine different variables to complex profiles.
Also, the wiki is old-ish, and not really all that up to date. So it is possible tasker has been updated to fix that issue since it was posted.
I found a good solution for me.
I've created a Tasker task, which checks the needed variables and executes the associated audio profile.
E.g. if %Day=1 then execute the task "Profil Normal", if %BluetoothConnected=Car then execute the task "Profil Car".
To execute the task I created Tasker profiles with the event "Variable Set" for every variable, which I query to choose the right audio profile. I left the value field emtpy, so everty time the variable changed the profile executes my task.
Now every time one of this variables changes, the task, which checks the values of the variables and calls the audio profile task, is executed.

[HELP] Task stuck in a loop performing action on app open

Hey everybody and thanks for taking the time to read this.
I'll explain my problem as clearly as possible:
I created a task with the purpose of opening an app (vpn hosts) and clicking on a button (with autoinput) when I launch twitch or YouTube.
What I was trying to accomplish is that whenever I open said apps my vpn app opens up, activates and then I would like the phone to go back to the original app.
Here comes the problem: I get stuck in a loop cause whenever I go back from vpn hosts to twitch (using autoinput) tasker detects that a profile condition is met and runs again the task.
Is there a way I can force tasker to run those tasks one time and one only?
Hopefully I explained my problem clearly enough to be understood, thanks in advance
Set a cool down period in the profile settings. This will prevent the profile from running again for your specified period.
Less clean, you could also set a variable in the enter task and disable the profile if the variable is set.
Else, use a condition of "not" the vpn app as a trigger condition in the profile.

Google maps next appointment

I created a task everytime I turn on m car. It will figure out if I have anything scheduled in the next hour. I next want it to automatically navigate there. Send intent almost works with action android.intent.action.VIEW and Data google.navigation:q= . I just don't see a way to use variables. I also have autoshare but have no idea how to use it and see no good videos on the subject.-Resolved I was referencing an array like a variable whoops

How to stop a profile from continuing to run

I created a profile that basically waits until I am outside of a Geofence location and is connected to my car BT. If both conditions are met, it will automatically close the garage door for me. I have another profile that does the opposite but opens the garage door when I am inside the Geofence location.
What I am wondering is that profile still shows as active even if the task runs and what I would like to do is stop the profile but since I am still connected to BlueTooth while driving, one of the conditions is still true so it still keeps the profile active. Is there a way to run the tasks one time then stop the profile?
steelersmb said:
I created a profile that basically waits until I am outside of a Geofence location and is connected to my car BT. If both conditions are met, it will automatically close the garage door for me. I have another profile that does the opposite but opens the garage door when I am inside the Geofence location.
What I am wondering is that profile still shows as active even if the task runs and what I would like to do is stop the profile but since I am still connected to BlueTooth while driving, one of the conditions is still true so it still keeps the profile active. Is there a way to run the tasks one time then stop the profile?
Click to expand...
Click to collapse
My answer to you may not be helpful ..................
I'm thinking to use Tasker build-in varilable " PROFILE ACTIVE ". This is %PACTIVE ( sort of like.
so that you may be able to puzzle around by adding an " if statement %PACTIVE > Profile name of your above either one > Matches "~" > "on".
Then, do something .......
hope other members has another quicker solution to your need.
Thank you very much., edmond
Thank you very much., edmond
Hello there!
simply add an action in your task to disable the profile once the task is executed. action Tasker-profile status-set profile name and disable,thats all.
You will have to set another task to enable the profile again if needed,like time context etc...

Categories

Resources