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.

Table 2.351 Meter Supported Get Command

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.

Table 2.352 Meter Supported Report Command

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.

Table 2.353 Meter Reset Command

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.

Table 2.354 Meter Get Command, version 2

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.

Table 2.355 Meter Report Command, version 2

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.

Table 2.356 Meter Report::Rate Type encoding

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.

Table 2.357 Meter Report v2::Delta Time encoding

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.