Home automation technology
Our team took part in the development of an intelligent system for home security, communication and entertainment. The objective of this project is to create a smart device that can be used as a security camera, as well as provide other useful functions such as conference-calling, playing audio and controlling various home appliances.
The gadget is equipped with high resolution camera, speakers, microphones, sensors and other necessary add-ons. It supports Wi-Fi, Bluetooth and ZigBee. Sure enough, the development of home automation system with such a wide-ranging remit requires an elaborate software back-end and this is where our skills came in handy.
Anadea joined the project on the go when a certain part of the smart device software already existed and involved software for the main device and client-applications on iOS and Android. However, the software system needed fundamental changes in order to improve the overall performance and make it meet high quality standards of the smart tech homes market.
After a careful evaluation of the project state, we came to the conclusion that the initially utilized technology stack had a negative effect on responsiveness of the device, speed and scalability of the system.
Our engineers were assigned to move the system to a new platform - Android OS - and re-implement the core functionality:
- video transmission from the device to the client application;
- operating the camera of device via the client application;
- managing the music playing on the device via the client application.
The backbone of the development team consisted of our engineers Artem Dubrov, Sergey Verovets, Konstantyn Bykhkalo and our head of designers Mikhail Bilenko. Alexander Mikhalchenko and Sergey Altukhov also took an active part in the development. Alexander Mikhalchuk and Alexander Koroid supervised the project.
Smart home system development
Smart device software and mobile clients.
In the course of work, our team:
- worked out a new architecture of application for the smart device;
- developed a scheme of interaction among the smart device, the mobile device and the server;
- completely changed the technology of video and audio transmission.
As a basis we selected WebRTC technology in implementation from Ericsson Research - OpenWebRTC framework, with the API consisting of three main elements PeerConnection, MediaStreams and DataChannel.
The connection (PeerConnection) is coordinated via the signal channel, organized with the help of WebSocket protocol. The exchange of audio and video (MediaStreams) - via Secure Realtime Transport Protocol, and the information used for gathering statistics of streams transmission - via RTP Control Protocol. Datagram Transport Layer Security is used for exchanging SRTP (Secure Realtime Transport Protocol) keys.
The bi-directional data exchange, which is not associated with multimedia, is carried out through the transport service (DataChannel) of general purpose with the use of Stream Control Transmission Protocol (SCTP), encapsulated in the DTLS (Datagram Transport Layer Security).
To create and play music collections, SoundCloud online platform was utilized.
The software for smart device was written from scratch. As for the smart home mobile app development, the mobile application for Android client was built from the ground up. Mobile application for iOS platform was upgraded to the new technology stack and a new design.
The server part of this smart home software application represents an API for connecting the device to clients (smartphone, tablet). The server API provides the following capabilities:
- device registration,
- client registration,
- connecting the device and client-owner,
- adding other clients (guests) to the device by the owner,
- managing access rights of the guests.
At the planning stage, we considered two options for communication between Android devices (devices and mobile phones): HTTP и WebSocket. As we were going to use WebSocket also for video transmission, it was decided to use it in both cases. JSON format was chosen for sending messages between clients and server.
In addition to exchanging messages through WebSocket, the server also had to provide work with many clients and admin panel with a web-interface. To implement this, we selected Play framework that supports WebSocket technology out of the box. Besides, this framework is built using the modern reactive architecture, which gives good scalability in case of a large inflow of clients.
Apart from Play framework, the following technologies were used in the project:
- Twitter Bootstrap,
- Selenium framework,
The technology stack was chosen well, so the work on the server side went smoothly.
Within the design part of this project, we developed the visual look and feel of:
- video section with the options for watching video in portrait and landscape modes, convenient visualization of the camera rotation with a scale for navigations, controls and other necessary elements;
- music player for iOS and Android applications, where the users can easily view, search and play public and private playlists;
- radio for iOS and Android applications, so that users can listen to their favorite radio stations.
We hope this awesome new gadget is widely welcomed in the market. We got a valuable experience of the home control system software development, and we are looking forward to continue our collaboration in the future.