Lo que es OpenAPS y por qué importa la Redundancia

OpenAPS (Open Artificial Pancreas System) es una plataforma de código abierto dirigida por la comunidad que permite a las personas con diabetes construir un sistema de entrega de insulina automatizado personalizado. Se ejecuta en pequeños ordenadores de un solo tablero, por lo que es inaceptable un sistema de control de glucosa (CGM) de una sola placa de control de globina.

Correr multiple OpenAPS dispositivos crea un equipo redundante y tolerante a fallas que mantiene el circuito de control funcionando incluso cuando los componentes individuales fallan. Esta guía camina a través de cada aspecto: elegir hardware, sincronizar datos a través de dispositivos, implementar la falla automática, probar su configuración y mantenerla a lo largo del tiempo.

La necesidad básica de la redecencia en un bucle cerrado de bricolaje

En cualquier sistema automatizado, el enlace más débil determina la fiabilidad general. Para un bucle cerrado DIY, ese enlace débil es a menudo el ordenador de una sola tabla. Hardware puede fallar, el software puede chocar, y la conectividad de red puede caer. Sin redundancia, un fallo obliga al usuario a volver al modo manual — control de apertura— hasta que el problema se resuelva. Eso puede significar horas o incluso días de una gestión de glucosa menos óptima.

  • Operación continua: Si la junta primaria muere, una junta secundaria se hace cargo en segundos.
  • Ventanas de mantenimiento: Actualizar un dispositivo mientras que el otro maneja la terapia, sin ninguna interrupción.
  • Paz mental: Los cuidadores y los usuarios saben que hay una buena disposición para actuar.

La redecuancia no es sólo una falla, sino que también mejora la integridad data. Con dos dispositivos que registran los mismos eventos de forma independiente, tienes un registro doble de la entrega de insulina y lecturas de glucosa. Esto puede ser invaluable para el análisis post-hoc y la solución de problemas.

Beneficios de un dispositivo multi-dispositivo OpenAPS Rig

Más allá de la simple falla, una configuración multidispositivo ofrece varias ventajas prácticas:

  • Resistencia de hardware: Usando dos tipos de tablas diferentes (por ejemplo, un Raspberry Pi 4 y un BeagleBone Black) protege contra fallos específicos de componentes. Si un problema de corrupción de tarjetas SD generalizada afecta a un modelo, el otro es probable que no se vea afectado.
  • Diversidad de red: Cada dispositivo puede conectarse a un punto de acceso Wi-Fi diferente o utilizar una conexión Ethernet cableada. Si un segmento de red se baja, la otra plataforma mantiene conectividad a Nightscout y bomba.
  • Distribución de carga: Puede asignar el dispositivo primario para manejar el bucle (CGM reading + algoritmo + comandos de bomba) mientras que el dispositivo secundario actúa como un cargador dedicado a Nightscout y una estación de monitoreo. Esto reduce la latencia en el camino crítico.
  • Solución de problemas: Cuando surge un problema, puede cambiar a la copia de seguridad e investigar la línea de seguridad primaria sin parar la terapia.
  • Degradación graciosa: Incluso si un dispositivo falla, la copia de seguridad tiene acceso a los últimos datos sincronizados, por lo que puede tomar decisiones informadas inmediatamente.

Elegir hardware compatible

Computadoras de un solo cuerpo compatibles

El proyecto OpenAPS apoya oficialmente varias plataformas. Para una configuración redundante, elija dos tablas que sean idénticas o suficientemente similares en las capacidades. Las opciones populares incluyen:

  • Raspberry Pi 3B+/4B/5 – Ampliamente disponible, excelente apoyo comunitario, y existen muchos guías. Utilice una tarjeta SD de alta resistencia (por ejemplo, Samsung Pro Endurance) o arranque desde una SSD conectada a USB para minimizar el riesgo de corrupción.
  • BeagleBone Black (o BeagleBone Green) – Incluye almacenamiento flash eMMC incorporado, lo que lo hace menos susceptible a los problemas de la tarjeta SD. También tiene mejores capacidades en tiempo real para la comunicación directa de la bomba.
  • Intel NUC o ODROID – Más poderoso, pero el apoyo comunitario es más delgado. Pueden ser útiles si necesita procesamiento adicional para funciones avanzadas como el aprendizaje automático.

