Nearly every smart home automation solution on the market has issues due to outdated architecture. As an example, they:
- Do not have event-based architecture: performance issues with large installations, the user interface is not in real-time.
- Do not work offline
- Support only a few protocols
- Support devices only from a single vendor
Besides this, many home automation platforms require technical skills in order to connect a device and set up basic automation. Our task was to create a smart building automation system that will be flexible in setup for end users.
We analyzed the operation of alternative systems and determined that they mostly necessitate creating complex configuration files in order for a device to function. For our product, we chose to provide a simple interface for connecting and managing smart devices.
The delivered 2Smart platform has pluggable architecture and consists of a universal core and modules. The core is not tied to any hardware protocols or to any particular vendor. This approach allows us to support devices from any vendor with any protocol. For now, we have the following bridges available: Zigbee, KNX, Modbus, Xiaomi, Custom MQTT bridge, etc.
Having the right architecture was very important for the success of this project. Here are some of the aspects that we have implemented:
- Every feature works offline. At the same time, we support remote access through the Internet.
- No backend polling, everything is event-based. Almost everything works instantly with minimal delays in reactions.
- Modular architecture with the ability to install 3rd-party extensions. We have created a marketplace for extensions; extensions are distributed in docker images.
- The user can install the application on a local machine by running one command.
- Cross-platform support.
- Device auto-discovery support.
Extensive UI is the second most vital component of the platform:
- You can configure dashboards to suit your own needs.
- You can have dashboards for different rooms, floors, and zones.
- Everything on every dashboard is in real time.
- Large library of widgets: you can add as many widgets to the dashboard as you like.
- Each dashboard can have mobile and desktop layouts.
- Parental control can be installed on the screen and locked with a PIN code to restrict the screen from children and/or guests.
The main idea is the flexibility of managing a smart building and developing solutions for that. To achieve this, we have developed scenarios. For more advanced users, we provide the opportunity to program custom scenarios using Java Script.
For users who don’t want to write code, it is possible to create simple scenarios using a fairly simple and highly flexible interface.
Professionals who want to integrate new types of devices can create their own bridge. For them, we have SDK, which simplifies the development process.
Besides, Grafana can be used to monitor data. Users can also configure Telegram and Slack messages from any device or script.
We have developed a system for automating smart buildings and other smart environments, which supports devices from multiple manufacturers (Zigbee, KNX, Modbus, and Xiaomi).
The delivered solution is easy-to-use for end users and has extensive UI.