blood-sugar-management
Wie man Openaps mit mehreren Geräten für redundante und zuverlässige Steuerung verwendet
Table of Contents
Was ist OpenAPS und warum Redundanz wichtig ist
OpenAPS (Open Artificial Pancreas System) ist eine Community-gesteuerte Open-Source-Plattform, die es Menschen mit Diabetes ermöglicht, ein personalisiertes automatisiertes Insulinabgabesystem zu erstellen. Es läuft auf kleinen Single-Board-Computern - normalerweise einem Raspberry Pi oder BeagleBone Black -, die kontinuierlich Glukosemonitor-Daten lesen, einen Algorithmus ausführen und eine kompatible Insulinpumpe drahtlos steuern. Während ein Single-Device-Setup für viele gut funktioniert, führt ein einzelner Fehlerpunkt ein. Eine abgestürzte SD-Karte, ein Stromausfall, ein Netzwerkausfall oder eine beschädigte Konfigurationsdatei kann die Insulinabgabe ohne Warnung stoppen. Für ein lebenskritisches System ist dieses Risiko inakzeptabel.
Durch das Ausführen von mehreren OpenAPS-Geräten entsteht ein redundantes, fehlertolerantes Rig, das Ihren Regelkreis auch bei Ausfall einzelner Komponenten am Laufen hält. Dieses Handbuch geht durch jeden Aspekt: Auswahl der Hardware, Synchronisierung der Daten zwischen Geräten, Implementierung eines automatischen Failovers, Testen Ihres Setups und Pflegen im Laufe der Zeit. Am Ende haben Sie einen produktionsbereiten Ansatz für eine 24/7 zuverlässige Steuerung.
Der Kernbedarf für Redundanz in einem DIY Closed Loop
In jedem automatisierten System bestimmt die schwächste Verbindung die Gesamtzuverlässigkeit. Bei einem DIY-Closed-Loop ist diese schwache Verbindung oft der Single Board Computer. Hardware kann ausfallen, Software kann abstürzen und die Netzwerkverbindung kann abfallen. Ohne Redundanz zwingt ein Fehler den Benutzer zurück in den manuellen Modus - Open-Loop-Steuerung -, bis das Problem behoben ist. Das kann Stunden oder sogar Tage bedeuten weniger optimale Glukose-Management. Redundanz bietet:
- Kontinuierliche Operation: Wenn das primäre Board stirbt, übernimmt ein sekundäres Board innerhalb von Sekunden.
- Wartungsfenster: Aktualisieren Sie ein Gerät, während das andere die Therapie ohne Unterbrechung durchführt.
- Peace of Mind: Caregivers und User wissen, dass es einen heißen Standby gibt, der bereit ist zu handeln.
Redundanz ist nicht nur ein Failover, sondern verbessert auch die Datenintegrität. Da zwei Geräte die gleichen Ereignisse unabhängig voneinander protokollieren, haben Sie eine doppelt überprüfte Aufzeichnung der Insulinabgabe und der Glukosewerte. Dies kann für die Post-hoc-Analyse und Fehlersuche von unschätzbarem Wert sein.
Vorteile eines Multi-Device OpenAPS Rigs
Neben dem einfachen Failover bietet ein Multi-Device-Setup mehrere praktische Vorteile:
- Hardware-Resilienz: Die Verwendung von zwei verschiedenen Board-Typen (z. B. ein Raspberry Pi 4 und ein BeagleBone Black) schützt vor komponentenspezifischen Ausfällen. Wenn ein weit verbreitetes SD-Karten-Verdorbenheitsproblem ein Modell betrifft, ist das andere wahrscheinlich nicht betroffen.
- Netzwerkvielfalt: Jedes Gerät kann eine Verbindung zu einem anderen WLAN-Zugangspunkt herstellen oder eine kabelgebundene Ethernet-Verbindung verwenden. Wenn ein Netzwerksegment ausfällt, hält das andere Rig die Konnektivität zu Nightscout und pump aufrecht.
- Ladeverteilung: Sie können das primäre Gerät zum Handling der Schleife (CGM-Lese- + Algorithmus + Pumpbefehle) zuweisen, während das sekundäre Gerät als dedizierter Uploader für Nightscout und eine Überwachungsstation fungiert.
- Isolierte Fehlersuche: Wenn ein Problem auftritt, können Sie zum Backup wechseln und die primäre offline untersuchen, ohne die Therapie zu stoppen.
- Graceful degradation: Selbst wenn ein Gerät ausfällt, hat das Backup Zugriff auf die letzten synchronisierten Daten, so dass es sofort fundierte Entscheidungen treffen kann.
Auswahl kompatibler Hardware
Unterstützte Single-Board-Computer
Das OpenAPS-Projekt unterstützt offiziell mehrere Plattformen. Für eine redundante Einrichtung wählen Sie zwei Boards, die entweder identisch oder hinreichend ähnlich sind.
- Raspberry Pi 3B+/4B/5 – Weit verbreitet, exzellente Community-Unterstützung und viele Guides existieren. Verwenden Sie eine hochbelastbare SD-Karte (z. B. Samsung Pro Endurance) oder booten Sie von einer USB-angebundenen SSD, um das Korruptionsrisiko zu minimieren.
- BeagleBone Black (oder BeagleBone Green) – Enthält einen integrierten eMMC-Flash-Speicher, wodurch er weniger anfällig für SD-Kartenprobleme ist.
- Intel NUC oder ODROID – Leistungsstärker, aber die Unterstützung der Community ist dünner. Sie können nützlich sein, wenn Sie zusätzliche Verarbeitung für erweiterte Funktionen wie maschinelles Lernen benötigen.
Bei einem Multi-Device-System vereinfacht die Verwendung von zwei Boards die Konfiguration und Failover-Skripte, aber auch das Mischen eines Pi und eines BeagleBone ist möglich, wenn die Algorithmus- und Softwareversionen identisch bleiben.
Strom und Konnektivität
Zuverlässige Stromversorgung ist von entscheidender Bedeutung. Jedes Gerät sollte mit einem eigenen, regulierten 5V-Netzteil betrieben werden, das den Spitzenausfall der Platine bewältigen kann (2.5A für einen Pi 4, 1A für einen BeagleBone).
- Verwenden Sie wired Ethernet für mindestens ein Gerät, um die Latenz zu reduzieren und Wi-Fi-Interferenzen zu vermeiden.
- Wenn Sie Wi-Fi verwenden, stellen Sie jedes Gerät auf einen anderen Kanal oder verbinden Sie sich mit verschiedenen Access Points, um zu vermeiden, dass beide gleichzeitig die Verbindung verlieren.
- Zuweisen statische IP-Adressen oder DHCP-Reservierungen, um sicherzustellen, dass die Geräte immer die gleichen Adressen für die Herzschlagüberwachung haben.
Einrichtung mehrerer Geräte
Erstinstallation
Folgen Sie der offiziellen OpenAPS Dokumentation für jedes Board.
- Einzigartige Hostnamen: Benennen Sie ein Gerät und das andere (oder ähnliches), um Netzwerkkonflikte zu vermeiden und Protokolle klar zu machen.
- Die gleiche Softwareversion: Installieren Sie auf beiden Geräten die gleiche OpenAPS-Version (z. B. oref0 Version 0.7.x). Fehlanpassungen können zu unterschiedlichem Algorithmusverhalten beim Failover führen.
- Separate Konfigurationsdateien: Jedes Gerät benötigt seine eigenen , und ; symlinken Sie sie nicht über Geräte hinweg – bewahren Sie Kopien auf, um versehentliche Überschreitungen zu vermeiden.
- Versionskontrollierte Einstellungen: Speichern Sie Konfigurationsdateien in einem privaten Git-Repository (z. B. auf GitHub oder einem persönlichen Server).
Synchronisieren von Daten über Geräte hinweg
Für ein nahtloses Failover müssen beide Geräte Echtzeitdaten gemeinsam nutzen. Das Ziel: Das Standby-Gerät kennt immer den letzten Glukosewert, die aktuelle Insulinabgabehistorie und den Pumpstatus. Es gibt mehrere Methoden mit jeweils Kompromissen:
- Nightscout (cloud-basiert): Beide Geräte laden auf dieselbe Nightscout-Site hoch. Das Backup kann die letzten Stunden Daten über die Nightscout-API beim Start abrufen und dann regelmäßig abfragen. Dies funktioniert gut, erfordert jedoch einen Internetzugang und führt zu Latenz.
- Lokaler MQTT-Broker (empfohlen): Führen Sie einen Mosquitto-MQTT-Server auf einem Raspberry Pi Zero oder in Ihrem Heimnetzwerk aus. Jedes OpenAPS-Gerät veröffentlicht Themen (z. B. , ) und abonniert diese Themen vom anderen Gerät. MQTT ist schnell, leicht und funktioniert offline.
- Geteiltes Dateisystem (NFS/SMB): Mounten Sie eine Netzwerkfreigabe, bei der beide Geräte Statusdateien schreiben. Verwenden Sie Atomschreib-Dateien (schreiben Sie in eine Temp-Datei und benennen Sie sie um), um Teillesungen zu vermeiden. Diese Methode kann langsamer sein und kann Probleme mit der Dateisperrung haben.
- Datenbankreplikation (fortgeschritten): Richten Sie InfluxDB auf einem separaten Server ein. Beide Rigs schreiben Messungen in die gleichen Datenbanken. Das Backup kann InfluxDB nach den neuesten Daten abfragen. Dies bietet robuste historische Daten, fügt aber Komplexität hinzu.
Praktische Empfehlung: Beginnen Sie mit der Nightscout-Synchronisation, da sie bereits Teil der meisten OpenAPS-Konfigurationen ist.
Automatisches Failover implementieren
Herzschlagüberwachung
Failover setzt auf einen Herzschlag: Jedes Gerät sendet periodisch ein "Ich lebe"-Signal. Einfache Implementierung:
- Erstellen Sie auf jedem Gerät einen leichten HTTP-Endpunkt (z. B. ), der einen Zeitstempel und einen Status zurückgibt.
- Alternativ können Sie MQTT mit einem reservierten Thema verwenden: und .
- Führen Sie auf dem Backup-Gerät ein Skript aus, das den Herzschlag der Primärseite überprüft Wenn drei aufeinanderfolgende Herzschläge verpasst werden (z. B. 90 Sekunden ohne Signal), erklärt das Backup die Primärseite für tot.
Automatischer Umstieg
Wenn das Backup entscheidet, dass die Primäre nicht erreichbar ist, muss es die Kontrolle ohne Benutzereingriff übernehmen.
- Bedienungssteuerung: Schreibe ein Flag an einen freigegebenen Speicherort (z. B. ein MQTT-Thema oder eine Datei auf der Netzwerkfreigabe), das anzeigt, dass das Backup jetzt aktiv ist.
- Übernehmen Sie die Pumpenkommunikation: Wenn sich beide Geräte eine physische Pumpe teilen (z. B. über Bluetooth oder serielle), stellen Sie sicher, dass nur ein Gerät über die Verbindung der Pumpe verfügt.
- Setzen Sie die Schleife fort: Das Backup verwendet die neuesten synchronisierten Daten, um die OpenAPS-Schleife neu zu starten. Es sollte das Ereignis als Behandlungshinweis bei Nightscout protokollieren (z. B. "Failover: Backup jetzt aktiv").
- Send alert: Verwenden Sie Pushover, E-Mail, SMS oder einen lokalen Summer, um den Benutzer zu benachrichtigen, dass ein Failover stattgefunden hat.
Verhindern von Flapping
Flapping tritt auf, wenn die Primäre sich erholt und sofort die Kontrolle wiedererlangt, was zu Schwingungen führt. Verwenden Sie einen totzeit-Timer: Sobald das Backup die Kontrolle übernommen hat, sollte es die Kontrolle für mindestens 5-10 Minuten nicht aufgeben, selbst wenn der Herzschlag der Primäre wieder erscheint. Nach diesem Zeitraum kann sich die Backup-Funktion selbst degradieren, wenn die Primäre stabil ist. Ein besserer Ansatz: eine manuelle Bestätigung erfordern, um zurückzuschalten. Der Benutzer kann dann wählen, ob die Primäre wieder hergestellt wird, nachdem er überprüft hat, dass sie vollständig gesund ist.
Manuelles Override
Trotz Automatisierung immer manuell übersteuern. Implementieren Sie eine einfache Weboberfläche (z. B. mit Node-Red oder einer Flask-Web-App) mit einer Taste, um zu bestimmen, welches Gerät aktiv ist. Ein physischer Schalter, der die Stromversorgung eines Geräts unterbricht, kann als letzter Ausweg dienen. Dokumentieren Sie den manuellen Vorgang übersichtlich und testen Sie ihn regelmäßig.
Test und Validierung
Ihr Failover-System ist nur so gut wie das Testen. Erstellen Sie einen Zeitplan, um Fehler alle 2-4 Wochen zu simulieren. Verwenden Sie eine Checkliste:
- Hardware-Fehlersimulation: Entfernen Sie die Stromversorgung von der Primäreinheit und ziehen Sie dann die SD-Karte, während sie betrieben wird (Kartenkorruption simulieren).
- Netzwerkfehlersimulation: Trennen Sie das Netzwerkkabel des Primärsystems. Bestätigen Sie, dass das Backup weiterhin auf Nightscout zugreifen und mit der Pumpe kommunizieren kann.
- Datensynchronisationstest: Stoppen Sie absichtlich den Datenfluss zum Backup (z. B. durch Pausieren des MQTT-Abonnements). Aktivieren Sie es wieder und überprüfen Sie, ob das Backup die letzten 15 Minuten Daten einholt, bevor Sie die Kontrolle übernehmen.
- Wiederherstellungstest: Bringen Sie die Primäre wieder online. Stellen Sie sicher, dass sie erkennt, dass das Backup aktiv ist und im Standby-Modus bleibt, ohne einen weiteren Schalter auszulösen.
- Alerttest: Stellen Sie sicher, dass der Failover-Alarm Sie erreicht (Push-Benachrichtigung, E-Mail oder welche Methode Sie auch immer verwenden) innerhalb von 30 Sekunden nach dem Wechsel.
Notieren Sie jeden Test in einem Protokoll oder in Nightscout-Notizen. Wenn Sie eine Bezugsperson haben, beziehen Sie sie in die Tests ein, damit sie wissen, was sie erwarten können.
Wartung und Updates
Beide Geräte auf derselben Softwareversion zu halten ist für vorhersehbares Verhalten unerlässlich.
- Staged updates: Aktualisieren Sie immer zuerst ein Gerät, so dass das andere läuft. Nach 24-48 Stunden stabilen Betriebs aktualisieren Sie das zweite. Wenn ein Problem auftritt, können Sie das aktualisierte Gerät zurücksetzen, ohne die Therapie zu unterbrechen.
- Verwenden Sie ein Staging Board: Behalten Sie ein drittes “Ersatz” Board, das Sie zuerst aktualisieren.
- Automatisieren Sie Updates mit Vorsicht: Ein Cron-Job kann jeden Abend nach neuen OpenAPS-Veröffentlichungen suchen, aber nur herunterladen und anwenden, wenn ein von Menschen genehmigtes Flag gesetzt ist.
- Monitor-Logs: richten Sie die Protokollrotation ein und leiten kritische Fehler über das Systemd Journal oder rsyslog an Ihr Telefon weiter. Tools wie können tägliche Zusammenfassungen senden.
Sichern Sie Ihr Multi-Device-Setup
Mehr Geräte bedeuten mehr Angriffsflächen. Implementieren Sie diese Sicherheitsmaßnahmen:
- Starke Authentifizierung: Verwenden Sie eindeutige, lange Passwörter für SSH- und Web-Schnittstellen. Deaktivieren Sie die Passwort-Authentifizierung vollständig und verlassen Sie sich auf SSH-Schlüssel mit Passphrasen.
- Netzwerksegmentierung: Setzen Sie beide Rigs auf ein isoliertes VLAN, wenn Ihr Router es unterstützt. Sie sollten nur Zugriff auf Nightscout, Update-Server und den MQTT-Broker haben. Blockieren Sie alle eingehenden Verbindungen aus dem Internet.
- Verschlüsselung: Erzwingen Sie HTTPS für alle Nightscout-Kommunikation. Verwenden Sie MQTT über TLS (Port 8883). Generieren Sie selbstsignierte Zertifikate oder verwenden Sie Let's Encrypt, wenn Ihr Broker ausgesetzt ist (nicht empfohlen).
- Physische Sicherheit: Befestigen Sie die Boards in einem gepolsterten Gehäuse oder Gehäuse. Stellen Sie sicher, dass SD-Karten oder SSDs nicht leicht entfernt werden können. Verwenden Sie Zugentlastung für Strom- und Netzwerkkabel.
- Regelmäßige Audits: Überprüfen Sie offene Ports mit oder und deaktivieren Sie alle Dienste, die nicht unbedingt notwendig sind (z. B. Bluetooth, WLAN, wenn Sie Ethernet verwenden).
Gemeinschaftsressourcen und Unterstützung
Die OpenAPS-Community ist aktiv, kenntnisreich und einladend.
- OpenAPS offizielle Website – Projektübersicht, Links zur Dokumentation und Neuigkeiten.
- OpenAPS Read the Docs – umfassende Anleitungen für Installation, Konfiguration und Fehlersuche.
- OpenAPS Gitter chat – Echtzeit-Hilfe von erfahrenen Nutzern.
- OpenAPS Facebook-Gruppe – Community-Stories, Tipps und Unterstützung.
- Nightscout Dokumentation – hilfreich für das Verständnis der Cloud-Synchronisation.
Wenn Sie um Hilfe bitten, geben Sie Ihre Hardwaredetails, Softwareversionen, Failover-Methoden und Fehlerprotokolle an. Die Community schätzt detaillierte, respektvolle Fragen.
Schlussfolgerung
Durch die Ausführung von OpenAPS mit mehreren Geräten wird ein gutes automatisiertes Insulinabgabesystem in ein wirklich robustes System verwandelt. Durch die Auswahl kompatibler Hardware, die effektive Synchronisierung von Daten, die Implementierung eines Herzschlag-basierten Failovers und strenge Tests erstellen Sie ein Setup, das Hardwareausfälle, Netzwerkstörungen und menschliche Fehler überstehen kann. Der anfängliche Aufwand - Auswahl von Boards, Schreiben von Failover-Skripten und gründliches Testen - zahlt sich mit kontinuierlicher, zuverlässiger Kontrolle Tag und Nacht aus.
Fangen Sie klein an: Holen Sie sich zwei identische Boards, richten Sie Nightscout-Synchronisierung ein und erstellen Sie ein einfaches Herzschlag-Skript, das Ihnen eine Benachrichtigung sendet, wenn die Primärdaten offline gehen. Dann fügen Sie schrittweise automatisches Failover hinzu. Die OpenAPS-Community hat den Weg mit jahrelanger Erfahrung in der realen Welt geebnet. Jetzt können Sie auf ihren Schultern für ein sichereres, belastbareres System aufbauen, dem Sie Ihr Leben anvertrauen können.