Para un sistema multidispositivo, el uso de dos de la misma tabla simplifica la configuración y los scripts de failover. Sin embargo, mezclar un Pi y un BeagleBone también es factible si mantienes las versiones de algoritmo y software idénticas.

Poder y conectividad

La potencia confiable es crítica. Cada dispositivo debe ser alimentado por una fuente de alimentación 5V dedicada y regulada que puede manejar el máximo de la tabla (2.5A para un Pi 4, 1A para un BeagleBone). Considere un pequeño UPS (alimento de alimentación ininterrumpida) o un paquete de batería de alta capacidad que puede mantener ambas tablas funcionando a través de los cortos de potencia.

  • Utilice Ethernet por lo menos un dispositivo para reducir la latencia y evitar interferencias Wi-Fi.
  • Si utiliza Wi-Fi, conecte cada dispositivo a un canal diferente o conéctese a diferentes puntos de acceso para evitar tanto la pérdida de conectividad simultáneamente.
  • Assign direcciones IP estáticas] o utilizar reservas DHCP para asegurar que los dispositivos siempre tengan las mismas direcciones para el monitoreo de latidos cardíacos.

Configuración de múltiples dispositivos

Instalación inicial

Siga la documentación de OpenAPS oficial para cada tabla. Pasos a la medida para multi-dispositivo:

  • Nombres únicos:] Nombre de un dispositivo y el otro (o similar) para evitar conflictos de red y dejar claro los registros.
  • Same versión del software:] Instalar la misma versión OpenAPS (por ejemplo, versión 0,7.x) en ambos dispositivos. Las versiones malmaches pueden llevar a diferentes comportamientos de algoritmo durante la falla.
  • ] Archivos de configuración separados: Cada dispositivo necesita su propio , , y . No los simpaticen entre dispositivos: mantenga copias para evitar sobreescrituras accidentales.
  • Ajustes controlados por la Versión: Almacene archivos de configuración en un repositorio Git privado (por ejemplo, en GitHub o un servidor personal). Esta pista cambia y permite sincronizar rápidamente los ajustes entre dispositivos.

Sincronización de datos en todos los dispositivos

Para la inigualable falla, ambos dispositivos deben compartir datos en tiempo real. El objetivo: el dispositivo de reserva siempre sabe el último valor de glucosa, la historia reciente de la entrega de insulina y el estado de la bomba. Existen varios métodos, cada uno con los cambios:

  • Nightscout (con base en el mango): Ambos dispositivos suben al mismo sitio de Nightscout. La copia de seguridad puede buscar las últimas horas de datos a través de la API de Nightscout en el inicio y luego contaminar periódicamente. Esto funciona bien pero requiere acceso a Internet e introduce la latencia.
  • Interventor local MQTT (recomendado):] Ejecute un servidor Mosquitto MQTT en un Raspberry Pi Zero o en su red de inicio. Cada dispositivo OpenAPS publica temas (por ejemplo, , ) y se suscribe a aquellos temas del otro dispositivo.
  • Sistema de archivos compartido (NFS/SMB):] Montar una cuota de red donde ambos dispositivos escriben archivos de estado. Usar escrituras atómicas (escribir a un archivo de temp, luego cambiar el nombre) para evitar lecturas parciales. Este método puede ser más lento y puede sufrir problemas de bloqueo de archivos.
  • Replicación de bases de datos (avanzado):] Establecer InflujoDB en un servidor separado. Ambas plataformas escriben mediciones a las mismas bases de datos. La copia de seguridad puede consultar InfluxDB para los últimos datos. Esto ofrece datos históricos sólidos pero añade complejidad.

