We have run into a problem with our Green Button implementation that has led to a concern about one aspect of the ESPI standard. The <value> element, child of the <IntervalReading> element, is defined as Uint48 – an unsigned integer value.
With our current implementation, this will be a problem for net meters, since we are only outputting the net data, which could contain negative values. We could fix our implementation to output the delivered and received data separately - as long that’s what we receive from the meter. There are still meters out there that only record the net usage. Also, we’re wondering if there may be other use cases where the values may be either positive or negative – temperature data, for example.
The CIM Part 9 equivalent of this element defines the value as a string.