Achievement
Created a system to manage a home's devices for future machine learning based control.
Significance and Impact
This work has created a robust, easily deployable system for the management of and data collection from networked devices in a home.
Research Details
- Created Volttron agents to control devices and collect data from vendor APIs.
- Created a configurable Docker container deployment which runs these agents.
- Created a database to store historical information from the agents over time.
Overview
Computerized management of home appliances such as water heaters and HVACs is becoming increasingly common. One area of research this opens up is the question of how these devices should be optimally configured to meet user needs in the most energy efficient way. Machine learning offers one avenue for making this determination, but data must be collected in order to form a training set for the machine learning algorithm. The Scalable Load Management project is designed to facility such management, data collection, and learning. Deployed as a Docker container, the project makes use of an agent based architecture in Volttron, a DOE agent system platform. Each agent is responsible for overseeing a single device or other data stream. The two current device agents manage a thermostat and a water heater, while the other two collect data from a weather forecast service and a data collector piece of hardware that measures home energy usage. These make us of vendor provided Internet of Things (IoT) APIs to communicate with the devices. Currently, the system supports making calls to SkyCentrics, Ecobee, and Southern Company devices. The agents collect relevant data periodically and store it in a DynamoDB database, which is an Amazon created NoSQL database, chosen to handle heterogeneous data such as devices where different vendors may provide different information from one another for the same kind of device. The production database is housed on Amazon Web Services. A simulator Docker container has also been made to provide known data for regression testing.
Last Updated: January 15, 2021 - 4:55 pm