Recomendación práctica:] Comience con la sincronización de Nightscout porque ya es parte de la mayoría de las configuraciones de OpenAPS. A continuación, agregue MQTT para compartir datos locales de baja potencia. Pruebe ambos para asegurar que la copia de seguridad tenga datos menores de 30 segundos.

Implementación de la Failover Automática

Monitoreo de latidos cardíacos

Failover se basa en un latido cardíaco: cada dispositivo envía periódicamente una señal "Estoy vivo".

  • Cree un punto final HTTP ligero en cada dispositivo (por ejemplo, ) que devuelve un tiempo y estado.
  • Alternativamente, utilice MQTT con un tema reservado: y . Haga que cada plataforma publique un mensaje JSON cada 15–30 segundos.
  • En el dispositivo de respaldo, ejecute un script que compruebe el latido cardíaco de la primaria. Si se pierden tres latidos cardíacos consecutivos (por ejemplo, 90 segundos sin señal), la copia de seguridad declara el muerto primario.

Cambio automático

Cuando la copia de seguridad decide que la primaria es inalcanzable, debe asumir el control sin intervención del usuario.

  1. Control de bloqueo: Escribe una bandera a una ubicación compartida (por ejemplo, un tema MQTT o un archivo en la parte de la red) indicando que la copia de seguridad está activa. La primaria, cuando se recupera, leerá esta bandera y permanecerá en espera.
  2. Relacion de la bomba: Si ambos dispositivos comparten una bomba física (por ejemplo, a través de Bluetooth o serie), asegúrese de que sólo un dispositivo tenga la conexión de la bomba. En la conmutación, la copia de seguridad debe liberar cualquier conexión de la bomba anterior y establecer una nueva.
  3. Continúe el bucle: La copia de seguridad utiliza los datos sincronizados más recientes para reiniciar el bucle OpenAPS. Debe registrar el evento a Nightscout como nota de tratamiento (por ejemplo, "Failover: backup now active").
  4. Enviar alerta: Usar Pushover, correo electrónico, SMS o un timbre local para notificar al usuario que se produjo la falla.

Prevención de la inhalación

El encendido ocurre cuando la primario recupera y retiene el control inmediatamente, causando oscilaciones. Usa un tiempo muerto: una vez que la copia de seguridad se hace cargo, no debe renunciar al control por lo menos 5-10 minutos, incluso si latido cardíaco de la primaria se vuelve a recuperar. Después de ese período, la copia de seguridad puede demolerse si el principal es estable.

Anulación manual

A pesar de la automatización, siempre proporciona una anulación manual. Implemente una interfaz web simple (por ejemplo, usando Node‐Red o una aplicación web Flask) con un botón para designar qué dispositivo está activo. Además, un interruptor físico que corta la potencia a un dispositivo puede servir como último recurso. Documente el procedimiento manual claramente y pruebe con regularidad.

Pruebas y validación

Su sistema de failover es tan bueno como su prueba. Cree un calendario para simular fallos cada 2-4 semanas. Utilice una lista de verificación:

  • simulación de fallos de hardware: Eliminar el poder de la primaria, luego tirar de su tarjeta SD mientras se alimenta (indíquese la corrupción de la tarjeta). Verificar la copia de seguridad se activa dentro del tiempo esperado (normalmente 60-90 segundos).
  • Simulación de fallas de red: Desconectar el cable de red de la primaria. Confirmar la copia de seguridad puede acceder a Nightscout y comunicarse con la bomba.
  • Prueba de sincronización de datos: Detiene intencionalmente el flujo de datos a la copia de seguridad (por ejemplo, mediante la pasificación de su suscripción a MQTT). Re-enable y verifique las capturas de copia de seguridad con los últimos 15 minutos de datos antes de asumir el control.
  • Prueba de recuperación: Traiga la parte principal en línea. Asegúrese de que reconoce que la copia de seguridad es activa y permanece en modo de espera sin desencadenar otro interruptor.
  • Prueba de alarma:] Verifique que la alerta de fallos le llegue (notificación de empuje, correo electrónico o cualquier método que utilice) dentro de 30 segundos del interruptor.

