I’ve enjoyed using the Workflow app (acquired by Apple) to create little workflows to help my dad complete tasks. Remind him at work, remember supermarket coupons, show interesting stuff, like indicate the number of people in space right now etc.
Recently he got Phillips Hue lights. I decided this was a perfect opportunity to cross Workflow with the Hue API. Yes I know, the Hue app, but where is the fun in that?
Hue API Workflow
First step was building a workflow to hook up with the Hue Bridge and pass the API commands. I followed the steps on the ‘getting started’ guide on the Phillips developer site.
For easy future editing, I broke out the ‘Bridge IP address’ and the ‘User ID’ as variables.
After a little test, I had a workflow that sent a colour value to a Hue light.
API Workflow Reuse
To avoid long complex workflows I decided to keep the Hue API workflow very simple. It just passes the colour hue value to the lights. Thats it.
Any future flows I make, their last step will be
RunWorkflow Hue API, to run that flow and pass it a colour input.
This avoids duplication. Any future change to the Hue API, will only have to be made in one place.
Carbon Intensity Workflow
The Carbon Intensity Forecast (carbonintensity.org.uk) is an API provided by the National Grid. It returns the amount of CO2 used by the UK power grid.
I already had a flow that returned the current Carbon Intensity from their API. I modified this to extract the returned value – low, moderate or high.
Three variables with green, amber and red colour hue values were created. An odd colour hue format is the format Hue requires, unsurprisingly.
Selecting one of three values wasn’t straightforward, as Workflow only has
if/else statements, not
if/if else/else. I had to get a little creative and nest statements:
- If does not contain ‘moderate’?
- If contains ‘low’?
- Get low variable colour value (green)
- Else ‘high’
- Get high colour value (red)
- Else moderate
- Get moderate value (amber)
The corresponding variable fetched, gets passed when I run the Hue API workflow and the LED strip displays the Carbon Intensity level as green, amber or red. Success.
Its a simple use case and may seem a simple project but it still threw up some interesting little problems to solve etc. I enjoy using and looking for excuses to use Workflow app.
I am interested in the ability of iOS 12 to use Siri Automation with custom phrases to accomplish the same functionality.
I am also hoping for the day when the Carbon Intensity is low by default.