Maximising meeting room usage. The smart way!
In this entry Matt Webster, from Open Gov Hub, lets us dive into how they connected some Amazon IOT buttons to maximise the use and availability of their meeting rooms space. It is great to see how having an Open and free API lets our users explore different options to make the most of their available resources.

If you have built anything on top of the Nexudus platform and would like to showcase it to the rest of the community, get in touch.
Matt Webster, Open Gov Hub.

Our co-working space of course has limited resources and we have been looking for ways to maximize them. One place where we hoped to get better was to not have bookable meeting rooms sit empty. Usually, someone will book a room for the maximum amount of time they believe their meeting will run. Those meetings run the normal amount of time (not the maximum anticipated time), the room booker leaves, and now the room sits empty unable to be used by someone else because it is booked.

For some time now we have asked users to go back into the booking website, find their room, and cancel the unused portion of their time. Probably because this takes more than two steps, most folks don't do it. We needed a way to make it easier to cancel the room booking and found a way using IOT buttons, AWS Lambda, and Nexudus's API.

For $20, we bought an IOT button from Amazon. It connects securely to our co-working space's wifi and sends a signal whenever the button is pushed. Once we had the button, we connected the button to Amazon's AWS Lambda service and wrote a small Python script to match the button with the room. The script called a URL, similar to
https://xxx.spaces.nexudus.com/en/bookings/RequestTerminateBooking?resourceGuid=<unique_room_id>
which triggered an email being sent to whomever had the room asking them if they would like to confirm the room cancellation. The system is straightforward to use and anyone can trigger the email by walking into the room and pushing the button.

Two caveats: pushing the button only cancels the current reservation (not one in the future that hasn't yet begun) and you can only cancel rooms in 15 minute increments. On the first, we found that someone would sit down in the room a little early only to realise their meeting was cancelled. They would push the IOT button but then never get an email. This was because the system was saying,

"There are no active bookings for this resource" and, from the user's perspective, would silently fail. We have been able to address this via user education asking them to be sure they are in their window if no cancellation email appears.

On the second caveat, if you have a booking from 3-4:30pm and realize at 3:46pm that you won't need the room anymore triggering a cancellation will free the room from 4-4:30pm, not 3:46-4:30pm. We struggle with this the most, especially when someone cancels in the last 15 minutes of a meeting. The user will receive the email, click it, receive a message that their meeting has been updated only to go into the booking calendar and see that room is still booked! Again is being addressed with user education (mostly with the response, "oh, right, 15 minute increments").

So, how can you do this? You'll need to:
- buy an IOT button.
- sign up for the free tier of AWS.
- connect the IOT button to AWS Lambda.
- figure out the unique ids of each of your rooms.
- write a little code.
- put the IOT buttons in the rooms and enjoy!

Next for us:

Write a Nexudus app that watches for button presses. If the button is pressed multiple times over a short span, an administrator will be sent an email asking to confirm the cancellation of a room (for cases where the user isn't around or isn't watching email).

Once we can cancel any room via API, we have talked about adding a Raspberry Pi motion sensor that would check for movement in the first 10 minutes of a reservation. If no one has entered the room, the system would automatically cancel the room freeing it up for others to use.

Related posts