# `Grizzly.ZWave.Commands.MeterReport`
[🔗](https://github.com/smartrent/grizzly/blob/v9.1.4/lib/grizzly/zwave/commands/meter_report.ex#L1)

This module implements the command METER_REPORT of the COMMAND_CLASS_METER command ,
which is used to advertise the current meter reading at the sending node.

If either the `:rate_type` or `:delta_time` param is present, the command will be
encoded as version 5. If neither are present, it will be encoded as version 1.

## Params

  * `:meter_type` - the type of metering physical unit being reported (required)
  * `:scale` - the unit used (required)
  * `:value` - the value being reported (required)
  * `:rate_type` - the type of rate being reported (optional)
  * `:previous_value` - the previous reported value (optional)
  * `:delta_time` - the time between the previous report and the current report (optional)

# `meter_scale`

```elixir
@type meter_scale() :: atom()
```

# `meter_type`

```elixir
@type meter_type() :: :electric | :gas | :water | :heating | :cooling
```

# `param`

```elixir
@type param() ::
  {:meter_type, meter_type()}
  | {:scale, meter_scale()}
  | {:value, number()}
  | {:rate_type, rate_type()}
  | {:delta_time, number()}
  | {:previous_value, number() | :unknown}
```

# `rate_type`

```elixir
@type rate_type() :: :default | :import | :export
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
