Building a smart home platform from scratch - lessons learned
I developed a smart home platform based on web technologies as my Bachelor’s thesis in the Software engineering program at the Czech Technical University in Prague
Why did I decide to design a Smart Home Platform from scratch?
Back in 2018, I was interested in smart home tech, such as lighting and sensors, controlled by an app and a voice assistant. I had a few devices that could be managed through an app, but they weren't all compatible with my preferred voice assistant, Google Assistant, at the time. I decided to build a Smart Home Platform myself to learn more about how smart home devices work together. Conveniently it was about time to choose a topic for my Bachelor's thesis. My program was called Web engineering, so I decided to design and build the platform based on web technologies.
The final product
Over a couple of months, I designed the app, developed the device setup flow, implemented the frontend and backend, deployed the platform on a Raspberry Pi (acting as a home hub), designed and built the electronics for the controllers, designed and 3D printed plastic enclosures for the controllers, tested and used the platform myself and tested the UX with a couple of potential users. Smart home app - final implemented design
The Lessons
- Users do not remember information from the onboarding screens (in-context information)
- The chosen analogy of devices, attachments, and pins was not well understood by users (complex terminology)
- If there's another step in the process that should be done before the current one, the user should not have to abandon the already entered information and should be able to complete other steps they might have forgotten in context (e.g., in a modal)
- Wi-Fi connection can be tricky, so the devices should have a way to signal state even when not connected to Wi-Fi yet (e.g., an LED)
- To be a viable option, a smart home platform has to work well with the existing ecosystems (HomeKit, Google Home, etc.). Without the integrations, the capabilities were very limited
What worked well
- The platform actually worked. I was able to set up all the devices through the web app, turn on/off lights, check the temperature and humidity, and check if I left the door open
- I left it running and used it for a couple of months before I moved out, and the platform was generally stable
- The web app (PWA) was fast and, when installed on the home screen, providing an app-like experience
- With the responsive layout, I got tablet/desktop access for free