2.2.58. Meter Command Class, version 2¶
The Meter Command Class is used to advertise instantaneous and accumulated numerical readings.
The Command Class is intended for accumulated values in physical units from a water meter or metering device (gas, electric etc.) and thereby enabling some automatic meter reading capabilities.
2.2.58.1. Compatibility Considerations¶
The Meter Command Class, version 2 introduces the following functionalities:
Commands to interview supporting nodes Meter capabilities
New field ‘Previous Meter Value’ added to the Meter Report indicating consumption since previous report.
An optional Meter Reset Command for resetting accumulated consumption.
New meter scales have been added
Commands and fields not mentioned in this version MUST remain unchanged from version 1.
Supporting nodes MAY support several scales. A manufacturer MUST define which scale is the default scale and it MUST be described in the product manual.
2.2.58.2. Meter Supported Get Command¶
This command is used to request the supported scales in a sub meter.
The Meter Supported Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing.
A receiving node MUST NOT return a response if this command is received via multicast addressing. The Z-Wave Multicast frame, the broadcast NodeID and the Multi Channel multi-End Point destination are all considered multicast addressing methods.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_METER (0x32) |
|||||||
Command = METER_SUPPORTED_GET (0x03) |
|||||||
2.2.58.3. Meter Supported Report Command¶
This command is used to advertise the supported scales and capabilities of the sending node.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_METER (0x32) |
|||||||
Command = METER_SUPPORTED_REPORT (0x04) |
|||||||
Meter Reset |
Reserved |
Meter Type |
|||||
Reserved |
Scale Supported |
||||||
Reserved
This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.
Meter Reset (1 bit)
This field is used to indicate if the sending node supports the Meter Reset Command.
The value 1 MUST indicate that the Meter Reset Command is supported.
The value 0 MUST indicate that the Meter Reset Command is not supported and MUST be ignored by the sending node.
Meter Type (5 bits)
This field is used to advertise the implemented meter type by the sending node.
This field MUST be encoded according to Table 2.369.
Scale Supported (4 bits)
This field is used to advertise the supported scales of the sending node.
The bit value ‘1’ MUST indicate support for the actual scale.
The bit value ‘0’ MUST indicate that there is no support for the actual scale.
This MUST be interpreted as a bitmask in combination with the Meter Type field and MUST be according to Table 2.367.
2.2.58.4. Meter Reset Command¶
This command is used to reset all accumulated values stored at the receiving node.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_METER (0x32) |
|||||||
Command = METER_RESET (0x05) |
|||||||
A supporting node MUST reset all its supported accumulated values when receiving this command if it advertises support for Meter Reset in the Meter Supported Report Command.
A supporting node MUST ignore this command if it advertises no support for Meter Reset in the Meter Supported Report Command
2.2.58.5. Meter Get Command¶
This command is used to request the current meter reading to a supporting node .
The Meter Report Command MUST be returned in response to this command if the requested scale is supported.
This command MUST NOT be issued via multicast addressing.
A receiving node MUST NOT return a response if this command is received via multicast addressing. The Z-Wave Multicast frame, the broadcast NodeID and the Multi Channel multi-End Point destination are all considered multicast addressing methods.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_METER (0x32) |
|||||||
Command = METER_GET (0x01) |
|||||||
Reserved |
Scale |
Reserved |
|||||
Reserved
This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.
Scale (2 bits)
This field is used to request an actual scale for the meter reading.
This field MUST be encoded according to Table 2.371.
If this field is not present or set to 0x00, a supporting node MUST return a report using its default scale.
A supporting node MUST ignored this command if this field is set to a non-supported scale.
For improved compatibility with version 1 controlling nodes, a supporting node receiving this command without this field (version 1 format) SHOULD either return a version 1 Report Command or a Report Command with the Rate Type field set to 0x00
2.2.58.6. Meter Report Command¶
This command is used to advertise the current meter reading at the sending node.
This command MUST NOT be issued using broadcast addressing.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_METER (0x32) |
|||||||
Command = METER_REPORT (0x02) |
|||||||
Res |
Rate Type |
Meter Type |
|||||
Precision |
Scale |
Size |
|||||
Meter Value 1 |
|||||||
… |
|||||||
Meter Value N |
|||||||
Delta Time 1 |
|||||||
Delta Time 2 |
|||||||
Previous Meter Value 1 (optional) |
|||||||
… |
|||||||
Previous Meter Value N (optional) |
|||||||
Fields not described below MUST remain unchanged from version 1.
Res
This field MUST be set to 0 by a sending node and MUST be ignored by a receiving node.
Rate Type (2 bits)
This field is used to indicate if the actual reading advertises import or export values.
The Import value for a meter reading MUST indicate that the reading represents a consumed amount.
The Export value for a meter reading MUST indicate that the reading represents a produced amount.
This field MUST be encoded according to Table 2.356.
Value |
Rate Type |
Version |
|---|---|---|
0x00 |
Unspecified |
1 |
0x01 |
Import (consumed) |
2 |
0x02 |
Export (produced) |
2 |
0x03 |
Reserved |
- |
Meter Type (5 bits)
This field is used to specify what type of metering physical unit is being reported.
This field MUST be encoded according to Table 2.369.
Precision (3 bits)
This field MUST indicate how many decimal places are included in the Meter Value and Previous Meter Value fields. For example, the Meter Value set to 1025 and this field set to 1 MUST be interpreted as equal to 102.5.
The value of the precision field MUST be in the range 0..7.
Scale (2 bits)
This field MUST advertise the unit used for the Meter Value and Previous Meter Value fields.
The defined scales and their minimum required version are listed in Table 2.370. A node MUST NOT support a scale associated with a higher version than the version it supports.
This field MUST be encoded according to Table 2.371.
Size (3 bits)
This field MUST indicate the length in bytes of the Meter Value and Previous Meter Value fields.
This field MUST be set to 1, 2 or 4.
Meter Value (N bytes)
This field is used to advertise the actual meter reading.
The length of this field in bytes MUST be according to the Size field.
The first byte MUST be the most significant byte.
The field MUST be encoded using signed representation and comply with Table 2.12.
Delta Time (16 bits)
This field MUST advertise the elapsed time in seconds between the readings advertised by the Meter Value and the Previous Meter Value fields. This field MUST be according to Table 2.357.
Value |
Description |
|---|---|
0x0000 |
No Previous Meter Value field is included in this command |
0x0001..0xFFFE |
1..65534 seconds have elapsed between reporting the Previous Meter Value reading and the current meter reading |
0xFFFF |
Unknown elapsed time between the Previous Meter Value reading and the current meter reading |
Previous Meter Value (N bytes)
This field is used to advertise the last issued meter reading for the actual scale.
This field MUST be omitted if the Delta Time field is set to the value 0.
The length of this field in bytes MUST be according to the Size field if the Delta Time field is set to a non-zero value.
The length of this field in bytes MUST be according to the Size field.
The first byte MUST be the most significant byte.
The field MUST be encoded using signed representation and comply with Table 2.12.