Descripción general
El sensor Bayesiano combina varias pistas imperfectas (movimiento, tele, consumo…) y calcula la probabilidad de que algo sea cierto. Pasa a on cuando esa probabilidad supera el umbral que elijas.
Ilustración: NODARA.
Requisitos
- Varias pistas de ocupación, por ejemplo:
binary_sensor.movimiento_salon,media_player.tele_salonysensor.potencia_salon(W).
Crear el ayudante
Puedes crearlo en Ajustes → Dispositivos y servicios → Añadir integración → Bayesiano (Bayesian) o en YAML. En YAML se ven mejor todas las probabilidades juntas:
binary_sensor:
- platform: bayesian
name: "Salón ocupado"
unique_id: salon_ocupado_bayes
prior: 0.3
probability_threshold: 0.8
observations:
- platform: state
entity_id: binary_sensor.movimiento_salon
to_state: "on"
prob_given_true: 0.85
prob_given_false: 0.05
- platform: state
entity_id: media_player.tele_salon
to_state: "playing"
prob_given_true: 0.6
prob_given_false: 0.05
- platform: numeric_state
entity_id: sensor.potencia_salon
above: 80
prob_given_true: 0.7
prob_given_false: 0.2
Ideas de uso
- Salón ocupado aunque estés quieto en el sofá. Es el ejemplo de abajo.
- Alguien duerme en el dormitorio: luces apagadas, móvil cargando, sin movimiento.
- Casa vacía combinando móviles, puertas y consumo.
- Ducha en marcha con humedad, temperatura del baño y consumo del termo.
- Persona en la cocina para encender la campana o la radio.
- Lavadora terminada cuando el consumo baja, la vibración para y la puerta se abre.
Ejemplo de uso
Objetivo: Saber si el salón está ocupado aunque estés quieto en el sofá, cuando el sensor de movimiento ya no detecta nada.
Cómo funciona
priores la probabilidad de partida: si el salón está ocupado un 30 % del tiempo, pon 0.3.- Cada observación dice cómo de probable es ver esa pista si el salón está ocupado (
prob_given_true) y si no lo está (prob_given_false). Cuanto más se separen, más pesa la pista. - Home Assistant combina las pistas con el teorema de Bayes y obtiene una probabilidad final, visible en el atributo
probability. - El sensor pasa a
oncuando esa probabilidad superaprobability_threshold(0.8). - Ajusta los valores mirando el historial: ¿cuántas veces estaba la tele encendida con el salón vacío?
Resultado
Acción
Sin movimiento hace 10 min
Tele en reproducción · 140 WResultado
probability = 0.86
binary_sensor.salon_ocupado = onAcción
Sin movimiento · tele apagada · 15 WResultado
probability = 0.03
binary_sensor.salon_ocupado = off