There is an IFTTT autodata integration, which I could probably use to get the equivalent of what I’m asking for. But there is no intrinsic reason this should have to go through IFTTT.
I have a personal webserver, on which I can expose an API endpoint which returns a number. I’d like a way to have Beeminder set up to use that as an autodata source, much like, say, the IFTTT autodata source.
For now, I’m using the Beeminder API to send data to Beeminder, in a cron job. But there some goals where I’d really prefer the autodata model, which has a few advantages, mostly revolving around the fact that Beeminder is pulling the data, instead of me having to push it.
First and foremost among these advantages is that Beeminder has some very smart behavior around derailments on goals with autodata sources: if a derailment is about to happen, it first polls the autodata source to get the up-to-date data from that source, to verify the derailment.
For goals which are specific actions this is less useful, and I can just use the API. Every time I do X, I send a datapoint (or a script sends a datapoint for me.) I have several goals that work like this. But for “continuous” goals, anything which is the number of something that I have (the kind of thing you use a whittle down or odometer goal for, actually), this is a lot harder. You can kind of simulate it with a cron job that every hour sends the updated value to Beeminder, but that has several problems: for one, if you look at the Beeminder graph, you see data that is up to an hour old. For another, if the goal is about to derail and you accomplish enough to avoid the derailment within the last hour, the data won’t necessarily get to Beeminder in time.
(You could mostly avoid this by having the data be sent to Beeminder more frequently, such as every minute instead of every hour, but that would put Beeminder’s servers under a lot of load, and I wouldn’t want to do that. (Plus, I think there is a limit on the number of datapoints per day that Beeminder will store.))
So it would be very nice to have an autodata integration that allowed you to input a URL on your own domain of your choice (e.g.
https://my-domain.com/my-goal) which response to
GET requests with a number, and this would feed into a whittle down or odometer goal in the same way that any other autodata would work.
Again, in theory it’s possible I could set up IFTTT to do this. But that might actually be quite difficult (or impossible), because I don’t see a way to get IFTTT to pass through requests in order to always get an up to date result even in cases like the request that gets made right before a derailment. If someone does have a clever way to do this with IFTTT, I’d be interested to hear it.
But all the more I’d really like it if Beeminder supported this natively. It would enable so much when it comes to personal automation.