Boon Metrology is a collection of use cases for deployment on residential power meters to perform the following functions:
- Power Quality Monitoring: After training, give a health score 0-100% indicating whether the current metrology relationships comply with the training.
- Dynamic Hosting Capacity (DHC): Learn normal relations of P,Q,and V to allow an estimate of the impact on V that will result from adding a PV generation source
- PV Disaggregation: Determine the Active Power contribution of a Photovoltaic Voltage (PV) resource at the home
- EV/Battery Disaggregation: Detect when an electric vehicle (EV) is charging and when a battery is charging or dischargine
Architecture

boon_metrology.h/c: A pure C header and implementation to wrap the underlying C++ classes
boon_metrology.hpp/cpp: A C++ class containing specific functions for each use case
sample_boon_metrology_multithreaded.c: This example shows a sample two-thread usage boon-metrology.
- PostMetrologyThead: Read metrology samples from 10 files Kalkitech provided and Posts them to the BoonMetrology object
- main(): Construct a BoonMetrology object for all implemented use cases and show how to disaggregate a previously serialize BoonMetrology object from a memory buffer (this buffer can be read from a file if desired), get various analytics measured across the use cases, and serialize back to a memory buffer (the buffer can be written to a file if desired)
Usage
Create an instance of the BoonMetrology struct/object:
struct BoonMetrology *BM = ConstructBoonMetrology();
Use this struct object when calling subsequent C functions. For example,
PostMetrologySample(BM, &MS);
See ./examples folder.