Ciò che è OpenAPS e perché Redundancy Matters

OpenAPS] (Open Artificial Pancreas System) è una piattaforma di open source che consente alle persone con diabete di costruire un sistema di distribuzione dell'insulina automatizzata personalizzato.

Eseguire molti dispositivi OpenAPS[[]] crea un rig ridondante e tollerante che mantiene il tuo loop di controllo in esecuzione anche quando i singoli componenti non riescono. Questa guida passa attraverso ogni aspetto: scegliere hardware, sincronizzare i dati su dispositivi, implementare il failover automatico, testare la configurazione e mantenerlo nel tempo.

Il bisogno di ridondanza in un fai da te chiuso Loop

In qualsiasi sistema automatizzato, il collegamento più debole determina l'affidabilità complessiva. Per un loop chiuso fai da te, quel collegamento debole è spesso il computer di bordo singolo. L'hardware può fallire, il software può crash e la connettività di rete può cadere. Senza ridondanza, un guasto costringe l'utente a tornare alla modalità manuale - il controllo a colpo aperto - fino a quando il problema è risolto.

  • Funzionamento continuo:[ Se la scheda primaria muore, una scheda secondaria prende il controllo in pochi secondi.
  • Finestre di manutenzione:[] Aggiornare un dispositivo mentre l'altro gestisce la terapia, senza alcuna interruzione.
  • Pace della mente:[] Caregivers e gli utenti sanno che c'è una standby calda pronta ad agire.

La ridondanza non è solo un fallimento, ma migliora anche l'integrità dei dati []. Con due dispositivi che registrano gli stessi eventi in modo indipendente, si ha un doppio controllo della distribuzione dell'insulina e delle letture di glucosio.

Vantaggi di un Rig Multi-Device OpenAPS

Oltre al semplice failover, una configurazione multi-dispositiva offre diversi vantaggi pratici:

  • Resistenza di Hardware:[] Utilizzando due diversi tipi di board (ad esempio, un Raspberry Pi 4 e un BeagleBone Black) protegge contro guasti specifici dei componenti. Se un problema di corruzione della scheda SD diffuso colpisce un modello, l'altro è probabilmente inalterato.
  • Diversità di rete:[] Ogni dispositivo può connettersi a un altro punto di accesso Wi-Fi o utilizzare una connessione Ethernet cablata. Se un segmento di rete va verso il basso, l'altro impianto mantiene la connettività a Nightscout e pompa.
  • Distribuzione del carico:[] È possibile assegnare il dispositivo primario per gestire il loop (comando CGM + algoritmi + comandi pompa) mentre il dispositivo secondario funge da caricabatterie dedicato a Nightscout e da una stazione di monitoraggio.
  • Risoluzione dei problemi isolati:[ Quando sorge un problema, è possibile passare al backup e indagare la principale offline senza interrompere la terapia.
  • Graziosa degradazione:[] Anche se un dispositivo non riesce, il backup ha accesso agli ultimi dati sincronizzati, in modo da poter prendere decisioni informate immediatamente.

Scegliere Hardware compatibile

Supportati Computer Single-Board

Per una configurazione ridondante, scegliere due tavole che sono identiche o sufficientemente simili nelle funzionalità.

  • Raspberry Pi 3B+/4B/5[] – Ampiamente disponibile, eccellente supporto comunitario e molte guide esistono. Utilizzare una scheda SD ad alta luminosità (ad esempio, Samsung Pro Endurance) o avviare da un SSD collegato a USB per ridurre al minimo il rischio di corruzione.
  • BeagleBone Black (o BeagleBone Green) – Include storage flash integrato eMMC, rendendolo meno suscettibile ai problemi della scheda SD.
  • Intel NUC o ODROID[[] – Più potente, ma il supporto comunitario è più sottile. Possono essere utili se avete bisogno di un'elaborazione extra per funzioni avanzate come l'apprendimento automatico.

Per un sistema multi-dispositivo, utilizzando due della stessa scheda semplifica la configurazione e gli script di failover. Tuttavia, la miscelazione di un Pi e un BeagleBone è fattibile anche se si mantiene l'algoritmo e le versioni software identici.

Potenza e connettività

Ogni dispositivo dovrebbe essere alimentato da un alimentatore 5V dedicato e regolamentato che può gestire il picco di aspirazione della scheda (2.5A per un Pi 4, 1A per un BeagleBone). Considerare un piccolo UPS (alimentazione elettrica ininterrotta) o un pacchetto batterie ad alta capacità che possono mantenere entrambe le schede in esecuzione attraverso brevi interruzioni di corrente.

  • Utilizzare wired Ethernet[] per almeno un dispositivo per ridurre la latenza ed evitare interferenze Wi-Fi.
  • Se si utilizza Wi‐Fi, impostare ogni dispositivo in un canale diverso o connettersi a diversi punti di accesso per evitare entrambi di perdere la connettività simultaneamente.
  • Assegnare static IP address[[]]] o utilizzare le prenotazioni DHCP per garantire che i dispositivi hanno sempre gli stessi indirizzi per il monitoraggio del battito cardiaco.

Impostazione di più dispositivi

Installazione iniziale

Seguire la documentazione ufficiale di OpenAPS[] per ogni scheda. Passi per personalizzare per il multi-dispositivo:

  • Nome unico hostnames:[]] Nome di un dispositivo [ e l'altro (o simile) per evitare conflitti di rete e rendere i registri chiari.
  • Associante versione software:[] Installare lo stesso rilascio OpenAPS (ad esempio, versione oref0 0.7.x) su entrambi i dispositivi.
  • I file di configurazione separati:[] Ogni dispositivo ha bisogno di un proprio [], , e . Non si collegano a dispositivi, si mantengono copie per evitare sovrascrizioni accidentali.
  • Impostazioni controllate da una singola domanda:[] Archiviare i file di configurazione in un repository Git privato (ad esempio, su GitHub o su un server personale).

Sincronizzazione dei dati tra i dispositivi

Per un failover senza soluzione di continuità, entrambi i dispositivi devono condividere dati in tempo reale. L'obiettivo: il dispositivo standby conosce sempre l'ultimo valore di glucosio, la storia recente di somministrazione di insulina e lo stato della pompa.

  • Nightscout (cloud-based):[ Entrambi i dispositivi caricano nello stesso sito Nightscout. Il backup può recuperare le ultime ore di dati tramite l'API Nightscout all'avvio e poi poll periodicamente.
  • ]Intermediario locale MQTT (consigliato): Eseguire un server MQTT Mosquitto su un Raspberry Pi Zero o sulla rete domestica. Ogni dispositivo OpenAPS pubblica argomenti (ad esempio, , []) e abbonarsi a questi argomenti dall'altro dispositivo.
  • Filesystem radiato (NFS/SMB): Montare una quota di rete in cui entrambi i dispositivi scrivono file di stato. Utilizzare le scritture atomiche (scrivi un file di temp, quindi rinomina) per evitare letture parziali. Questo metodo può essere più lento e può soffrire di problemi di blocco file.
  • Riprissione dati (avanzata):[] Impostare InfluxDB su un server separato. Entrambe le piattaforme scrivono le misurazioni sugli stessi database. Il backup può query InfluxDB per gli ultimi dati.

Raccomandazione pratica:[[]] Inizia con la sincronizzazione Nightscout perché è già parte della maggior parte delle configurazioni OpenAPS. Quindi aggiungi MQTT per la condivisione di dati locali a bassa latenza.

Implementazione di failover automatico

Monitoraggio del battito cardiaco

Failover si basa su un battito cardiaco: ogni dispositivo invia periodicamente un segnale "Sono vivo".

  • Creare un endpoint HTTP leggero su ogni dispositivo (ad esempio, []) che restituisce un timestamp e lo stato.
  • In alternativa, utilizzare MQTT con un argomento riservato: [ e . Ogni piattaforma pubblica un messaggio JSON ogni 15–30 secondi.
  • Sul dispositivo di backup, eseguire uno script che controlla il battito cardiaco primario. Se tre battiti cardiaci consecutivi sono mancati (ad esempio, 90 secondi senza segnale), il backup dichiara i morti primari.

Interruttore automatico

Quando il backup decide che il primario è irraggiungibile, deve assumere il controllo senza intervento dell'utente.

  1. Controllo dei requisiti:[] Scrivi una bandiera in una posizione condivisa (ad esempio, un argomento MQTT o un file sulla quota di rete) indicando che il backup è ora attivo.
  2. Avvia la comunicazione della pompa:[] Se entrambi i dispositivi condividono una pompa fisica (ad esempio, tramite Bluetooth o seriale), assicurarsi che solo un dispositivo abbia la connessione della pompa.
  3. Continue the loop:[ Il backup utilizza i dati sincronizzati più recenti per riavviare il loop OpenAPS. Dovrebbe registrare l'evento a Nightscout come una nota di trattamento (ad esempio, "Failover: backup now active").
  4. Inviare l'avviso:[] Usare Pushover, e-mail, SMS, o un buzzer locale per informare l'utente che il failover è avvenuto.

Prevenire il Flapping

Il flapping si verifica quando il primario recupera e recupera immediatamente il controllo, causando oscillazioni. Utilizzare un timer dead-time: una volta che il backup prende il sopravvento, non deve rinunciare al controllo per almeno 5-10 minuti, anche se il battito cardiaco primario riappare. Dopo quel periodo, il backup può demorsi se il ripristino primario è stabile.

Sovrascrittura manuale

Nonostante l'automazione, sempre fornire un override manuale.Attrezzatura di una semplice interfaccia web (ad esempio, utilizzando Node‐Red o un'app Web Flask) con un pulsante per designare quale dispositivo è attivo. Inoltre, un interruttore fisico che taglia l'alimentazione a un dispositivo può servire come ultima risorsa.

Test e convalida

Il sistema di failover è buono solo come il suo test. Creare un programma per simulare i guasti ogni 2-4 settimane.

  • Simulazione di guasto di Hardware:[] Rimuovere l'alimentazione dal primario, quindi tirare la sua scheda SD mentre alimentato (corruzione della scheda di simulazione). Verificare che il backup si attiva entro il timeout previsto (tipicamente 60–90 secondi).
  • Simulazione di guasto di rete:[[] Discollegare il cavo di rete primario. Confermare il backup può ancora accedere a Nightscout e comunicare con la pompa.
  • Data sync test:[] Intenzionalmente arrestare il flusso di dati al backup (ad esempio, tramite il pausing della sua sottoscrizione MQTT).
  • Ripristina test:[] Portare il backup principale online. Assicurarsi che riconosce il backup è attivo e rimane in modalità standby senza attivare un altro switch.
  • Alert test:[]] Verificare che l'avviso di failover ti raggiunga (Notifica di spunta, e-mail o qualsiasi metodo utilizzi) entro 30 secondi dall'interruttore.

Registra ogni prova in un registro o nelle note di Nightscout. Se hai un caregiver, coinvolgerli nei test in modo da sapere cosa aspettarsi.

Manutenzione e Aggiornamenti

Mantenere entrambi i dispositivi sulla stessa versione del software è essenziale per il comportamento prevedibile.

  • Aggiornamenti di stato:[] Aggiornare sempre un dispositivo prima, lasciando l'altro in esecuzione. Dopo 24–48 ore di funzionamento stabile, aggiornare il secondo. Se si verifica un problema, è possibile ripristinare il dispositivo aggiornato senza interrompere la terapia.
  • Utilizzare una tavola di staging:[ Mantenere una terza scheda “spare” che si aggiorna prima. Dopo due settimane di stabilità, applicare modifiche a entrambe le piattaforme di produzione.
  • Aggiornamenti automatici con cautela:[] Un lavoro di cron può controllare le nuove versioni di OpenAPS, ma solo scaricare e applicare se viene impostata una bandiera approvata dall'uomo.
  • log di memorizzazione:[[]] Impostare la rotazione del registro e inoltrare errori critici al telefono tramite la rivista di sistema o rsyslog. Strumenti come possono inviare riassunti giornalieri.

Impostazione multidispositiva

Più dispositivi significano più superfici di attacco. Attuazione di queste misure di sicurezza:

  • Autenticazione forte:[] Usa password uniche e lunghe per SSH e interfacce web. Disattivare completamente l'autenticazione delle password e fare affidamento su chiavi SSH con password.
  • Segmentazione di rete:[] Mettere entrambe le piattaforme su un VLAN isolato se il router lo supporta. Dovrebbero avere accesso solo a Nightscout, server di aggiornamento e il broker MQTT. Bloccare tutte le connessioni in entrata da internet.
  • Crittografia:[[]] Enforce HTTPS per tutta la comunicazione Nightscout. Utilizzare MQTT su TLS (port 8883). Generare certificati auto-firmati o utilizzare Let’s Encrypt se il tuo broker è esposto (non consigliato).
  • Sicurezza fisica:[[]] Montare le schede in una custodia imbottita o in un contenitore. Assicurare che le schede SD o SSD non siano facilmente dislocate.
  • Controlli regolari:[]] Verificare le porte aperte con o []. Disattivare qualsiasi servizio non strettamente necessario (ad esempio, Bluetooth, Wi‐Fi se si utilizza Ethernet).

Risorse e supporto comunitari

Non si sta costruendo da solo. La comunità OpenAPS è attiva, competente e accogliente.

Quando si chiede aiuto, fornire i dettagli hardware, le versioni software, il metodo di failover e qualsiasi registro di errore.

Conclusioni

L'esecuzione di OpenAPS con più dispositivi trasforma un buon sistema di distribuzione dell'insulina automatizzato in un sistema veramente robusto. Selezionando hardware compatibile, sincronizzando i dati in modo efficace, implementando failover basato sul battito cardiaco e testando rigorosamente, si crea una configurazione che può insufficienza hardware, glitch di rete e errori umani.

Iniziare piccolo: ottenere due schede identiche, impostare Nightscout sincronizzare, e costruire un semplice script battito cardiaco che ti invia una notifica quando il primario va offline. Poi gradualmente aggiungere failover automatico. La comunità OpenAPS ha spianato la strada con anni di esperienza nel mondo reale. Ora è possibile costruire sulle loro spalle per un sistema più sicuro e resiliente che si può fidare con la tua vita.