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.

  • internal_filter_mode (Optional, string): Determines how the internal filter is applied. One of EDGE and PULSE. Defaults to EDGE. In EDGE mode subsequent rising edges are compared and if they fall into an interval lesser than the internal filter value, the last one is discarded. In PULSE mode the rising edge is discarded if any further interrupts are detected before the internal_filter time has passed. In other words, a high pulse must be at least internal_filter long to be counted. This is useful if you are detecting long pulses that may bounces before and/or after the main pulse.

  • 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, ID): 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'
    internal_filter: 100ms
    accuracy_decimals: 3
    filters:
      - multiply: 0.06
    total:
      name: "Electricity Total"
      unit_of_measurement: "kWh"
      accuracy_decimals: 3
      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