Home Automation Software Development
An intelligent system for home security, communication, and entertainment featuring a high-resolution camera, sensors, and audio equipment.
Story behind
The client contacted Anadea with a project of a smart device to be used as a security camera, as well as enable conference calling, playing audio, and controlling various home appliances.
The gadget is equipped with a high-resolution camera, speakers, microphones, sensors, and other necessary add-ons. It supports Wi-Fi, Bluetooth, and ZigBee.
The development of smart home software with such a wide-ranging remit required an elaborate software back-end and this is where our skills came in handy.
Anadea’s work
Anadea joined the project when certain parts of the smart device software already existed. It involved software for the main device and mobile app development for iOS and Android.
However, the software system needed fundamental changes in order to improve the overall performance and make it meet the high standards of the market of home automation softwares.
Having thoroughly evaluated the project, we came to realize that the initially used technology stack impaired the responsiveness of the device, speed, and scalability of the system.
Our engineers were assigned to re-implement the core functionality:
video transmission from the device to the client application
managing the music playing on the device via the client application
operating the camera of the device via the client application
Home automation project development
Work on the client application and the server-side deserves to be discussed separately since these were the two massive work scopes.
Smart device software and mobile clients
For the development of a client-side part of a home automation platform we did the following:
-
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 from Ericsson Research, OpenWebRTC framework, and an API 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) is via Secure Realtime Transport Protocol, and the information used for gathering statistics of stream transmission is coordinated
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 used.
Software for the smart device was written from scratch. As for the smart home mobile app development, the mobile application for the Android client
was built from the ground up. The iOS application was upgraded to the new technology stack and a new design.
Back-end system
The server part of home automation software is an API for connecting the device to clients (smartphone, tablet). The server API enables:
-
device registration;
-
client registration;
-
connecting the device and 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 and WebSocket. As we were
going to use WebSocket for video transmission as well, it became our main technology of choice. For message exchange between clients and the server,
we chose the JSON format.
In addition to messaging through WebSocket, the server also had to handle many clients and an admin panel in a web interface.
To implement this, we selected the 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 an influx of clients.
Audio & Video
As for the entertainment part of the smart home project, the smart device can play media that users can control from their smartphones. This involves:
video player with the ability to switch landscape and portrait modes
convenient visualization of the camera rotation with a scale for navigations and controls
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
Services & Technologies
-
Design
-
Front-end development
-
Back-end development
-
Android app development
-
iOS app development
-
Project management
Technology stack
Scala, Slick, Akka, Websockets, PostgreSQL, HTML/CSS, JavaScript/JQuery, Twitter Bootstrap, Scalatest, Selenium framework, OpenWebRTC, Android, iOS
More than just a solution
We got valuable experience working on this home automation system project. An awesome new smart home device was welcome in the market and we are looking forward to taking on more projects for this client.
Don't dream of it, work for it!
Game-changing apps start here. Tell us about you project.
Send us your request for proposal, and we'll reply with the estimate.