Home Automation: Embedded Development for Smart Home
Working with the leading Smart Home company, Waverley created a hybrid mobile application allowing remote monitoring and control of security, heating, and electricity for home management devices. We also helped the client develop embedded software for security panels and voice communication.
Our Client is an industry-leading company turning regular security systems into smart home solutions. The company needed a reliable, dedicated software engineering team offshore with experience in mobile and embedded development to create customized applications that would allow remote monitoring and control of security, heating, and electricity for home management devices.
- Develop an application integrating security and energy management, working with the client’s in-house development team.
- Create a new touchscreen user interface, develop fast platform-independent UI components, resulting in a hybrid mobile application (iOS and Android) designed for remote monitoring and control of end-user’s home.
- Performance optimization for low-cost Android touchscreen devices.
- Creation of a custom Android “wrapper” for the JS application.
- Planning, analysis, verification and review activities through the entire development process.
- Design and execute testing for functional, GUI, and hardware compatibility, including automated tests for JS front-end.
Waverley’s expertise in the development of mobile web applications allowed us to introduce a change to the architecture that significantly simplified UI development. Our solution, based on an emerging AngularJS framework, enabled the power of canvas-based UI controls while maintaining the ease of development typical of traditional UI elements. The client started with a small Waverley team focused on front-end development. Within one year, this team’s mandate expanded to include Android components, server-side work, firmware development for a new product, and QA for multiple products.
HYBRID MOBILE APP
- The new app is much faster and works cross-platform on iOS, Android and touchscreen (Android), and browser. It allows working with video cameras, but since video streaming didn’t work well with HTML5 (it worked only in specific browsers), we needed to create our own video player, with the navigation through the history of clips and with ability to pinch to zoom.
- The app also integrates with the latest HD security video cameras.
- Since mobile screens were not big enough to see all the details of video streaming from the camera, we introduced pinch to zoom functionality to our player.
Our work involved interfacing and controlling numerous hardware components through industry-standard protocols as well as custom firmware written by us.
- Waverley was involved in building software for a security panel that teaches panels to integrate with the server through 3G (3G universal communicator) modems.
- We enhanced the panels that were able to connect with the server through GSM to be able to connect through 3G. The firmware created for 3G universal communicator by our team allows it to be installed (used) in the following security panels: GE SimonXT (XTi), Honeywell Vista, Honeywell Lynx 3000.
- We also added support of two-way voice communication (over the air) – user of the panel could talk to the operator on the other side and enabled remote panel settings management (for GE Simon XT and GE Simon XTi).
The approach we chose included the use of microservices. It also supports different devices (locks, and other smart home features, cameras, door/fire sensors,etc.), as requested by the client.
The team of Waverley QA engineers is using the Qmetry test management tool. We provide:
- Regression testing for iOS/Android/Web and REST API.
- Functional testing for different types of Security Panels.
- Load testing.
- Smoke testing.
All bugs are reported in a bug tracking system (Jira) where we also capture any updates. A weekly meeting is conducted between the QA Lead from the client’s side and Waverley’s QA Team. During the meeting, all tasks and bugs are carefully analyzed and discussed.
In addition, the Waverley development and QA teams regularly meet with the Senior Manager from the client’s side. In close cooperation with the client, we:
- Created the automated testing framework for functional testing of the security panel. (Test cases are written on Java. Arduino is used to automate the interaction with the equipment and Selenium WebDriver is used to automate the interaction with Web clients.)
- Automated test cases for Smoke testing.
The project is ongoing.