Bindicator Part 1
The Problem
I would like to have a glanceable reminder of when to put the bins out and which bins need to go out. Currently I have 3 options to check the bin day in my area;
- Enter my address on the website that Oxford City Council provide and see what comes back. As you can see in the image below it’s not the most readable layout and it’s certainly not convenient or glanceable. Not sure why they bother to include the details of the next collection and also the collection after that.
- Print out a PDF of all the collection dates for the year and print it out. This is also not very glanceable, although it would be slightly more convenient.
- Get an email reminder from the Council. This is the option I currently use and it’s certainly the best one from a convenience and glanceability perspective. As you can see in the screenshot only the pertinent information is given and as the email arrives on my phone it’s very convenient. The only issue is that the email tends to arrive during the mid-afternoon and I’m usually working or doing something at that time. By the time I get home I’ve often forgotten about the email and then when I do remember it’s 10pm and I have to go digging through the emails again to remind myself which bins go out.
Wouldn’t it be better if I could just have some sort of small light that would come on to remind me? Nothing too garish, of course.
This is a Pi Pico powered Skull which I bought from Pimoroni because it’s a WiFI enabled glass skull crammed full of RGB LEDs.
I think that if I have this on a shelf somewhere and have it light up in the evenings with the relevant bin colour (blue for recycling, green for refuse) then that will serve the purpose of providing a glanceable and convenient reminder of when to put the bins out.
So I have my skull with WiFi, how should I make it glow when I want it to? Making it glow is not too difficult, as you can see from these code examples. Making it glow at the right time will require some thought.
I am not the first person to want a device like this. I am not even the first person to use the term ‘bindicator’. There are even some commercial products available such as ‘The Bindicator’, although that one seems to rely on using a phone app to set a schedule rather than pulling the data automatically.
Pulling the data automatically is the other problem we’ll need to solve to make this truly convenient. I don’t want to faff around with setting up schedules using a phone app, or maintaining some sort of online calendar because then I’ll have to remember to update them when there’s a bank holiday or extreme weather event and the council have to change the bin collection day.
Oxford used to have a mobile app that had an API that could be relatively easily reverse engineered and repurposed as you can see in Terence Eden’s Alexa Bin Day blog post but that has been shut down now. I suppose they stopped using Cloud9’s platform to power their online portals.
There is at least 1 open source project devoted to providing a standard interface to the various disparate council bin collection data sources. It’s called UK Bin Collection Data (UKBCD) but sadly it does not support Oxford City Council yet.
We’re going to have to do this ourselves.
The Solution
We will use the email reminder option that the council provide and have it send emails to a service such as Zapier or IFTTT. From there we can forward the body of the email to a custom web service which will process it and store the relevant details (date and type of next collection). We will also write some custom code for the skull which will query this web service a couple of times a day to get the current latest collection date and time, along with updating the internal clock of the Pico. Between 6pm and 11pm on the day before the collection the skull will glow a relevant colour. We will secure access to the web service using some sort of pre-shared key.
That’s the idea, anyway. We’ll see how I got on in part 2.