Mine uses Pebble and Tasker (with AutoPebble to mediate between the two). It works like this (there's no easy way to export something that's not an XML dump full of bloat, so I'll just describe it):<p><pre><code> - Profile: every 13 minutes
between 08:00 and 23:00
- Launch task: Request time log
- Profile: on command from AutoPebble
- Launch task: Log time
- Task: Request time log
- Show a screen on Pebble via AutoPebble
- Type: List
- Contents: %OPTIONS
- Vibration pattern: 300, 200, 300
- Task: Log time
- Save "%DATE, %RESPONSE" into a CSV file.
- Variable: %OPTIONS
- hn, work, eating, foodprep, hobbyproj, ...
</code></pre>
Running a tool like this on smartwatch is a win, because it's minimally distracting, and easy to use for everything I do daily. As said elsewhere, I picked 13 minutes to have something below 15 minutes that won't accidentally overlap with periodic tasks or generate regular patterns on the clock. I used to have a bit of randomization in there (skip Request time log if random%2 == 0), but it turned out to be more annoying than useful, as it would frequently miss an hour worth of data.<p>I made it one afternoon in a grand total of ~30 minutes (including debugging and testing). It requires no Internet connection, doesn't spy on me, I can use it anywhere I am as long as I have my phone in my pocket, I get to own my data in a machine-readable format, which I can trivially send out to my desktop for processing later. Overall, it's a win, and just an example of Tasker being amazingly useful tool in general.<p>EDIT:<p>Some extra use notes:<p>- The logged time is the time I selected an option on my smartwatch, so if I delay or miss a time log request, nothing bad happens. I don't expect my CSV to have perfectly regular entries.<p>- If I don't select an option in 13 minutes, the prompt will be overwritten by new one; again, nothing bad happens.<p>- To add, change or remove options, I simply edit the %OPTIONS variable on my phone.<p>- In the rare case when I select a wrong option, I pull up my phone and use nano in Termux session to quickly edit the CSV directly.