Home automation with OutSystems — Follow up
Last year (2022) I shared a home automation project where I explained how I built my smart home control panel using OutSystems and SmartThings.
Since then I’ve been doing plenty of changes, developed new features, added more integrations and improved the design for a better user experience.
Now it feels like a good time to share one last update on the project.
In my OutSystems personal environment, these are the apps that support the entire project:
- SmartThings Core
- Tado
- IFTTT
- Events
- SmartThings Home
- Control Panel
Below we’ll take a better look into each app, what it does and how it changed over the last year.
SmartThings Core
This integration allows to connect to the SmartThings API, sync devices, rooms and scenes to an OutSystems database and control the devices.
The new version has several improvements:
- The logic to sync devices, rooms and scenes was totally refactored to properly handle name changes, room changes, new devices and remove old devices.
- Device type is set automatically by inspecting the device capabilities.
- We can now set color and temperature for lights that support it.
Tado
Tado is a brand of smart thermostats that can be used without a C cable, which was a requirement for my setup unless I rewire the whole thing.
This integration (available in the OutSystems Forge) connects to the Tado API and logs temperature, humidity and heating power values throughout the day to an OutSystems table, then I use that data to render some visuals on the control panel.
IFTTT
This is a candidate to smallest OutSystems application ever, it has only one action that calls a webhook from IFTT with a custom event name. I use it to send Roomba to clean a particular room, the entire apartment or to stop and dock into its base.
Events
An OutSystems application that me and my wife use to manage events such as parties, vacations and stand-up comedy shows.
- The app is very simple, with just a few screens to view events and create new events
- Works great on phone without any extra development thanks to OutSystems UI responsive features
- It also has a calendar widget that renders events with a unique color to make it easier to understand what’s coming up — this widget is shared with the control panel. Special thanks to Bernardo Cardoso for creating a custom calendar and sharing with the OutSystems community.
SmartThings Home
The user interface of the project, this is where we can see our smart home setup by room, our scenes and configuration pages for API key and device sync.
The new version has the following improvements:
- Complete redesign to better showcase the integration and its new features.
- New widgets for lights and sensors.
- Quick view of active devices on the right side of the screen.
- New configuration pages to mange devices, scenes rooms.
- Manual setup of light groups (while we wait for Samsung to show them when we fetch devices via API).
- A new sample screen to use in the Forge page
Control panel
This is the app that runs on a tablet in our living room wall, it integrates all the other apps we covered so far and acts as a central dashboard that we use to monitor and control devices, call Roomba to clean the apartment, change light modes or simply check the weather before going outside.
A lot of stuff was changed during the last year, from UX to architecture and new features added, here are some examples:
- When not in use, a screensaver is displayed with our agenda for events coming up, clock, thermostat info and weather.
- If I’m in a meeting, my avatar has a red border and the office LED strip turns red so my wife knows I probably don’t want to be interrupted.
- Widgets are managed in a backoffice page and loaded dynamically into the dashboard.
- Light widgets now support color and temperature, just like the home app.
- Integration with Tado to display the last 24h and current values of humidity, temperature and if heating is on.
- Integration with IFTTT to send Roomba to work.
- Improved UX by removing the main navigation and just showing all devices at once, inactive sensors are less visible while lights are bigger.
- Using a magnetic support the tablet is nicely fixed on the wall and I was also able to run a cable to make it permanently charging.
If you made it this far, thank you for reading. It’s been quite a long project and I’m very proud of how it turned out! Cheers.