Binary Sensor Map

The binary_sensor_map sensor platform allows you to map multiple binary sensor to an individual value. Depending on the state of each binary sensor, its associated configured parameters, and this sensor’s mapping type, the binary_sensor_map publishes a single numerical value.

Use this sensor to combine one or more binary sensors’ ON or OFF states into a numerical value. Some possible use cases include touch devices and determining Bayesian probabilities for an event.

This platform supports three measurement types: BAYESIAN, GROUP, and SUM. You need to specify your desired mapping with the type: configuration value.

When using the BAYESIAN type, add your binary sensors as observations to the binary sensor map. If you use the GROUP or SUM type, add your binary sensors as channels. The maximum amount of observations/channels supported is 64.

  • BAYESIAN This type replicates Home Assistant’s Bayesian sensor. Based on the observation states, this sensor returns the Bayesian probability of a particular event occurring. The configured prior: probability is the likelihood that the Bayesian event is true, ignoring all external influences. Every observation has its own prob_given_true and prob_given_false parameters. The prob_given_true: value is the probability that the observation’s binary sensor is ON when the Bayesian event is true. The prob_given_false: value is the probability that the observation’s binary sensor is ON when the Bayesian event is false. Use an Analog Threshold Binary Sensor to convert this sensor’s probability to a binary ON or OFF by setting an appropriate threshold.

# Example configuration entry
sensor:
  - platform: binary_sensor_map
    id: bayesian_prob
    name: 'Bayesian Event Probability'
    type: bayesian
    prior: 0.4
    observations:
      - binary_sensor: binary_sensor_0
        prob_given_true: 0.9
        prob_given_false: 0.2
      - binary_sensor: binary_sensor_1
        prob_given_true: 0.6
        prob_given_false: 0.1

binary_sensor:
  # If the Bayesian probability is greater than 0.6,
  # then predict the event is occuring
  - platform: analog_threshold
    name: "Bayesian Event Predicted State"
    sensor_id: bayesian_prob
    threshold: 0.6
  # ...
  • GROUP Each channel has its own value. The sensor publishes the average value of all active binary sensors or NAN if no sensors are active.

# Example configuration entry
sensor:
  - platform: binary_sensor_map
    id: group_0
    name: 'Group Map 0'
    type: GROUP
    channels:
      - binary_sensor: touchkey0
        value: 0
      - binary_sensor: touchkey1
        value: 10
      - binary_sensor: touchkey2
        value: 20
      - binary_sensor: touchkey3
        value: 30

# Example binary sensors using MPR121 component
mpr121:
  id: mpr121_first
  address: 0x5A

binary_sensor:
  - platform: mpr121
    channel: 0
    id: touchkey0
  # ...
  • SUM Each channel has its own value. The sensor publishes the sum of all the active binary sensors values or 0 if no sensors are active.

# Example configuration entry
sensor:
  - platform: binary_sensor_map
    id: group_0
    name: 'Group Map 0'
    type: sum
    channels:
      - binary_sensor: bit0
        value: 1
      - binary_sensor: bit1
        value: 2
      - binary_sensor: bit2
        value: 4
      - binary_sensor: bit3
        value: 8

binary_sensor:
  - platform: gpio
    pin: GPIOXX
    id: bit0

  - platform: gpio
    pin: GPIOXX
    id: bit1

  - platform: gpio
    pin: GPIOXX
    id: bit2

  - platform: gpio
    pin: GPIOXX
    id: bit3
  # ...

Configuration variables:

  • type (Required, string): The sensor type. Should be one of: BAYESIAN, GROUP, or SUM.

  • channels (Required for GROUP or SUM types): A list of channels that are mapped to certain values.

    • binary_sensor (Required): The id of the binary sensor to add as a channel for this sensor.

    • value (Required): The value this channel should report when its binary sensor is active.

  • prior (Required for BAYESIAN type, float between 0 and 1): The prior probability of the event.

  • observations (Required for BAYESIAN type): A list of observations that influence the Bayesian probability of the event.

    • binary_sensor (Required): The id of the binary sensor to add as an observation.

    • prob_given_true (Required, float between 0 and 1): Assuming the event is true, the probability this observation is on.

    • prob_given_false (Required, float between 0 and 1): Assuming the event is false, the probability this observation is on.

  • All other options from Sensor.

See Also