10.4.1 Overview
The Metering function set provides interfaces to exchange commodity measurement information such as reading types and meter readings between HAN devices. Examples of Meter Flows and XML payloads are listed in Annex C.
Each Metering function set server may have a UsagePointList resource containing resources for local meters and metering data mirrored for other devices. One possible scenario is that two electric meters exist in a HAN. Both have a UsagePoint resource. Electric Meter #1 (e.g., ESI integrated) has a UsagePoint list which contains for example /upt/0 (meter itself) and /upt/1 (mirrored gas meter). Electric Meter #2 also has ESI integrated and has, for example, a /upt list which contains only one instance /upt/0 (meter itself) but no other meter mirrored to it. Since both UsagePoints are visible, a HAN device that does service discovery will find both UsagePoint servers and it then has to decide which UsagePoint server to query based on server’s information. Note that although there are two /upt/0 instances in this case, they are two different servers with different hostnames and/or IP addresses.
10.4.2 List ordering
Table 39 —Metering list ordering
Resource name | Primary key | Secondary key | Tertiary key |
UsagePoint | mRID (descending) | N/A | N/A |
MeterReading | mRID (descending) | N/A | N/A |
ReadingSet | timePeriod.start (descending) | mRID (descending) | N/A |
Reading | localID (ascending) | consumptionBlock (ascending) | touTier (ascending) |
10.4.3 Application guidelines/behavior
The Metering function set resource hierarchy starts with a list of Usage Points. A Usage Point is an abstraction for a point of exchange. This could be represented as a physical meter or a fixed load like a street lamp or a virtual metering point as accomplished with transformer or line loss compensation algorithms. Each Usage Point then has one or more Meter Readings. Meter Readings serve as an aggregation for the ReadingType, a possible Reading and possible Reading Sets. The ReadingType is constructed based on subsets and extensions of IEC 61968-9 Annex C, Reading Types. Only relevant IEC fields are listed in the XML Schema described in the supplemental material of IEEE Std 2030.5 and IEEE Std 2030.5 UML model. It may be beneficial for implementers to obtain a copy of this IEC document in order to better understand the meanings and uses of the IEC 61968-9 Reading Types. See the following text for uses of the ReadingSets and Readings.
In the following text, the terms current and present refer to the values at the time the resource is read. In terms of ReadingSets, the terms refer to the ReadingSet that is being built/filled at the time of reading. While a ReadingSet is in this state, ReadingSet.timePeriod.start SHALL be when the ReadingSet starts recording its first value and that ReadingSet.timePeriod.duration SHALL grow each time the ReadingSet is updated. The ReadingSet.mRID field SHALL be assigned a value of 0xFFFFFFFFFFFFFFFFFFFFFFFF[XXXXXXXX] (Where [XXXXXXXX] is replaced by the
manufacturer’s PEN) while the data is being recorded and changed to an appropriate mRID when the ReadingSet is complete.
A Metering function set instance that provides instantaneous demand data SHALL serve a Meter Reading resource (and subordinate resources) with the following properties:
SHALL contain a ReadingTypeLink element that points to a ReadingType resource that matches the InstantaneousDemand definition from Table 40.
SHALL contain a ReadingLink element that points to a Reading resource that contains the instantaneous demand value.
SHALL not contain a ReadingSetListLink element.
A Metering function set instance that provides summation delivered data SHALL serve a Meter Reading resource (and subordinate resources) with the following properties:
SHALL contain a ReadingTypeLink element that points to a ReadingType resource that matches the SummationDelivered definition from Table 40.
The ReadingType resource SHALL specify the number of TOU tiers and/or consumption blocks, if any, that the metering instance provides.
SHALL contain a ReadingSetListLink element that points to a ReadingSetList resource.
When metering data is present, the ReadingSetList SHALL contain at least one ReadingSet resource, which corresponds to the present summation delivered data.
The ReadingSet resource SHALL contain a ReadingListLink element that points to a ReadingList resource. The ReadingList resource SHALL contain (number of TOU tiers
+ 1) multiplied by (number of consumption blocks + 1) Reading resources. Note that if the number of TOU tiers is 1, using a value of 1 instead of 0 will be less efficient and is DISCOURAGED.
The Reading resources in the ReadingList SHALL correspond to the summation delivered value for each combination of consumptionBlock = 0..(number of consumption blocks) and touTier = 0..(number of TOU tiers).
The Reading for (consumptionBlock = 0, touTier = 0) SHALL correspond to the total summation delivered.
The Reading for (consumptionBlock = x > 0, touTier = 0) SHALL correspond to the Block x summation delivered (across all TOU tiers).
The Reading for (consumptionBlock = 0, touTier = y > 0) SHALL correspond to the TOU Tier y summation delivered (across all consumption blocks).
The Reading for (consumptionBlock = x > 0, touTier = y > 0) SHALL correspond to the consumptionBlock x, touTier y summation delivered.
SHALL contain a ReadingLink to a Reading resource that contains the present summation delivered, which is semantically equivalent to the Reading for (consumptionBlock = 0, touTier = 0) for the present ReadingList.
A Metering function set instance that provides summation received data, maximum demand delivered data, maximum demand received data, and/or other reading type data that utilizes TOU tiers and/or consumption blocks SHALL serve a Meter Reading resource (and subordinate resources) as per the rules for Summation Delivered above, but with the Reading Type resource matching the appropriate definition in Table 40, and with the Reading values corresponding to the appropriate data type.
A Metering function set instance that provides interval data SHALL serve a Meter Reading resource (and subordinate resources) with the following properties:
a) SHALL contain a ReadingTypeLink element that points to a ReadingType resource that matches an Interval data definition from Table 40.
1) The ReadingType resources SHALL specify the intervalLength that is the default for the intervals contained in the ReadingList resource.
b) SHALL contain a ReadingSetListLink element that points to a ReadingSetList resource.
1) When metering data is present, the ReadingSetList SHALL contain at least one ReadingSet source, which MAY correspond to the present Interval Block data (the one currently being filled).
i) The ReadingSet resource SHALL contain a ReadingListLink element that points to a ReadingList resource. The ReadingList resource SHALL contain Reading resources each of which represents a portion (interval) of the timePeriod of the ReadingSet.
ii) If the duration in the timePeriod of the Reading is not equal to the intervalLength specified in the Reading Type the timePeriod SHALL be included in the Reading.
c) SHALL NOT contain a ReadingLink resource.
Table 40 provides a list of common Reading Type Definitions with related fields listed.
IEEE Std 2030.5-2018
IEEE Standard for Smart Energy Profile Application Protocol
Table 40 —Reading types
ReadingType Element | accumulationBehavior | calorificValue | commodity | conversionFactor | dataQualifier | flowDirection | intervalLength | kind | numberOfConsumptionBlocks | numberOfTouTiers | phase | powerOfTenMultiplier | subIntervalLength | suppyLimit | tieredConsumptionBlocks | uom |
Instantaneous demand | 12 | 1 | 1 | E | 8 | O | E | E | 38 | |||||||
Summation delivered | 9 | 1 | 1 | E | 12 | O | O | O | E | 72 | ||||||
Summation received | 9 | 1 | 19 | E | 12 | O | O | O | E | 72 | ||||||
Maximum demand delivered | 6 | 1 | 8 | 1 | O | 8 | O | O | O | E | 38 | |||||
Maximum demand received | 6 | 1 | 8 | 19 | O | 8 | O | O | O | E | 38 | |||||
Intervals delivered | 4 | 1 | 1 | O | 12 | O | E | E | 72 | |||||||
Intervals received | 4 | 1 | 19 | O | 12 | O | E | E | 72 | |||||||
Blank cells indicate not used for the given ReadingType name. May be used for other ReadingTypes. “E” indicates they are not to be used for this class of ReadingType no matter commodity. “O” indicates that there could be value specified. Note the values in this table are provided as examples of possible electricity meter ReadingTypes. A metering instance must set these values as appropriate for its commodities. For example, SummationDelivered may apply to gas or water if the commodity is “NaturalGas” with uom value of 42(m3) or “PotableWater” with uom value of 128 (U.S. gallon) or 134 (liters). Other commodities are to indicate appropriate UOMs. A combination of uom and powerOfTenMultiplier are used to represent units with different magnitudes, for example kWh would be represented as uom of 72 and a powerOfTenMultiplier of 3. As for fractional Wh readings, 0.012 Wh can be expressed as powerOfTenMultiplier = -3, uom = 72, and value = 12. Relevant UOMs and other reading type fields are listed in the XML schema described in the supplemental material of IEEE Std 2030.5. | ||||||||||||||||
10.4.4 LogEvents
This subclause includes definitions of all LogEvents that may be raised by the Metering function set. The LogEvent names and codes are summarized in Table 41.
Table 41 —Metering LogEvents
LogEvent name | LogEvent code | LogEvent description |
UPT_CHECK_METER | 0x00 | SHOULD be issued when check meter alarm occurs |
UPT_CHECK_METER_RTN | 0x01 | SHOULD be issued when check meter alarm clears |
UPT_TAMPER_DETECT | 0x02 | SHOULD be issued when a tampering is detected |
UPT_TAMPER_DETECT_RTN | 0x03 | SHOULD be issued when a tampering detect clears |
UPT_POWER_QUALITY | 0x04 | SHOULD be issued when power quality alarm occurs. It is a generic power quality event code. |
UPT_POWER_QUALITY_RTN | 0x05 | SHOULD be issued when power quality alarm clears |
UPT_ LEAK_DETECT | 0x06 | SHOULD be issued when a leak is detected |
UPT_LEAK_DETECT_RTN | 0x07 | SHOULD be issued when a leak detect clears |
UPT_SERVICE_DISCONNECT | 0x08 | SHOULD be issued when service is disconnected |
UPT_SERVICE_CONNECT | 0x09 | SHOULD be issued when service is connected |
UPT_SERVICE_LIMITED | 0x0A | SHOULD be issued when service limited alarm occurs |
UPT_SERVICE_LIMITED_RTN | 0x0B | SHOULD be issued when service limited alarm clears |
UPT_LOW_VOLTAGE_L1 | 0x0C | SHOULD be issued when low voltage L1 occurs |
UPT_LOW_VOLTAGE_L1_RTN | 0x0D | SHOULD be issued when low voltage L1 clears |
UPT_HIGH_VOLTAGE_L1 | 0x0E | SHOULD be issued when high voltage L1 occurs |
UPT_HIGH_VOLTAGE_L1_RTN | 0x0F | SHOULD be issued when high voltage L1 clears |
UPT_LOW_VOLTAGE_L2 | 0x10 | SHOULD be issued when low voltage L2 occurs |
UPT_LOW_VOLTAGE_L2_RTN | 0x11 | SHOULD be issued when low voltage L2 clears |
UPT_HIGH_VOLTAGE_L2 | 0x12 | SHOULD be issued when high voltage L2 occurs |
UPT_HIGH_VOLTAGE_L2_RTN | 0x13 | SHOULD be issued when high voltage L2 clears |
UPT_LOW_VOLTAGE_L3 | 0x14 | SHOULD be issued when low voltage L3 occurs |
UPT_LOW_VOLTAGE_L3_RTN | 0x15 | SHOULD be issued when low voltage L3 clears |
UPT_HIGH_VOLTAGE_L3 | 0x16 | SHOULD be issued when high voltage L3 occurs |
UPT_HIGH_VOLTAGE_L3_RTN | 0x17 | SHOULD be issued when high voltage L3 clears |
UPT_OVER_CURRENT_FORWARD_L1 | 0x18 | SHOULD be issued when overcurrent L1 occurs in the forward (consumed by premises) direction |
UPT_OVER_CURRENT_FORWARD_L1_RTN | 0x19 | SHOULD be issued when overcurrent L1 clears in the forward (consumed by premises) direction |
UPT_OVER_CURRENT_FORWARD_L2 | 0x1A | SHOULD be issued when overcurrent L2 occurs in the forward (consumed by premises) direction |
UPT_OVER_CURRENT_FORWARD_L2_RTN | 0x1B | SHOULD be issued when overcurrent L2 clears in the forward (consumed by premises) direction |
UPT_OVER_CURRENT_FORWARD_L3 | 0x1C | SHOULD be issued when overcurrent L3 occurs in the forward (consumed by premises) direction |
UPT_OVER_CURRENT_FORWARD_L3_RTN | 0x1D | SHOULD be issued when overcurrent L3 clears in the forward (consumed by premises) direction |
UPT_FREQUENCY_TOO_LOW_L1 | 0x1E | SHOULD be issued when frequency too low L1 |
UPT_FREQUENCY_TOO_LOW_L1_RTN | 0x1F | SHOULD be issued when frequency too low L1 clears |
UPT_FREQUENCY_TOO_HIGH_L1 | 0x20 | SHOULD be issued when frequency too high L1 |
UPT_FREQUENCY_TOO_HIGH_L1_RTN | 0x21 | SHOULD be issued when frequency too high L1 clears |
UPT_FREQUENCY_TOO_LOW_L2 | 0x22 | SHOULD be issued when frequency too low L2 |
UPT_FREQUENCY_TOO_LOW_L2_RTN | 0x23 | SHOULD be issued when frequency too low L2 clears |
UPT_FREQUENCY_TOO_HIGH_L2 | 0x24 | SHOULD be issued when frequency too high L2 |
UPT_FREQUENCY_TOO_HIGH_L2_RTN | 0x25 | SHOULD be issued when frequency too high L2 clears |
Table 41—Metering LogEvents (continued)
LogEvent name | LogEvent code | LogEvent description |
UPT_FREQUENCY_TOO_LOW_L3 | 0x26 | SHOULD be issued when frequency too low L3 |
UPT_FREQUENCY_TOO_LOW_L3_RTN | 0x27 | SHOULD be issued when frequency too low L3 clears |
UPT_FREQUENCY_TOO_HIGH_L3 | 0x28 | SHOULD be issued when frequency too high L3 |
UPT_FREQUENCY_TOO_HIGH_L3_RTN | 0x29 | SHOULD be issued when frequency too high L3 clears |
UPT_GROUND_FAULT | 0x2A | SHOULD be issued when ground fault occurs |
UPT_GROUND_FAULT_RTN | 0x2B | SHOULD be issued when ground fault clears |
UPT_BURST_DETECT | 0x2C | SHOULD be issued when burst detect alarm occurs |
UPT_BURST_DETECT_RTN | 0x2D | SHOULD be issued when burst detect alarm clears |
UPT_PRESSURE_TOO_LOW | 0x2E | SHOULD be issued when pressure too low |
UPT_PRESSURE_TOO_LOW_RTN | 0x2F | SHOULD be issued when pressure too low clears |
UPT_PRESSURE_TOO_HIGH | 0x30 | SHOULD be issued when pressure too high |
UPT_PRESSURE_TOO_HIGH_RTN | 0x31 | SHOULD be issued when pressure too high clears |
UPT_FLOW_SENSOR_COMMUNICATION_ ERROR | 0x32 | SHOULD be issued when flow sensor communication error occurs |
UPT_FLOW_SENSOR_COMMUNICATION_ ERROR_RTN | 0x33 | SHOULD be issued when flow sensor communication error clears |
UPT_FLOW_SENSOR_MEASUREMENT_ FAULT | 0x34 | SHOULD be issued when flow sensor measurement fault occurs |
UPT_FLOW_SENSOR_MEASUREMENT_ FAULT_RTN | 0x35 | SHOULD be issued when flow sensor measurement fault clears |
UPT_FLOW_SENSOR_REVERSE_FLOW | 0x36 | SHOULD be issued when reverse flow is detected |
UPT_FLOW_SENSOR_REVERSE_FLOW _RTN | 0x37 | SHOULD be issued when reverse flow clears |
UPT_FLOW_SENSOR_AIR_DETECT | 0x38 | SHOULD be issued when flow sensor air detect alarm occurs |
UPT_FLOW_SENSOR_AIR_DETECT_RTN | 0x39 | SHOULD be issued when flow sensor air detect alarm clears |
UPT_PIPE_EMPTY | 0x3A | SHOULD be issued when pipe empty alarm occurs |
UPT_PIPE_EMPTY_RTN | 0x3B | SHOULD be issued when pipe empty alarm clears |
UPT_INLET_TEMPERATURE_SENSOR_ FAULT | 0x3C | SHOULD be issued when inlet temperature sensor fault |
UPT_INLET_TEMPERATURE_SENSOR_ FAULT_RTN | 0x3D | SHOULD be issued when inlet temperature sensor fault clears |
UPT_OUTLET_TEMPERATURE_SENSOR_ FAULT | 0x3E | SHOULD be issued when outlet temperature sensor fault |
UPT_OUTLET_TEMPERATURE_SENSOR_ FAULT_RTN | 0x3F | SHOULD be issued when outlet temperature sensor fault clears |
UPT_OVER_CURRENT_REVERSE_L1 | 0x40 | SHOULD be issued when overcurrent L1 occurs in the reverse (supplied by premises) direction |
UPT_OVER_CURRENT_REVERSE_L1_RTN | 0x41 | SHOULD be issued when overcurrent L1 clears in the reverse (supplied by premises) direction |
UPT_OVER_CURRENT_REVERSE_L2 | 0x42 | SHOULD be issued when overcurrent L2 occurs in the reverse (supplied by premises) direction |
UPT_OVER_CURRENT_REVERSE_L2_RTN | 0x43 | SHOULD be issued when overcurrent L2 clears in the reverse (supplied by premises) direction |
UPT_OVER_CURRENT_REVERSE_L3 | 0x44 | SHOULD be issued when overcurrent L3 occurs in the reverse (supplied by premises) direction |
UPT_OVER_CURRENT_REVERSE_L3_RTN | 0x45 | SHOULD be issued when overcurrent L3 clears in the reverse (supplied by premises) direction |