Configuración de seguridad en hogares de Ucrania que usa Home Assistant ante ataques con misiles y drones
(denysdovhan.com)- En medio de la amenaza constante de ataques aéreos en Ucrania, Home Assistant se usa como un sistema de alertas de seguridad en casa que envía información sobre la aproximación de misiles y drones al teléfono y a los altavoces
- Como una simple sirena antiaérea no basta para evaluar la situación, se separan en distintos niveles de riesgo el despegue de MiG-31K, drones suicidas, misiles balísticos, misiles de crucero y ataques combinados
- La integración incorporada Ukraine Alarm monitorea las alertas antiaéreas de todo el país y solo activa alertas críticas e indicaciones por altavoz inteligente cuando hay familiares en Kyiv
- Los canales de monitoreo en Telegram se revisan cada 5 segundos con HA Multiscrape, y detectan ataques inminentes y peligro directo mediante palabras clave como despegue de Tu-95, Kyiv, nombres de barrios y frases de evacuación
- Cuando se detecta peligro directo, se activa de inmediato una alerta al volumen máximo en el teléfono y un aviso en el HomePod del dormitorio para moverse a un refugio detrás de dos paredes, como el baño
Situación de los ataques aéreos en Ucrania y niveles de riesgo
- Desde la invasión total de Rusia en 2022, Ucrania recibe a diario ataques con distintos tipos de armas, excepto nucleares, y Home Assistant se usa para avisar sobre amenazas en aproximación
- Las sirenas antiaéreas pueden sonar varias veces al día, así que ir al refugio cada vez detiene por completo la vida cotidiana
- Mucha gente, cuando suena la sirena, revisa en el teléfono cuál es el nivel de riesgo real
- En apps como alerts.in.ua y en canales de Telegram consultan el tipo de amenaza, la trayectoria de los misiles y si existe peligro directo
- El riesgo de ataque aéreo se divide en varios tipos
- Despegue de MiG-31K: puede ocurrir varias veces al día, y el MiG-31K puede portar misiles hipersónicos Kh-47M2 Kinzhal. Como no se puede predecir si realmente los lleva, mucha gente asume ese nivel de riesgo
- Ataque con drones suicidas: suele realizarse con drones iraníes Shahed 136; aunque la mayoría sean derribados, siguen siendo peligrosos y atemorizantes. Por el sonido del motor, les dicen “mopeds” o “lawn-mowers”
- Ataque con misiles balísticos: los misiles balísticos como el 9K720 Iskander son extremadamente rápidos, cerca de 2 km/s, y el tiempo para esconderse puede ser de apenas 10 minutos. La forma más rápida es ocultarse detrás de dos paredes, como en un pasillo o baño
- Ataque con misiles de crucero: los misiles de crucero como Kalibr son relativamente lentos y vuelan como aviones, pero recorren largas distancias y pueden llegar a cualquier parte del país
- El tipo más peligroso es el ataque combinado
- Primero agotan la defensa aérea con drones y misiles de crucero, y después siguen golpes balísticos o hipersónicos
- Normalmente ocurre durante la noche, alrededor de las 4 a. m.
Monitoreo de alertas antiaéreas con Home Assistant
- La integración incorporada Ukraine Alarm de Home Assistant monitorea el sistema nacional de alertas antiaéreas
- Enciende y apaga sensores de seguridad dentro de Home Assistant
- Ante cualquier tipo de riesgo, envía una alerta crítica y hace que un altavoz inteligente reproduzca un mensaje
- La automatización está configurada para que, aunque las sirenas de la calle suenen en toda la ciudad, dentro de casa uno se despierte con seguridad y pueda revisar la situación
- La automatización de la sirena antiaérea de Kyiv usa como disparador el cambio de estado de
binary_sensor.alerts_kyiv_air- Si pasa de
offaon, usa “Air Alert goes off!” - Si pasa de
onaoff, usa “It is safe now!” - Solo se ejecuta cuando
sensor.family_in_kyivestá enon, así que funciona únicamente cuando alguien está en Kyiv
- Si pasa de
- La alerta se ejecuta mediante
script.announcement- Con
force_speak: truehace que hable incluso en modo no molestar - La notificación push se configura con
critical: 1y volumen0.75
- Con
Scraping de canales de Telegram
- Durante los ataques aéreos, los canales de Telegram ofrecen actualizaciones en tiempo real sobre el riesgo, las trayectorias de vuelo y el tipo de ataque
- En vez de mirar el teléfono constantemente para decidir si hay peligro directo o si todavía se puede dormir unas horas, esa tarea se delega a Home Assistant
- Se aclara que, si estás en Ucrania, las advertencias oficiales indican que debes ir al refugio y que esta configuración no debe seguirse como guía de acción
- Para el scraping se usa la integración personalizada HA Multiscrape
- También existe la integración incorporada scrape de Home Assistant, pero tiene limitaciones porque hay que crear varios sensores desde un solo scrape y manejar listas de datos
- Se extrae la página web de Telegram como
https://t.me/s/war_monitor, se lee la lista.js-message_texty se usa el mensaje más reciente para decidir sensores y atributos
Detección de ataque inminente por despegue de Tu-95
- Los misiles de crucero normalmente los transportan y lanzan bombarderos Tu-95
- El Tu-95 vuela unas 3 horas hasta el punto de lanzamiento de misiles, y después del lanzamiento los misiles tardan aproximadamente entre 1 y 2 horas en llegar a Kyiv
- Durante ese tiempo se prepara un refugio como el baño
- Se reúnen documentos y se puede dormir unas horas antes de que empiece el ataque
- Esta situación suele darse por la tarde y significa que esa noche podría haber un ataque masivo con misiles
- El sensor hace scraping de la lista de mensajes del canal de Telegram cada 5 segundos
- Convierte el mensaje más reciente a minúsculas para revisarlo
- Busca combinaciones específicas de palabras equivalentes a “take off”, “plane” y “tu-95”
- El mensaje más reciente se guarda en el atributo
latest_message
- Cuando el sensor se enciende, significa que los bombarderos ya están en el aire y todavía queda tiempo para prepararse
- La automatización se ejecuta cuando
binary_sensor.imminent_attack_in_war_monitorobinary_sensor.imminent_attack_in_operinformcambian deoffaon - El título de la alerta es “Bombers take off 🛫” y el mensaje usa
latest_messagedel sensor
- La automatización se ejecuta cuando
Alertas de peligro directo y acción de evacuación
- El sensor de peligro directo envía una alerta cuando hay una amenaza inmediata para la ubicación del usuario
- Durante ataques nocturnos aparece la disyuntiva entre ir al refugio y pasar una noche sin dormir, o quedarse en la cama lo más posible para poder trabajar al día siguiente
- La exposición prolongada a este entorno lleva a calcular el riesgo
- Para poder trabajar hace falta dormir lo suficiente
- Las defensas aéreas derriban regularmente las amenazas entrantes
- En Kyiv, el riesgo de impacto directo o de fragmentos se considera, según una estimación no científica, comparable a un nivel asumible similar al de ser atropellado por un auto
- Si ocurre un impacto directo, las probabilidades de sobrevivir son muy bajas
- Si un misil o dron es derribado cerca, la onda expansiva puede romper ventanas
- La mayor parte del tiempo se duerme en la cama, y cuando la situación se vuelve grave se busca refugio en el baño
- La idea es quedar detrás de dos paredes para protegerse de fragmentos de vidrio y de la onda expansiva cuando haya explosiones cerca
- El sensor de peligro directo busca palabras clave específicas
- Condición de ubicación: “Kyiv” o el nombre del barrio
- Condición de peligro: expresiones equivalentes a “warning”, “be in a safe place” y “fast target”
- Si ambas condiciones son verdaderas, el sensor se enciende
- Cuando el sensor se enciende, se considera que hay peligro directo y que hay que esconderse de inmediato
- Envía una alerta crítica con el título
Direct Danger ⚠️ - La notificación push se configura con
critical: 1y volumen1 - El volumen del HomePod del dormitorio se ajusta a
0.6 - El altavoz reproduce mensajes de advertencia en ucraniano como “escóndete de inmediato” y “amenaza de ataque en Kyiv”
- Con
force_speak: true, la indicación del altavoz se ejecuta a la fuerza
- Envía una alerta crítica con el título
2 comentarios
🇺🇦💙💛💪🌟🙌🌍✨
Opiniones en Hacker News
Que esto exista es fascinante y aterrador.
Cuando se usa mucho YAML para K8s o Ansible, normalmente se valida en un entorno de pruebas antes de ponerlo en producción; aquí, en cambio, un solo bug en YAML podría hacer que alguien pierda la vida.
No es que ya se esté en la etapa de aceptar el destino, pero si uno ya renunció a ir a un refugio real, puede configurarlo para evitar los fragmentos de vidrio durante una hora, en vez de esconderse durante horas cada vez que vienen misiles de crucero y drones letales.
En lugares más cercanos al frente que Kyiv, casi no sirve. Incluso los misiles balísticos no hipersónicos o las bombas planeadoras tienen tiempos de vuelo tan cortos que se termina oyendo la alarma y la explosión casi al mismo tiempo.
En https://alerts.in.ua/en se pueden ver estadísticas como la cantidad y duración de las alertas aéreas en toda Ucrania, y el número de explosiones reportadas por medios según región y período.
Hay una sección de resumen estadístico; hay que presionar el botón del reloj de arena en la parte inferior de la pantalla y filtrar por período.
La verdadera pregunta es por qué no existe una API oficial que informe con detalle la naturaleza del peligro. No debería ser necesario scrapear Telegram para saber el tipo y la velocidad del arma aérea y su tiempo estimado de llegada.
Por cierto, Kropyva también vale la pena. Es algo así como un Uber para artillería, y es muy útil para borrar fuerzas rusas.
En la práctica, al usar otros servicios se está distribuyendo la superficie de ataque.
Los periodistas que actualizan estos canales reciben información no solo de fuentes internas de la defensa aérea ucraniana, sino también de activistas de inteligencia de fuentes abiertas (OSINT) que monitorean comunicaciones de radio rusas con SDR, y de personas en Rusia y Bielorrusia que observan desde tierra los despegues de aviones. Es muy peligroso, pero hay formas relativamente seguras de enviar información, y los aviones suelen ser ruidosos.
Si un periodista desaparece por cualquier motivo, otros pueden seguir publicando actualizaciones. Cada oblast también tiene sus propios canales que avisan de ataques, algunos operados por administraciones regionales o servicios de emergencia.
El personal de defensa aérea está demasiado ocupado como para monitorear esto directamente y redactarlo. Muchas veces lo mejor que pueden hacer es dejar un mensaje corto en un chat grupal o en un bot de Telegram antes de que la situación empeore; al mismo tiempo, deben ajustar el momento de divulgar la información para dar suficiente tiempo de advertencia sin revelar las capacidades ni ubicaciones de los puestos de observación ucranianos.
El sistema tiene que ser simple. No todo el personal entrenado de defensa aérea es técnico, y muchos ni siquiera saben qué es una API. Muchos ucranianos tampoco pueden manejar una API, pero sí pueden leer alertas en Telegram.
Los periodistas que curan los canales de monitoreo también reciben del público reportes sobre las rutas de vuelo de misiles y drones. Hay algunas apps que usan el GPS y la brújula del teléfono y permiten apuntar el celular hacia el objeto para enviar datos, pero al final se trata de tener varios canales de información fáciles de usar para personas no técnicas.
Incluso enviar un mensaje con una ubicación aproximada diciendo que se escuchó pasar un misil de crucero puede ayudar, porque la cobertura de radar no es del 100%. Estos mensajes se reenvían a los responsables de la defensa aérea ucraniana que intentan interceptarlos en tiempo real.
El problema de seguridad también es claro. Los contactos personales y el acceso a chats grupales se pueden verificar, y en los canales de Telegram es difícil romper el anonimato desde afuera, por lo que tampoco es fácil convertir los dispositivos de los autores en blancos de ciberataques. En cambio, una API tendría que estar abierta al mundo entero, así que se volvería un objetivo de inmediato.
Es un sistema desordenado, pero funciona.
Kropyva no está disponible para el público general y está lejos de las capacidades de sistemas similares de la OTAN. Su fortaleza es que es una app de Android que corre en tablets baratas, así que no depende de hardware provisto por el complejo militar-industrial. Ese hardware es más seguro y robusto, pero muchísimo más caro.
Al leer que “Home Assistant tiene una integración integrada Ukraine Alarm. Monitorea el sistema nacional de alertas aéreas y alterna sensores de seguridad en HA”, no conozco bien la comunidad de HA, pero parece que habría que tener muchísimo cuidado con los commits nuevos que afecten a este plugin.
Lo ideal sería que un grupo de pares confiables revise el código con muchísimo cuidado y use firmas, etc., para asegurarse de que todos, por decirlo así, “reciban exactamente aquello por lo que pagaron”.
Quizá no se dependa de esto al punto de que haya vidas en juego, pero si es lo bastante importante como para usarlo, sin duda también lo es como para verificarlo bien.
Dicho eso, es fácil decirlo desde mi posición, cuando no estoy intentando dormir mientras una lista aterradora de municiones cae sobre mi casa; medidas simples como “no actualizar desde una configuración verificada” podrían ser suficientes.
Que esto exista es a la vez escalofriante e inspirador.
Parece una guía de modding de Cold Waters.
Es un uso interesante de Home Assistant. En la siguiente sección menciona un monitor de uptime, y me da curiosidad qué usan para mantenerse en línea. Supongo que algo como un UPS o respaldo con baterías.
Aun así, la mayoría tenía que trabajar, así que compró UPS, EcoFlow, generadores y sistemas solares; quienes tenían menos presupuesto incluso usaron baterías DIY. Este año es parecido.
Usar tecnología para mejorar la vida ya es impresionante, pero usar tecnología para sobrevivir a ataques con misiles es algo de otro nivel.
A veces me pregunto si algún día la humanidad podrá detener la guerra para siempre.
Incluso si una guerra se resolviera con la rendición inmediata del país atacado y un solo invasor dominara el mundo, dentro de ese sistema volverían a surgir facciones compitiendo por el poder.
Si la tecnología defensiva superara de forma permanente a la ofensiva, quizá podría ser una solución, pero aun así creo que la gente encontraría la manera. Una guerra también podría empezar como una forma de modificar psicológicamente la lealtad de las personas.
Una pregunta más realista y práctica sería: “¿Por qué Biden no detuvo la guerra?”.
Ahí sí empieza el debate de verdad. Ideas contradictorias, bastante hostilidad, personajes con tendencias como MTG y sus seguidores, y, por supuesto, este comentario recibirá tantos votos negativos que se irá hasta el infierno.
Ese es justamente el punto. Aunque sea el mismo tema, nuestra forma de pensar cambia mucho según si se trata de una situación hipotética lejana o de una realidad física.
Los canales de Telegram han sido un salvavidas para mucha gente y también un gran recurso para la prensa. Es interesante la forma en que se usan aquí.
Supongo que los actores estatales rusos pagarían mucho dinero por tomar el control de estos canales o infiltrarse en ellos.
Es una situación realmente absurda. El estrés de soportar ataques así a cualquier hora, de día o de noche, creo que me envejecería 10 años. Y aun así se espera que unas horas después, o al día siguiente, vuelvas a trabajar.
Este es solo uno de los factores de estrés relacionados con la guerra. Siguen llegando noticias semanales de víctimas civiles; leemos y escuchamos cosas horribles que vivieron personas que escaparon de territorios ocupados o fueron liberadas, como Bucha o Kherson; llegan noticias de amigos y conocidos muertos en combate, el reclutamiento, y una perspectiva de futuro incierta pero, en general, bastante sombría.
Por eso un día pasa como si fueran años. No repitan nuestros errores y escríbanles a sus representantes.
Es exactamente mitad inspirador y mitad espantoso. ¿Cuándo entenderá Occidente que Putin solo respeta la fuerza y se armará de valor?
Hay que darles a los ucranianos todo lo que necesitan. Es lo correcto y, al mismo tiempo, el acuerdo militar del siglo. Mientras Ucrania sigue desgastando enormemente al ejército ruso, la OTAN no tiene que perder ni un solo soldado.
O dejamos que Rusia gane y tendremos que hacernos cargo de millones de refugiados ucranianos. Y probablemente después Rusia atacará a otro país.