Grabar cada prueba en un registro o en notas de Nightscout. Si usted tiene un cuidador, involucre en las pruebas para que ellos saben qué esperar.

Mantenimiento y actualizaciones

Mantener ambos dispositivos en la misma versión de software es esencial para un comportamiento predecible.

  • Actualizaciones en estadio:] Actualizar siempre un dispositivo primero, dejando el otro funcionando. Después de 24 a 48 horas de operación estable, actualice el segundo. Si surge un problema, puede volver a activar el dispositivo actualizado sin interrumpir la terapia.
  • Usar una tabla de estadificación: Mantenga una tercera tabla de “pare” que actualiza primero. Después de dos semanas de estabilidad, aplique cambios a ambas plataformas de producción.
  • Automatizar las actualizaciones con precaución: Un trabajo de cron puede comprobar para nuevas versiones de OpenAPS nocturnas, pero sólo descargar y aplicar si se establece una bandera aprobada por el hombre. Nunca auto-actualice un sistema crítico de vida.
  • Registros de los Monitores: Configurar la rotación de registros y enviar errores críticos a tu teléfono a través de revistas sistematizadas o rsyslog. Herramientas como pueden enviar resúmenes diarios.

Cómo configurar tu dispositivo multi-dispositivo

Más dispositivos significan más superficies de ataque. Implementar estas medidas de seguridad:

  • ]Uso de autenticación de pulsaciones: Usa contraseñas únicas y largas para SSH e interfaces web. Desactivar la autenticación de contraseñas completamente y depender de las teclas SSH con contraseñas.
  • Segmento de red: Ponga ambas plataformas en un VLAN aislado si su router lo soporta. Sólo deben tener acceso a Nightscout, servidores de actualización y el broker MQTT. Bloquee todas las conexiones de entrada desde Internet.
  • Encryption:] Enforce HTTPS for all Nightscout communication. Use MQTT over TLS (port 8883). Generar certificados de autor o uso Let’s Encrypt si su broker está expuesto (no recomendado).
  • ] Seguridad física: Montar las tablas en un caso o envolvente. Asegurar que las tarjetas SD o SSD no se despilfarren fácilmente. Usar el alivio de tensión para cables de potencia y red.
  • Auditorías regionales:] Revisar los puertos abiertos con o . Desactivar cualquier servicio que no sea estrictamente necesario (por ejemplo, Bluetooth, Wi-Fi si usa Ethernet).

Recursos y apoyo comunitarios

No estás construyendo esto solo. La comunidad OpenAPS es activa, conocedora y acogedora.

Cuando se le pide ayuda, proporcione sus datos de hardware, versiones de software, método de failover y cualquier registro de errores. La comunidad valora detalladamente las preguntas respetuosos.

Conclusión

Ejecutar OpenAPS con múltiples dispositivos transforma un buen sistema automatizado de entrega de insulina en uno verdaderamente robusto. Al seleccionar hardware compatible, sincronizar datos eficazmente, implementar la falla a base de latidos cardíacos, y probar rigurosamente, crea una configuración que puede preceder fallos de hardware, fallos de red y errores humanos. El esfuerzo inicial —elegir tablas, escribir scripts de failover, y probar a fondo— se des de día confiables.

Empieza pequeña: consigue dos tablas idénticas, establece sincronización Nightscout y construye un sencillo script de latido cardíaco que te envía una notificación cuando la primaria se desconecta. Luego añade gradualmente la falla automática. La comunidad OpenAPS ha allanado el camino con años de experiencia en el mundo real. Ahora puedes construir en sus hombros para un sistema más seguro y resistente que puedas confiar con tu vida.