Una de las cosas que más me gustó implementar en Home Assistant fue la simulación de presencia. La idea es simple: cuando no estoy en casa, el sistema enciende y apaga luces de manera que desde afuera parezca que sí hay gente.
Lo que parecía simple resultó ser bastante más complejo cuando empecé a pensar en los detalles. No alcanzaba con "encender la cocina al anochecer". Tenía que verse creíble.
La arquitectura: 12 automatizaciones y un boolean
El sistema completo son 12 automatizaciones coordinadas a través de un input_boolean llamado simulacion_presencia. Ese boolean es el interruptor maestro: todas las automatizaciones de simulación chequean su estado antes de ejecutarse.
Cuando salgo de casa, el GPS del celular lo detecta y dispara Presencia - Activar al ausentarse. Pero no de inmediato: hay un delay de 2 horas. Eso evita que el sistema se active por una salida de 20 minutos al almacén. Si vuelvo antes de esas 2 horas, la salida se ignora completamente.
Después de esas 2 horas, el boolean pasa a on y el sistema queda en modo simulación.
La detección de presencia vía GPS
El trigger es el cambio de estado del device_tracker del celular. Home Assistant usa la aplicación móvil para reportar ubicación — el tracker cambia entre home y not_home según si el dispositivo está dentro de la zona configurada alrededor de la finca.
La zona "casa" en HA tiene un radio de 150 metros para evitar falsos positivos por imprecisión del GPS. Con 50 metros había reportes espurios de "salí" mientras estaba en el fondo de la finca. Con 150 metros funciona bien, aunque significa que "llegué a casa" se activa cuando todavía estoy entrando al acceso.
Qué hace exactamente la simulación
El comportamiento varía según el horario:
Al anochecer (~18:30 ART en invierno): se encienden los reflectores del perímetro — los del pozo y el de atrás — junto con las luces del jardín. Al mismo tiempo, se encienden algunas luces internas: cocina, escritorio, velador, y actividad en el galpón.
Durante la noche: una automatización de rotación se ejecuta en intervalos regulares y va cambiando qué luces internas están encendidas. Una vez velador, otra vez escritorio. Simula movimiento dentro de la casa.
A la 01:30 ART: apagado nocturno. Todo se apaga. Las luces exteriores del perímetro se apagan al amanecer.
Si es de día: el sistema no hace nada. Si salgo a las 10 y vuelvo a las 15, la simulación estuvo activa pero sin encender ninguna luz, porque no tenía sentido hacerlo. Esto quedó demostrado en la sesión del 30 de junio.
El kill switch
Cuando vuelvo, la automatización Desactivar al volver apaga el boolean. Esto dispara a su vez el Kill switch, que:
- Desactiva las 5 automatizaciones de simulación
- Las reactiva inmediatamente (para que queden listas para la próxima sesión)
- Apaga las luces internas que haya encendido la simulación
Lo que no hace es apagar las luces exteriores. Si vuelvo a las 20:00, los reflectores y el jardín quedan encendidos hasta las 23:30, que es el horario fijo de apagado. Es un detalle menor que tengo pendiente de corregir — la solución es agregar al kill switch la acción de apagar los grupos light.luces_exteriores y light.luces_alrededor_casa.
Una sesión real: 29 de junio
El 29 de junio tengo un ejemplo completo registrado en el logbook de HA. Salí a las 14:32. A las 16:32 (exactamente 2 horas) se activó la simulación. Al atardecer, a las 18:28, se encendieron los reflectores. A las 18:58 se sumaron parrilla, parque, vivero, entrada casa. La rotación interna corrió a las 19:35 y 20:00, cambiando qué luces estaban prendidas. A las 20:13 volví y el kill switch ejecutó el apagado.
Duración total de la sesión: 3 horas y 41 minutos. Desde afuera, durante ese tiempo, la casa tuvo luces que se movían cada media hora. El sistema funcionó sin intervención.
Una sesión diurna: 30 de junio
El 30 de junio salí a las 10:02 y volví a las 15:06. La simulación se activó a las 12:02 y el kill switch ejecutó a las 15:06. Pero como fue una sesión completamente diurna (el atardecer es recién a las ~18:30), la simulación no hizo absolutamente nada. Ninguna luz se encendió. Eso es correcto — el sistema no tiene acciones configuradas para horario diurno porque no tendría sentido. La casa con luces encendidas de día llama más la atención que sin luces.
Las notificaciones
Hay una automatización adicional que me manda Telegram cada vez que la simulación cambia una luz. Es útil para saber qué está pasando cuando no estoy, pero puede volverse ruidosa: en la sesión del 29 de junio llegaron 8 mensajes en menos de una hora. El problema es que la automatización dispara por cada entidad individual, no por cada rotación. Si en una rotación se apagan 3 luces y se encienden 2, llegan 5 mensajes en segundos.
Lo que hay que hacer es agruparlos en un resumen periódico: "Rotación completada: velador ON, cocina OFF, escritorio ON" — un mensaje por rotación en lugar de uno por entidad.
Lo que falta
El sistema funciona bien para el caso principal, pero hay algunas mejoras que tengo pendientes. La más importante es que el kill switch apague también los exteriores cuando vuelvo antes de las 23:30. La segunda es que la rotación tenga más variedad — hoy alterna entre 2-3 combinaciones de luces, podría ser más aleatoria usando un generador con semilla basada en la hora. La tercera es agregar una variante para cuando hay dos personas en casa y solo vuelve una: el sistema no debería desactivarse si todavía hay alguien ausente.
Por ahora cumple su función principal: que la casa no se vea vacía.
Comentarios
Todavía no hay comentarios. Sé el primero.
Dejá tu comentario
Los comentarios son moderados antes de publicarse.