Smart Home Control System (HCS) Monitoring

Monitoring enables us to monitor both real-time performance of our smart home and to monitor longer term performance. This is important in understanding where the main loads and bottlenecks are and this in turn ensures minimum response times and very low latency.

As part of our Home Control System (HCS) Java code we have implemented a static class with numerous static methods. These are also synchronized as our HCS is a multi-threaded process.

The majority of the data is collected on a daily basis and reported in the logs at the end of each day. Some data is collected as long as the process is running, to gain insight over long periods of time.

Java Threads

Our HCS counts the number of threads handled over the course of each day. Typically there are several hundred thousand events handled. It monitors the time each thread takes to execute and stores the average time, minimum time and maximum time.

Internet Connectivity

Our smart home has a service that monitors our Internet connectivity (FTTC, FTTP and SIM-based). Our monitoring to date show that Internet connectivity has fairly frequent 'blips' which typically last quite short periods of time.


As our smart home becomes more intelligent and supports motre features, it is consuming more and more bandwidth both within our home network and also out to the Internet. The traffic generated around our home network is a much smaller issue than the data being sent and received to/from the Internet. Our smart home is collecting data feeds for analysis and also collecting data from #IoT sensors and other devices and services. It is also synchronising images and video with cloud services for remote access. User interaction with the smart home features and IP cameras is also generating quite a lot of traffic. We can envisage a point in the not-so-distant future where our smart home consumes more bandwidth than the people that live within it.

Disk Usage

Because our database is flash disk based, we monitor the number of reads and writes. Our software employs caching though, so we distinguish between database reads/writes and those that result in disk reads/writes. This alone enables us to optimise both the caching and the data types we store.

Share ...
We are on ...
Facebook Twitter
YouTube Flickr Follow us on Pinterest