What is behind a smart home system?
Smart home - something we used to see only in Sci-Fi movies has become our present. What solutions make up a smart home?
Although the concept of smart homes is relatively new in our region - the first smart homes, in terms of real automation, were created in the 1960s. We will not teach you the history of the development of smart homes, but we will briefly compare the types of solutions that are currently the most popular on the market before we get to know smart home systems.
DIY systems vs. Integral systems
Both DIY and integral systems can be assembled from components from different manufacturers. Integral systems are managed by a controller in charge of logic and communication. With a DIY system, there is no central device to control the components, so it is much more difficult to get them to work in sync.
DIY systems
✔️ Cheaper than integral systems
✔️ It is easier to "move" from one object to another
✔️ More suitable for smaller, simpler projects that use components from the same manufacturer
❌ Difficult communication between components from different manufacturers
❌ The user must be tech-savvy to successfully connect the system
❌ More complicated maintenance and repairs
Integral systems
✔️ Fully adapted to the needs of the user
✔️ Suitable for residential and commercial buildings
✔️ Easy to use
✔️ Saves energy
❌ More expensive than a DIY system
❌ Necessary installation by a professional
❌ More difficult "migration" of the system from one object to another
As you can see from the above - integral systems are more efficient.
Although they are more efficient, their development is much more complex - what does an integral system contain?
The Snap One company develops integrated systems for smart homes and covers the entire cycle - from product development to installation. It was created by the merger of two companies - Control4, which develops devices for interacting with smart home systems, and SnapAV, which develops audio, video and CCTV equipment. With their merger, opportunities have been opened to strengthen and launch new development teams in Serbia that will work on innovative solutions for the development of integral systems for smart homes.
What all components should a smart home contain and how do they communicate?
The key components of a smart home are:
- The controller - the "brain" of the system, enables indirect communication of all other components.
2. Sensors - detect movements, water spills, and fire; they measure light intensity, temperature, air humidity and many other parameters.
3. Interaction devices - these can be tablets, remote controls, or mobile applications, which allow the user to control devices in a smart home.
4. Actuators - can be switches, dimmers, relays and other devices.
Snap One develops all components for smart homes - from controllers to actuators. All these components, connected by software, form an integral system for smart homes.
What does such a system do?
1. Smart home controller
In order for the system in the smart home to function, it is necessary to enable communication between all system components. Since the communication protocols between the components are different, the communication between them is done by the controller.
Controller = "brain" of the system.
It is in charge of logic and communication between all system components.
Therefore, all devices communicate indirectly through it, i.e. they communicate only with the controller, and it coordinates the communication between them and the functioning of the entire system.
The code for these communication protocols is mostly written in the C/C++ programming language, using various libraries. As each component in the system is different, the work to develop these protocols is dynamic and requires the team to learn on a daily basis.
2. Drivers for smart homes
The operating system of a smart home is similar to the operating system of a computer - it controls all devices and services in the house and connects them into a single unit. Like computer operating system drivers, Control4 drivers are programs that control smart devices in the home.
So the Control4 (SnapOne) smart home operating system currently supports more than 15,000 drivers for various devices - such as lights, sensors, thermostats, TVs, security systems, spa and pool controllers, but also drivers for various digital services, such as Amazon Alexa, Deezer, Spotify, Tidal, Netflix and many more.
Is the development of such drivers complex?
Smart devices use different communication protocols - so it is necessary to write programs that enable the connection of different devices and protocols into one whole.
The drivers in Control4 OS are developed in the Lua programming language due to its simplicity, performance, low memory footprint and the possibility of embedding in other languages. In addition, web pages for configuring drivers and smart devices are being developed, using the React library in JavaScript or TypeScript programming languages.
3. Devices for interacting with a smart home
These devices include tablets, remote controls and mobile applications - interfaces that allow users to send requests to the controller.
Depending on the device they are developing, platforms and software stacks of varying levels of complexity are used. Some of them are - microcontroller platforms Cortex-M3 and Cortex-M4 architecture, as well as more modern, heterogeneous architectures that combine multiple cores of different purposes - for example, Coretex A7 and Cortex M4. Depending on the platform, the firmware is bare-metal, without operating system support, with RTOS support, or in the case of heterogeneous architectures, a combination of RTOS and Linux operating system.
4. Application for interacting with a smart home
Application located on remote controls (or phone and tablet):
The application for these devices must be optimized to work with embedded devices - the code must be optimized to reduce battery consumption, which is why software development uses Qt and QML, which have proven to be the ideal solution.
5. Security systems
In order to ensure maximum user satisfaction and their safety - special attention is focused on the correctness of the device before it reaches the user, as well as their safety during use.
All smart home devices go through automated tests that are (mostly) written in Python - from interactive devices (remote controls), operating system, to the application part of the software.
Special attention is paid to cybersecurity in order to prevent potential hacker attacks such as:
● A hacker accessed your thermostat, and now, based on the information from the thermostat, it knows when no one is home
● A hacker has accessed your audio system - you are at risk of someone eavesdropping on you and thus finding out sensitive information such as passwords and PIN codes
● The entire network is compromised, there is a chance to launch a DDoS attack
That's why the security team manages risk and compliance with regulatory risks for partners and customers by proactively identifying risks for cyber attacks, as well as remediation paths should one occur.
Challenging projects - quality solutions
These smart solutions would not exist if the people working on them were not maximally committed to quality.
What helps the team maintain this level of quality?
● The division of work between the teams is clear - but the cooperation between the teams is very close
● All teams are equally motivated to fulfill requirements that will lead to customer satisfaction
● All projects are approached in a planned and organized manner, therefore a lot of attention is paid to every detail
● All engineers have a broad view of the project and know what other teams are working on – making cross-team collaboration more effective
In addition, team members consist of both young engineers and engineers with over 20 years of experience - this level of exchange of knowledge and experience ensures that teams develop their professional skills every day and come up with quality, innovative solutions for challenging projects.
All this makes the integrated system for smart homes developed by Snap One one of the most competitive in the world - but also that its quality is maintained through further development and innovation.
If you want to work in a product company that covers the entire software development cycle, check out the open positions and apply today!