Insights

We Built Skybot to Make Boring Things Not Boring

Ryan Schmidt

December 18, 2020

How many actions should it take to open an office every morning? I'm talking about lights, shades, TVs, coffee makers, fans, music. At SKYCATCHFIRE, the answer is one button. How that happens isn't all that exciting. You just have to buy the right stuff and it all works pretty well. The cool part comes when you decide that on and off isn't enough. What do you do when you want to just close the shades because you're being blinded by 3p winter sun. Add more buttons? Stand up out of your chair and adjust the shades manually? No, sir. You build a bot.

What is skybot?

skybot runs as a Node-RED instance on a Raspberry Pi that interacts with the Slack API. Huh? skybot allows our team to control a bunch of stuff around the office. Lights too bright? Turn them down with /lights. Have an announcement to make? Tell them like a robot with /say.

What can it do?

Shades

Like other slackbots, slash commands are used to interact with skybot. /shades allows us to adjust the window shades in the Dev Wing by up/down or a percentage.

Shades
A bunch of controls that let you control the shades all from Slack.

Once you get the hang of it, you can save a step and jump to the part where you get what you want with a command like this /shades east 60%.

Shades controls
Sun in your eyes, john768? That's better.

Music

Controlling Sonos is a drag because it’s not Slack so we fixed it. Type /music to get your most used controls.

Skybot music
Control the music with this nifty Slack modal.

More examples

If the task isn’t related to building a website or an app, we've probably thought of ways for skybot to do it for us. Here are some of the frequently used commands:

  • /weather gives some local weather just because we can. Used often on Fridays to start a conversation about a patio lunch.
  • /temperature displays the temp around the office. It’s helpful when you hear annoying sounds like "it's so hot in here" or "it's freezing cold in here".
  • /lights shows some light controls for on/off and an option for Chill Mode to dim all the lights.

Beyond / commands

But the best features of skybot are the ones that happen automatically.

If it's very cloudy in the afternoon, skybot enables Chill Mode which dims the lights everywhere in the office. It's a crowd favorite.

On Fridays at 11a, skybot lets us know the lunch weather forecast so we know if it's patio friendly or not.

Someone at the front entrance? Instead of a normal door chime, skybot notifies us in Slack and announces over the Sonos speakers.

Skybot doorbell
Oh look, Door Dash is here.

How it works

The office devices are hooked into Node-RED running on a Raspberry Pi. We're using Node-RED for all of the automation, device control, and for the slackbot too.

Skybot doorbell
Node-RED allows you to build logic in flows. Each node contains code that fires when that node is reached.

Any work value to this thing?

We think there's a lot of work value but one of the most obvious is our End of Day thread that shows up every day at 5p. It's an easy way for us to share progress all in one thread and it's an important part of our process.

End of Day thread
A thread is posted daily that the team uses to share a progress update.

It’s fun

skybot is an excuse to write code that adds a little convenience to SKY HQ. The benefits are tangible and we make use of it many times a day. It might not be a product that we can package up and sell but it feels right that a dev shop would use technology to make things a whole lot cooler than flipping light switches.

Lights off
Just hit that OFF button your way out.

Brilliant sites & apps built right from the start.

© 2022 SKYCATCHFIRE LLC