Pebble Pin Proxy

A data transformation proxy for the Pebble smartwatch

Pebble smartwatches have this neat feature called Timeline, which is sort of like an ever moving calendar you can push information (Pins) to.

Pinproxy is a free service I wrote and run that allows Pebble smartwatch users to connect IF-This-Then-That to their Pebble Timeline, enabling users to feed lots of sources of data into one collated notification list.

Pinproxy fills a functionality gap between IFTTT and Rebble, and performs basic data transformation too. Most of the logic runs on the server, accepting API calls from IFTTT and transforming them into valid API calls to Rebble Web Services.

There are two parts to the web tool. First is the configuration wizard, which makes setting up a new connecting in IFTTT easy:

Here the user input’s their timeline pin details. Rather than fixed text, the values will usually be IFTTT ‘ingredients’, which IFTTT will resolve to values before making the API call.

Here the user can also select a time delay. As Pebble watches sync their timeline every 30 minutes, it makes sense to delay the pin by at least that amount such that they will always be at least one minute in the future. The user can also elect for the pin to be created at the next instance of a set time (e.g. the next time it is 9am). For this to work the user’s browser timezone is used to create an inital offset.

Finally, the user can pick the timeline icon, and whether they want to be notified when either the watch receives the pin or the pin becomes active.

Once all setup, they press ‘generate JSON’ and the tool will display the four fields IFTTT asks for when configuring webhooks, making the IFTTT setup easy.

The second part of the tool is a debug interface, which lets the user view the pins pinproxy has received, and the HTTP code Rebble Web Services returned when the proxy made it’s request.

For more information on what PinProxy is, and how to use it see the V1 release post, and the subsequent V2 release post. To poke around the code, see the Github repo.

I also built a terminal-based service monitor, and a more accessible public stats dashboard.