ENE Box Android App

Case Studies

July 18, 2016

Johnson Controls is a global diversified technology and industrial leader serving customers in more than 150 countries. Our 162,000 employees create quality products, services, and solutions to optimize energy and operational efficiencies of buildings; lead-acid automotive batteries and advanced batteries for hybrid and electric vehicles; and interior systems for automobiles.


The customer was in need of an Energy Monitoring/ Reporting utility which would be placed on-site to monitor the energy usage based on the Utility Type and other monitoring parameters. This application is needed to be user-friendly and accessible; hence this is being built for the Android Tablet Environment. The tablet would be interacting with the Metasys System which communicates based on BACnet Protocol. The tablet would be communicating with Metasys using Bacnet to pull all the required information for the reporting and mapping of the energy points in the building.


The Gauranga Soft-Tech Pvt Ltd written Bacnet communication layer to communicate with Metasys System via Bacnet (Building Automation Communication Network) protocol to get the energy reading details and display in Tablet.


  • Requirement Analysis and understanding of the system by Preparing Specification Document in detail
  • Understand and analyze Bacnet Protocol communication
  • Written sample android application and tested it on client-side with Metasys device via Bacnet Protocol.
  • Categorize energy types for which graphs are shown
  • Wi-Fi communication from the Bacnet device to the tablet
  • Synchronize the Date & time with Tablet and Metasys
  • Store all the data into SQLite Database on an Android device
  • The weekly status update was given to the Client either via phone or in-direct
  • Prepared bar graph (Daily, Weekly, Monthly, and Yearly) for the derived values Bacnet device.
  • Data pulling service created to update the database with energy parameters from Bacnet device
  • Reading Bacnet alarms and display it in Tablet.
  • Regressively tested the application with Bacnet device continuously for 72 hours at the client-side.


  • Tools – ENE-Boxor Metasysdevice (Collect energy consumption information of a building)
  • Tablet 7’ with Android™ 2.3 Gingerbread or above
  • Oxyplot Graph

Facilitating factors

  • Initially, we visited Johnson controls to analyze the communication using Wireshark to read packets sent and received from the Bacnet device.
  • The client has made a setup of Metasys device in our office that has helped us to test to resolve some basic bugs.

Challenges overcome

  • For Bacnet Communication – we had some default library, which was not fully functional, in the initial implementation system was able to fetch the details properly but at some point in time the communication layer crashes and the application gets closed abruptly. We have changed the logic of reading the parameters in bulk and installing them. Introduces a separate thread to fetch the data from the Bacnet device.
  • We had an issue while displaying bar chart units Y-axis, we need text to be displayed vertically, finally, we have converted units into an image and displayed them at runtime.
  • The initial design of the application was to read details from only one device, but the client came up with the requirement to read data from multiple Bacnet device. So we have implemented the functionality of scanning multiple devices in-network and displaying it to the user to choose the device which the client wants to connect and extract the data.
  • We have implemented the functionality of reading all the Bacnet objects and storing them in the database. Based on Bacnet objects, a graph will be displayed.

Results observed

  • Regressively tested the application with Bacnet device continuously for 72 hours on the client-side to fetch data and display graphs.
  • Observed once in an hour graph (daily, weekly and monthly) changes.
  • Observed Alarm is getting displayed as soon as it has been raised in Metasys device.
  • If the configuration is changed then the impact on the graph changes.
  • If the user changes the Customer logo, building photo, building name, and description in the admin section, then the impact on the home screen changes.
  • Importing the data into CSV and saving it on an external device.
  • Weekly, Monthly, and yearly graph calculation.

Lessons learned

  • If we are starting any new technology or communication protocol, we should do a sample testing application to check if all the functionality can be achievable or not?
  • How to prepare a Test plan for the client
  • How to update the weekly status of the client

Additional information

  • https://en.wikipedia.org/wiki/BACnet
  • http://www.bacnet.org/
  • http://www.bacnet.org/Bibliography/EC-9-97/EC-9-97.html
  • http://oxyplot.org/
  • System specification Document pdf