vault backup: 2025-11-22 08:14:07
This commit is contained in:
157
Personal/Areas/Tasker/README.md
Normal file
157
Personal/Areas/Tasker/README.md
Normal file
@@ -0,0 +1,157 @@
|
||||
---
|
||||
created: 2025-11-11 16:30
|
||||
updated: 2025-11-11 16:30
|
||||
---
|
||||
# Tasker Routine Reminders Project
|
||||
|
||||
Standardized Tasker automation project for daily routine reminders with notification buttons that trigger actions.
|
||||
|
||||
## Project: Routine_Reminders.prj.xml
|
||||
|
||||
### Naming Conventions
|
||||
|
||||
**Commands** (used in AutoNotification buttons/filters):
|
||||
- Format: `cmd_<action>_<target>`
|
||||
- Examples: `cmd_open_skincare_note`, `cmd_mark_skincare_done`
|
||||
|
||||
**Notification IDs**:
|
||||
- Format: `notif_<routine>_<time>`
|
||||
- Examples: `notif_skincare_morning`, `notif_exercise_prep`
|
||||
|
||||
**Profiles**:
|
||||
- Time triggers: `Trigger <Routine> Notification`
|
||||
- Event listeners: `Event: <Action> <Target>`
|
||||
|
||||
**Tasks**:
|
||||
- Notification display: `Show <Routine> Notification`
|
||||
- Actions: `<Action> <Target>` (e.g., `Open Skincare Note`, `Mark Exercise Done`)
|
||||
|
||||
### Project Structure
|
||||
|
||||
#### Time-Based Triggers (show notifications at specific times)
|
||||
- `Trigger Skincare Notification` → 7:30 AM → Shows skincare reminder
|
||||
- `Trigger Exercise Notification` → 11:30 AM → Shows exercise reminder
|
||||
|
||||
#### Event Listeners (respond to notification button taps)
|
||||
- `Event: Mark Skincare Done` → Listens for `cmd_mark_skincare_done` → Marks habit complete + dismisses notification
|
||||
- `Event: Mark Exercise Done` → Listens for `cmd_mark_exercise_done` → Dismisses notification
|
||||
- `Event: Open Skincare Note` → Listens for `cmd_open_skincare_done` → Opens Obsidian note
|
||||
- `Event: Open Exercise Note` → Listens for `cmd_open_exercise_note` → Opens Obsidian note
|
||||
|
||||
#### Notification Tasks (display the actual notifications)
|
||||
- `Show Skincare Notification` → Creates notification with buttons:
|
||||
- Button 1: "Open Note" → Sends `cmd_open_skincare_note`
|
||||
- Button 2: "Mark Done" → Sends `cmd_mark_skincare_done`
|
||||
- `Show Exercise Notification` → Creates notification with buttons:
|
||||
- Button 1: "Open Note" → Sends `cmd_open_exercise_note`
|
||||
- Button 2: "Mark Done" → Sends `cmd_mark_exercise_done`
|
||||
|
||||
#### Action Tasks (perform actual actions)
|
||||
- `Open Skincare Note` → Opens `Personal/Projects/Skincare/Skincare Morning` in Obsidian
|
||||
- `Open Exercise Note` → Opens exercise note in Obsidian
|
||||
- `Open Diet Note` → Opens diet note in Obsidian
|
||||
- `Mark Skincare Done` → Checks off habit in Loop Habit Tracker + dismisses notification
|
||||
- `Mark Exercise Done` → Dismisses notification
|
||||
|
||||
### How It Works
|
||||
|
||||
1. **At trigger time** (e.g., 7:30 AM):
|
||||
- Profile `Trigger Skincare Notification` activates
|
||||
- Runs task `Show Skincare Notification`
|
||||
- Notification appears with two buttons
|
||||
|
||||
2. **When button is tapped**:
|
||||
- AutoNotification sends command (e.g., `cmd_open_skincare_note`)
|
||||
- Event profile listens for that command (e.g., `Event: Open Skincare Note`)
|
||||
- Runs linked task (e.g., `Open Skincare Note`)
|
||||
- Opens Obsidian to the correct note
|
||||
|
||||
3. **When "Mark Done" is tapped**:
|
||||
- Sends `cmd_mark_skincare_done` command
|
||||
- `Event: Mark Skincare Done` profile catches it
|
||||
- Runs `Mark Skincare Done` task
|
||||
- Checks off habit in Loop Habit Tracker
|
||||
- Dismisses the notification
|
||||
|
||||
### Adding New Routines
|
||||
|
||||
To add a new routine (e.g., "Meditation"):
|
||||
|
||||
1. **Create time trigger profile**:
|
||||
- Name: `Trigger Meditation Notification`
|
||||
- Trigger: Time (e.g., 7:00 AM)
|
||||
- Task: `Show Meditation Notification`
|
||||
|
||||
2. **Create notification display task**:
|
||||
- Name: `Show Meditation Notification`
|
||||
- Action: AutoNotification
|
||||
- Notification ID: `notif_meditation_morning`
|
||||
- Button 1 command: `cmd_open_meditation_note`
|
||||
- Button 2 command: `cmd_mark_meditation_done`
|
||||
|
||||
3. **Create event listener profiles**:
|
||||
- `Event: Open Meditation Note` → Listens for `cmd_open_meditation_note`
|
||||
- `Event: Mark Meditation Done` → Listens for `cmd_mark_meditation_done`
|
||||
|
||||
4. **Create action tasks**:
|
||||
- `Open Meditation Note` → Opens Obsidian note
|
||||
- `Mark Meditation Done` → Marks habit complete + dismisses notification
|
||||
|
||||
### Dependencies
|
||||
|
||||
- **AutoNotification** (Joao Apps) - For creating interactive notifications and listening to button commands
|
||||
- **Loop Habit Tracker** - For checking off habits
|
||||
- **Obsidian** - For opening notes via obsidian:// URLs
|
||||
|
||||
### Files
|
||||
|
||||
- `Routine_Reminders.prj.xml` - Main project file (import into Tasker)
|
||||
- `Skincare_Demo_Standardized.prj.xml` - Original file before standardization
|
||||
- `standardize_tasker_v2.py` - Python script used for standardization
|
||||
|
||||
### Standardization Script
|
||||
|
||||
Run `standardize_tasker_v2.py` to:
|
||||
- Standardize all naming conventions
|
||||
- Link notification buttons to event profiles
|
||||
- Add missing event listeners
|
||||
- Remove trailing spaces and inconsistencies
|
||||
|
||||
```bash
|
||||
python3 standardize_tasker_v2.py
|
||||
```
|
||||
|
||||
### Import Instructions
|
||||
|
||||
1. Open Tasker
|
||||
2. Long-press Projects tab
|
||||
3. Select "Import Project"
|
||||
4. Navigate to `Routine_Reminders.prj.xml`
|
||||
5. Import
|
||||
6. Enable profiles
|
||||
|
||||
### Tips
|
||||
|
||||
- Use `cmd_` prefix for all AutoNotification commands (consistency + easy grep)
|
||||
- Use `notif_` prefix for all notification IDs (avoids conflicts)
|
||||
- Always create event listener profiles for button commands
|
||||
- Link event profiles to existing action tasks via `mid0` (task ID)
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
**Button doesn't do anything when tapped:**
|
||||
- Check that event profile exists for that command
|
||||
- Verify command name matches exactly (case-sensitive)
|
||||
- Check that event profile is enabled
|
||||
- Verify `mid0` in profile points to correct task ID
|
||||
|
||||
**Notification doesn't appear:**
|
||||
- Check time trigger is correct and profile is enabled
|
||||
- Verify notification display task is working (run manually)
|
||||
- Check AutoNotification permissions
|
||||
|
||||
**Wrong note opens:**
|
||||
- Check Obsidian URL in action task
|
||||
- Verify vault name and file path are correct
|
||||
- Test URL in browser first
|
||||
|
||||
Reference in New Issue
Block a user