Hacking a Morning Routine

A popular GitHub repo called Hacker Scripts tells the story of an engineer that automated different parts of his job. It’s quite entertaining, though some of the language is nsfw, fair warning. While this repo may be a joke, there’s a practical component as well. If anything in our lives is a repetitive task that can be automated, then why haven’t we done so? It seems only logical and frees up our limited time to be better used elsewhere. We have the technology!

Over the past year, I’ve been looking at habits and routines for ways to eliminate or reduce the bad ones. The most detrimental events in my day are those that enable procrastination, or those that break my flow and focus. If we visualized our days like a disk drive in the Windows disk defragmenter, we’d see lots of broken up chunks that could be squished together to make room for more space, or in this case, well spent time. Every distraction fragments it, making us just a little bit less effective. Making us work just a little bit longer to get everything done. It all adds up.

Lots of little things can be done to take back our time and focus, and hundreds of books and blog posts with tips tell us to not check email constantly, use time blocking, blacklist distracting sites with an app like Self Control, etc. While these are all effective, there are many repetitive tasks in our days that can be automated.

I’m not sure about you, but one thing I do every morning is wake up… eventually. An alarm goes off. A snooze button gets pushed. Sometimes it feels like an infinite uncontrollable loop. Not conscious enough to make a good decision, I just want the alarm to stop. At some point I’m out of bed, grinding coffee beans and heating up water. Ten minutes later I shuffle to my desk and say ‘Good Morning’ to the team on Slack. Depending on the number of snoozes, the number of minutes can vary, but there are definite minutes here to be recovered. That’s where automation comes in.

The Goal:

  • Reduce number of snoozes
  • Decrease time between waking and doing meaningful work

The Solution

A button that automates my morning routine. With an MVP defined, a bit of this past weekend was spent turning this into reality. Over time, it can be enhanced and have other morning tasks added to it. This button triggers three things to occur:

  1. Turn bedroom lights on. If the room is bright, I’ll get up sooner, and hit the snooze button less. The ultimate goal is no snooze, but let’s be realistic.
  2. Make coffee. This alone saves me 10 minutes in the morning between heating up the water, grinding beans, and brewing.
  3. Say ‘Good Morning’ in Slack. Once the message is sent, I’ve essentially committed to the day, clocked in, and let the rest of the team know I’m available.

Have you seen the Dash buttons that Amazon came out with? They have different buttons for different products, like a Tide button that you stick next to your laundry machine that orders more detergent when you run out. They recently came out with a programmable Dash button called the AWS IoT button. I stick this button next to my bed. When I wake up, I push it, and the day starts.

Pressing the button fires off a call to Amazon’s Lambda service, which executes a Python script. To keep things simple, I used IFTTT to trigger making coffee and turning the lights on. This is beneficial because if I want to add future items that can be accomplished via IFTTT (for example, in the summer time, having it turn my A/C on), no code needs to be written. Another IFTTT recipe can just be added to the list of things that happen when the button is pressed. The other item that occurs is the Good Morning message in Slack. Rather than requiring a Slack app to be created and API keys to be set up, the script uses the IRC gateway and shoots a message from my account (not a bot account) into the channel of my choosing.

The Goods:

Let’s get into the hardware that gets this done so you can do this too:

  • The AWS IoT button. They say it’s limited edition, but I’m not sure if I believe that.
  • Cree Connected bulbs. These come in soft white as well as daylight and are one of the most affordable options for smart bulbs. At the moment, these are listed at $15, but they sometimes go on sale. The bulbs are Wink and ZigBee compatible. I already had a Wink hub, and I’m pretty sure the hub is required if using Wink. Not sure with ZigBee.
  • A WeMo enabled Mr. Coffee machine.

The software: The Morning Routine script is available on Github for you to use and modify as desired. It’s less than 30 lines of code. Amazon’s Lambda service is free for the first 1 million request per month. Since most of us wake up once daily, we should all be coming in a bit lower than that per month. More details on the software and connecting everything are available on the GitHub page.

Good Morning

In addition to being a nice bit of fun to hack together, I’ll be shaving some valuable minutes off of the morning routine. Besides the Hacker Scripts repo I mentioned earlier, a neat project was posted last week on Lifehacker that builds a Raspberry Pi-powered alarm clock with Alexa embedded in it. A button gets held down and the users tells it to run a function, which for this person turns on his kettle. Really cool project. I’m very groggy and inaudible in the morning unfortunately, so I opted for the simple button press, but Alexa is amazing and the projects/apps being built with it are fantastic. Also, cheers to Jiaaro for helping to debug the Slack functionality with me Sunday morning.

Happy to chat about hacking the morning routine in the comments or on social. What’s an idea you have for taking back some of the time in your day?