Pulse Meter Sensor

The pulse meter sensor allows you to count the number and frequency of pulses on any pin. It is intended to be a drop-in replacement for integration sensor, but offering better resolution. It measures the time between rising edges on a pin, for each pulse it outputs the frequency in pulses/min.

# Example configuration entry
sensor:
  - platform: pulse_meter
    pin: 12
    name: "Pulse Meter"

Configuration variables:

  • pin (Required, Pin): The pin to count pulses on.

  • name (Required, string): The name of the sensor.

  • internal_filter (Optional, Time): If a pulse shorter than this time is detected, it’s discarded and no pulse is counted. Defaults to 13us. For S0 pulse meters that are used to meter power consumption 50-100 ms is a reasonable value.

  • timeout (Optional, Time): If we don’t see a pulse for this length of time, we assume 0 pulses/sec. Defaults to 5 min.

  • total (Optional, Sensor): An additional sensor that outputs the total number of pulses counted.

  • All other options from Sensor.

Converting units

The sensor defaults to units of “pulses/min”. You can change this by using Sensor Filters. For example, if you’re using the pulse meter with a photodiode to count the light pulses on a power meter that outputs 1000 pulses per kWh, you can use the following to output instantaneous usage in kW:

# Example configuration entry
sensor:
  - platform: pulse_meter
    pin: 12
    unit_of_measurement: 'kW'
    name: 'Electricity Usage'
    filters:
      - multiply: 0.06

Counting total pulses

When the total sensor is configured, pulse_meter also reports the total number of pulses measured. When used on a power meter, this can be used to measure the total consumed energy in kWh.

# Example configuration entry
sensor:
  - platform: pulse_meter
    pin: 12
    unit_of_measurement: 'kW'
    name: 'Electricity Usage'
    filters:
      - multiply: 0.06
    total:
      name: "Electricity Total"
      unit_of_measurement: "kWh"
      accuracy_decimals: 0
      filters:
        - multiply: 0.001

(Re)Setting the total pulse count

Using this action, you are able to reset/set the total pulse count. This can be useful if you would like the total sensor to match what you see on your meter you are trying to match.

on_...:
  then:
    - pulse_meter.set_total_pulses:
        id: pulse_meter_id
        value: 12345

Note

This value is the raw count of pulses, and not the value you see after the filters are applied.

See Also