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 configuredprior:
probability is the likelihood that the Bayesian event is true, ignoring all external influences. Every observation has its ownprob_given_true
andprob_given_false
parameters. Theprob_given_true:
value is the probability that the observation’s binary sensor isON
when the Bayesian event istrue
. Theprob_given_false:
value is the probability that the observation’s binary sensor isON
when the Bayesian event isfalse
. Use an Analog Threshold Binary Sensor to convert this sensor’s probability to a binaryON
orOFF
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 ownvalue
. The sensor publishes the average value of all active binary sensors orNAN
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 ownvalue
. The sensor publishes the sum of all the active binary sensors values or0
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
, orSUM
.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.