LibreTasker is an event-based task performer, similar to Tasker.
This means that you can trigger Actions when events (filtered on input) occur, taking into consideration current state.
Supported events (and their conditions):
- Network:
- Type: Wifi / Cellular / VPN
- State: Connected / Disconnected
- SSIDs: List of SSIDs when Type is Wifi
- DateTime (Similar to cron):
- Month: List of ints
- DOM: List of ints (Day of Month, 1-31)
- DOW: List of ints (Day of Week, 1-7)
- Hour: List of ints (00-24)
- Minute: List of ints (00-59)
- InvertHour: boolean (whether to invert the match on the 'Hour' field)
- InvertMinute: boolean (whether to invert the match on the 'Minute' field)
- Screen:
- OFF: boolean (whether to trigger on ON or OFF )
- SMS:
- BodyRegex (String, Regex)
- NameRegex (String, Regex)
- Sender (String, matching Phone number exactly)
- PhoneCall:
- Name (String)
- Number (String)
- State (String) { RINGING, IDLE }
There's an special event called 'State'. State takes a Key (String) and Value (Object). This gets triggered automatically when an Action with type 'State' changes its value.
Supported Actions (and their parameters):
- Toast:
- Notification:
- , with 2 Pairs: Title and Value, both must be non-null.
- Beep:
- None (Plays the default notification ringtone)
- Volume:
- Stream (Ring, Alarm, Music, Notification, System), Volume in %
- State:
- , set a state key to a value. Will trigger the 'State' special event if the value changed.
- Media key:
- String (key) { KEYCODE_MEDIA_PREVIOUS, KEYCODE_MEDIA_NEXT, KEYCODE_MEDIA_PAUSE, KEYCODE_MEDIA_PLAY, KEYCODE_MEDIA_PLAY_PAUSE, KEYCODE_MEDIA_STOP }
For example you could do something like:
- At 22:59 => Set Ringtone volume to 0%
- At 7:59 => Set Ringtone volume to 100%
or achieve the same thing with states:
- Between 22:59 and 7:59 => Set state 'sleepy' to true
- On 'sleepy' change to true => Set volume to 0%
- On 'sleepy' change to false => Set volume to 100%
If you don't want to be disturbed (except by someone in particular):
- (Manually) Mute your phone
- On PhoneCall with { Name : .. } or { Number:.. } with State == 'RINGING' -> Volume (Ringtone) to 100%
- On PhoneCall with { Name : .. } or { Number:.. } with State == 'IDLE' -> Volume (Ringtone) to 0%
- On SMS with { NameRegex : .. } or { Sender:.. } -> Volume (Notification) to 100%, Beep, Volume (Notification) to 0%