This article was published on June 23, 2016

How TNW creates a smart office experience with Raspberry Pi


How TNW creates a smart office experience with Raspberry Pi Image by: Zoltan Kiraly / Shutterstock

At The Next Web (TNW), we’re excited about technology finding a way into every aspect of our lives. Today, we’d like to share how we’ve integrated gadgets, apps and custom code into our office(s) to help improve productivity and make work easier.

Using the low cost, credit card-sized Raspberry Pi, the project is led by Otto Rottier, lead developer at Index, which is part of TNW. Here’s how far we’ve come.

A little backstory

It all began in January 2016, when our UX designer colleague at Twitter Counter suggested integrating our office playlists into Slack.

Adopting an open plan office layout, we have been using Sonos as our music player and Slack as our company-wide communication platform. The initial idea was to integrate the two technologies so that people could request a song via Slack.

Since it wasn’t possible to communicate with Sonos using a random server outside of the office, we decided to build a small server internally. At first, we hosted the project on one of our team member’s laptops. It was convenient – but only when he was at the office. To fix that, we decided to use a Raspberry Pi that we could keep around the office and run without him.

Current Projects

  • Sonos-Slack integration
    You might wonder, ‘why on earth would they want to request a song via Slack? Why not simply install the client app and be done with it?

    There’s actually been some frustration over how music is managed on our Sonos system. Sometimes, a song that someone adds to the current playlist is skipped over by a colleague or the entire playlist doesn’t suit the majority’s taste, hindering their work performance and killing the vibe.

    By ensuring that no one can use the Sonos app anymore and their control is limited to two operations (adding songs and downvoting them), the music management would be a lot fairer for everybody.

    This can be achieved by connecting Sonos to a private part of the Wi-Fi network that can only be accessed by selected devices, which in this case is the Raspberry Pi.

    What's playing
    The #whats-playing channel on TNW Slack

    Slack’s role here is mainly for receiving command like /pause, which is useful if you are having a call with a client, /play to replay the paused song, /queue to add a song to the current playlist, and /say to make Sonos pronounce the text that you type into Slack. Obviously, the last command was just for fun.

    Although the private access and the commands are yet to be implemented, we can now already see what’s playing on our Sonos via the Slack channel #whats-playing.

    Another Sonos-related project that was already implemented was the auto lunch tune. Twice a day at every 12.00 am and 12.30 pm, Lunch Time by DJ Party Jr. is played.

    Although Slack is not involved here, the Raspberry Pi ‘talks’ to Sonos via the Sonos HTTP API.

  • Auto Check-In
    This is probably the most important Raspberry Pi project at TNW to date.

    It is mandatory for all employees at TNW to check-in via the tablet at the reception desk or Slack command /checkin for safety reasons. If you skip it, you don’t get to have lunch (sort of).

    Everyday, employees are sorted into two lunch shifts, the early 12.00 pm – 12.30 pm shift and the late 12.30 pm – 13.00 pm shift.

    The algorithm will sort this randomly and announce it when someone inputs the /lunch command on Slack. If you don’t check-in, your name won’t appear in any of the shifts.

    To improve this process, a TNWer had an idea to install a proximity-sensing beacon. We then used Raspberry Pi as the beacon and programmed it to identify people as they connect to the office network and check them in automatically.

    Auto check-in dashboard
    Auto check-in dashboard
    auto checkin notification bot
    Auto check-in notification bot

    To make it work, an employee must register their device’s physical address on Kantoortuin, our local server.

    Once registered, every time someone connects to the office network, our local server will communicate to the check-in tablet at the reception desk and to Slack so that they won’t miss the lunch.

    Here is the code that we use for the auto check-in.

    This auto check-in project later inspired a few other small features such as a Slack notification when Boris, our CEO enters the office.

    Knowing how many people each day would like to meet with Boris, this small add-on has come in handy. In the future, we may even play a specific song every single time Boris arrives at work.

    boris at the office
    Boris at the office (maybe)

Future Projects

  • Groceries integration
    Every once or twice a week, we stock up on coffee beans, healthy snacks, and yes, junk foods and whatnot. The challenge for us is figuring out what we’re running low on and only ordering those items.

    To counter this problem, we’ll need a barcode scanner.

    The barcode scanner will be connected to the Raspberry Pi, which potentially will be attached to the kitchen wall. If we see any food or drink running out, we can scan the barcode and the Raspberry Pi will compile the orders and send that information via Slack to whoever’s in charge of a grocery run.

    The most efficient way we thought of was to send the information directly to the supermarket.

    Unfortunately, the supermarket we usually get the groceries from doesn’t have a public Application Programming Interface (API) ready. Until then, we’ll have to bear with our first world problem.

  • Company dashboard
    A dashboard shown on a big TV screen will display all kinds of info that’s essential to TNW employees.

    It could show a stream of the latest articles on our site, when the next nearby public transportation arrives, weather, Wi-Fi password, and more.

    Our Raspberry Pi will count on service providers’ APIs to fetch the necessary information. This project is still on our to-do list, and we hope to get cracking on it real soon.

    Spatie's dashboard
    Credit: Freek Van der Herten / murze.be
    Spatie’s dashboard – how we envision our dashboard would look like

  • Plan your cocktail
    Every Friday evening, volunteers from our company hold a customary cocktail gathering.

    Currently, we have to put our names down on a Google Sheet to indicate that we’re willing to host, and sometimes, we’ll ask people about who’s going to take on the task that week.

    The idea is to show on Slack which Friday slots are available for everyone to grab a drink, and send a Slack message indicating who will be hosting our cocktail party on the upcoming Friday.

    If no one fills in the slot for the upcoming gathering, it will send a notification to all of us that no one has claimed the slot yet. This negates the need to rely on a spreadsheet.

Here at TNW, we’re always looking for ways to make our daily work routines simpler, smarter, and definitely more fun. That is why we are always open to new ideas on what and how we can improve our working experience. After all, we spend most of our waking lives at this place.

One thing you can take away from this post is, don’t hesitate to innovate and make your life better wherever possible. The things you do daily, like checking in, or making a shopping list, things that annoy you that can be automated – that’s where you can find inspiration for your next project.

Alternatively you can visit this Public API list and look for useful services that can improve your day-to-day life.

Also, if you are interested in getting a brand new Raspberry Pi 3, there is a sweet 55 percent off deal on TNW Deals. Not only will you get the tiny computer, you will also get seven course bundles on how you can build your first Raspberry Pi 3 project.

Have fun!

Get the TNW newsletter

Get the most important tech news in your inbox each week.