Beeminder Forum

Feature request: Tasker variables in Beeminder datapoints

Since I’m unable to use TagTime with Beeminder, I’ve been trying to reproduce its functionality using Tasker. Unfortunately, Beeminder’s integration with Tasker doesn’t allow me to submit a Tasker variable’s value as a data point.

Could this ability be added to the integration?

2 Likes

+1

Are you perhaps able to get the information directing into the join app then into IFTTT via webhook and then into Beeminder and use the IFTTT Macros perhaps?
Any chance you can post your tasker profiles here? Would love to potentially use it in the future myself.

1 Like

Hmm… interesting approach…

Here’s what I have in the profile so far. It’s very much a work in progress.

Profile: Checks (39)
Restore: no
Time: From  7:00AM every 2m Till  6:00PM
Enter: Anon (40)
A1: Beep [ Frequency:8000 Duration:1000 Amplitude:50 Stream:3 ]
A2: Variable Set [ Name:%day_start To:7 Recurse Variables:Off Do Maths:Off Append:Off Max Rounding Digits:3 ]
A3: Variable Set [ Name:%day_end To:18 Recurse Variables:Off Do Maths:Off Append:Off Max Rounding Digits:3 ]
A4: Variable Set [ Name:%day_hours To:%day_end - %day_start Recurse Variables:Off Do Maths:On Append:Off Max Rounding Digits:3 ]
A5: Variable Set [ Name:%day_minutes To:60 * %day_hours Recurse Variables:Off Do Maths:On Append:Off Max Rounding Digits:3 ]
A6: Variable Set [ Name:%target_interval To:10 Recurse Variables:Off Do Maths:Off Append:Off Max Rounding Digits:3 ]
A7: Variable Set [ Name:%opportunity_interval To:2 Recurse Variables:Off Do Maths:Off Append:Off Max Rounding Digits:3 ]
A8: Variable Set [ Name:%target_count To:%day_minutes / %target_interval Recurse Variables:Off Do Maths:On Append:Off Max Rounding Digits:3 ]
A9: Variable Set [ Name:%opportunity_count To:%day_minutes / %opportunity_interval Recurse Variables:Off Do Maths:On Append:Off Max Rounding Digits:3 ]
A10: Variable Set [ Name:%threshold To:%target_count / %opportunity_count * 100 Recurse Variables:Off Do Maths:On Append:Off Max Rounding Digits:3 ]
A11: Variable Randomize [ Name:%rand Min:0 Max:100 ]
A12: Popup [ Title: Text:Target count: %target_count
Opportunity count: %opportunity_count
Condition: %rand < %threshold Background Image: Layout:Popup Timeout (Seconds):5 Show Over Keyguard:On ]
A13: If [ %rand < %threshold ]
A14: Say [ Text:Are you working? Engine:Voice:default:default Stream:3 Pitch:5 Speed:5 Respect Audio Focus:On Network:Off Continue Task Immediately:Off ]
A15: Menu [ Title:Are you working? Background Image: Layout:IconAndTextMenu Timeout (Seconds):300 Show Over Keyguard:On Items:(2) ]
A16: End If

Just figured out how to get around the limitation with Beeminder’s integration! Put simply, don’t use Beeminder’s integration at all. Use the HTTP Request action to post to Beeminder’s API directly instead:

Note that I’m using two custom global variables, %BmUser and %BmToken, to store my username and API token. You’ll need to look up your API token and store it and your username in a couple of variables you create if you want to take the same approach.

%TIMES is a standard variable that Tasker defines as the current time in seconds since January, 1970, which happens to be what Beeminder expects in a datapoint’s timestamp field.

Using this approach you can send any Tasker variable you like to your Beeminder goal as the value for a new datapoint.

3 Likes