Sucar! CGM-Daten auf dem CD für Diabetiker

Hallo,

Ich habe eine Android Automotive App für Diabetiker geschrieben, welche CGM-Daten auf dem Center Display anzeigt.
Wahrscheinlich werden alle Diabetiker wissen, was das ist und wozu es gut ist, aber ich denke ich sollte für den Rest kurz erläutern, worum es geht:

CGM?

CGM steht für „Continuous Glucose Monitoring“, also „Kontinuierliche Glukose Messung“. Solche Systeme erlauben einem Diabetiker eine besonders gute Überwachung seines Blutzuckers, ohne die traditionellen Stiche in die Fingerkuppe. Sie bestehen aus einem kleinen Sensor, der am Körper getragen wird und das Messergebnis in regelmäßigen Abständen (jede Minute oder alle 5 Minuten, je nach System) an ein gekoppeltes Handy sendet. Hier ein Beispiel:


(Quelle: Freestyle Libre 3: Preis und Kosten im Überblick - CHIP)

Die zugehörigen Apps zeigen den aktuellen Messwert, den bisherigen Verlauf und meist auch einen Trend, so wie es auf dem Bild zu sehen ist.
Darüber hinaus kann man Alarme definieren, die warnen, wenn der Blutzucker in einen gefährlichen Bereich kommt. Gefährlich ist dabei insbesondere ein niedriger Bluckzucker aka „Unterzuckerung“, da dieser (und hier kommt das Auto ins Spiel) zu einer Einschränkung der Fahrtüchtigkeit führt. Deshalb ist es für einen insulinpflichtigen Diabetiker (bei nicht-insulinpflichtigen Diabetikern kommt es in der Regel nicht zu Unterzuckerungen) sehr wichtig, während der Fahrt seinen Blutzucker zu überwachen. So kann er rechtzeitig reagieren und etwas zuckerhaltiges essen oder trinken - und das am besten bevor der Alarm los geht, denn dann ist es meist schon zu spät.
Aber wie soll das gehen, wenn man laut StVO das Gerät, das die Daten anzeigt, während der Fahrt nicht einmal berühren darf? Und genau hier kommt meine App ins Spiel:

Wo kommen die Daten her?

Die einfache Antwort ist: Aus der Cloud. Die Apps auf den Handys zeigen die Daten nämlich nicht nur an, sondern laden sie auch in eine Cloud hoch, wenn man das will. Die App kann die Daten daher mit kleiner Verzögerung (5-15 Sekunden) dort abrufen und anzeigen.
Natürlich gibt es nicht nur eine Cloud; hier kocht jeder Hersteller sein eigenes Süppchen. Aktuell kann Sucar! auf die Daten von Abbott und Dexcom CGM-Systemen zugreifen. Darüber hinaus wird auch die OpenSource Lösung „Nightscout“ unterstützt und bei Bedarf kann ich relativ leicht weitere Datenquellen hinzufügen falls Bedarf besteht - und ich ausreichend Dokumentation dazu finden kann.

Funktionalität?

Insgesamt ist die Funktionalität natürlich übersichtlich, aber ich habe trotzdem ein kurzes Video gemacht, das ein bisschen zeigt, wie die App „in Betrieb“ aussieht. Dafür habe ich die Demo-Datenquelle verwendet, die künstliche Daten anzeigt und ein paar App-Situationen simuliert: YouTube

Interesse?

Die App ist aktuell im Beta Status im Play Store, so dass ich -ähnlich wie bei CSV- Beta-Tester hinzufügen kann. Ich denke hier wird ein Track ausreichen, da die Zielgruppe (zumindest nach meiner Einschätzung) vergleichsweise klein ist.
Also: Wer Interesse hat, kann sich gerne bei mir per PN oder über das Anmeldeformular melden! Dazu benötige ich nur die E-Mail des Google Accounts mit dem ihr im Auto angemeldet seid.

Wie geht es weiter?

Ultimativ möchte ich natürlich aus dem Beta Stadium kommen und die App öffentlich zugänglich machen. Leider ist das nicht so einfach, da ich mich (wie Maxi bei CSV) nicht an die recht beschränkten Android Auto(motive) Templates gehalten habe, sondern alles in Jetpack Compose implementiert habe.
Obwohl ich glaube, dass die App in der Benutzung weniger ablenkend ist als beispielsweise Spotify, wo man sogar während der Fahrt Text eingeben darf, dürfte es trotzdem Schwierigkeiten bei der Veröffentlichung geben. Daher erwäge ich, eine alternative Version auf Template-Basis zu erstellen - aber zunächst mal bin ich auf das Feedback von anderen Benutzern gespannt!

Eigentlich wollte ich noch genauer auf die ToDos eingehen, die ich noch auf der Liste habe… Aber ich merke gerade, dass der Post schon ziemlich lang geworden ist. Deshalb höre ich hier jetzt erstmal auf.

Viele Grüße,
-Guido

Edit: Ich habe eine Anmeldeformular erstellt, um die Anmeldung zu vereinfachen.

29 Likes

Moin Guido,

tolle Idee, diese App.

Du hast ne PN.:grimacing::grin:

Grüße
Jürgen

1 Like

Cooles Ding! Ich bin zwar kein potenzieller Anwender, hätte allerdings trotzdem eine technische Frage: Muss die App immer im Vordergrund laufen oder kann sie die Daten auch im Hintergrund abrufen und eine Notification aufploppen lassen?

Da ich immer nur zu bestimmten Zeitpunkten Daten abrufe, muss die App nur punktuell arbeiten. Das habe ich mit Alarmen realisiert, die auch dann funktionieren, wenn die App nicht in Vordergrund ist.
Das ist bspw. für das Libre CGM wichtig. Dort sind die minütlichen Werte nur „live“ abfragbar und deshalb sammelt die App im Hintergrund permanent die Daten, um den Graphen zu aktualisieren.
So sind bisher alle Datenquellen implementiert: Die historischen Daten werden nur einmal abgerufen und werden dann nur noch durch den neusten Wert ergänzt.
Das läuft natürlich nur dann, wenn man im Auto sitzt. Sobald man aussteigt, wird das Android System gestoppt und damit auch die App.
Wenn man wieder einsteigt, startet die App automatisch im Hintergrund.

Ja, das mit den Notifications ist grundsätzlich möglich. Im „Alarmfall“ macht aber normalerweise das Handy ohnehin schon Alarm. Und es macht -zumindest für mich persönlich-wenig Sinn, in dieser Situation von zu vielen Alarmen genervt zu werden.
Deshalb habe ich bisher nichts derartiges eingebaut. :person_shrugging:

1 Like

Moin Guido!

schön zu sehen, dass deine App inzwischen so weit ist, dass du sie herzeigen kannst :grin:

Ein Anwender werde ich zwar nicht sein, aber aus technischer sicht bin ich natürlich sehr interessiert. Gibt es den Source Code irgendwo zu finden? :wink:

Du hast recht, ohne eine Templated App wird es schwierig, die App in den Play Store zu bekommen. Da deine App ja aber im vergleich zum CSV relativ simpel aufgebaut ist, denke ich, dass sich das mit relativ wenig Aufwand und Kompormissen umbauen lässt. Auf das Diagramm wird man vermutlich verzichten müssen. Aber einen Momentanwert und Trend darzustellen sollte sich schnell realisieren lassen.

Für den CSV arbeite ich im Moment auch viel mit dem Template Host und habe mich da schon ganz gut rein gearbeitet.
Und auch das Thema Compose auf AAOS bin ich in letzter Zeit noch mal angegangen, um perspektivisch das XML-Layout vom CSV abzulösen. Da bin ich aber teilweise noch etwas in Zwietracht: die Polestar-UI 1:1 nachbauen, oder was deutlich anderes? Compose ist ja glücklicherweise so flexibel, dass man das alles recht einfach stylen kann und auch vom Modell abhängig machen kann.

Wenn du in der Hinsicht zu irgendwas einen Rat brauchst, dann melde dich gerne bei mir.

3 Likes

Es ist einfach absolut super, dass es Leute wie euch gibt. Das muss ein riesiger Aufwand sein, mit zig Stunden Arbeit und reflektionen. Und dann noch alles im Forum zur Verfügung zu stellen ist genial. Ein riesengrosses Dankeschön an euch alle.

8 Likes

Ja, das mit dem „Zeigen“ ist so eine Sache, denn eigentlich war die App schon vor 4 Monaten benutzbar und für meinen eigenen Bedarf ausreichend. (Den Plan, diese App zu schreiben ist ja schon vor über 2 Jahren gefallen, als ich mich für den Polestar entschieden habe… aber erst ein Jahr nach Erhalt der „Hardware“ habe ich mit der Entwicklung begonnen.)
Eine App soweit zu bringen, dass man sie auch Jemanden anders zumuten kann, war dann doch aufwändiger, als ich erwartet hatte. :slight_smile:

Der Source Code liegt in einem privaten Repository auf Github und dafür kann ich Dich gerne freischalten. Das gilt übrigens auch für andere Interessenten - insbesondere, wenn sie helfen wollen, denn ein paar Baustellen gibt es natürlich immer… :wink:

Das Schöne an Jetpack Compose ist, dass die App ohne Änderung auch direkt auf dem XC40 und dem 33er Automotive Image läuft - und „fast“ genauso aussieht wie im Polestar.

Tolle Sache! Anmeldung ist raus. :slight_smile:

Eine tolle Sache, für die ich ‚Danke!‘ sagen und das Ganze gern durch Input als User unterstützen möchte.

Installiert, Verbindung zu Clarity steht, am Anfang wurden auch Werte angezeigt. Nach dem Abstellen und späterer Rückkehr zum Fahrzeug kommt folgende Meldung:

Hallo,

bitte gehe in die Einstellungen auf Datenquelle und tippe nochmal auf Prüfen und dann auf OK.
Dann sollte es eigentlich wieder gehen.
Sag bitte per PN Bescheid, wenn das hilft, dann werde ich versuchen, das zu beheben.
Das Problem ist, dass ich selber kein Dexcom benutze, die Implementierung während einer G7 Testperiode gemacht habe und offenbar diesen Fall übersehen habe…

Danke für das Feedback!

-Guido

Hatte ich schon probiert. Die Prüfung der Verbindung klappte erfolgreich. Daran scheint es nicht zu liegen.

Hast du danach auch auf OK getippt oder auf Abbrechen?
Bei OK wird alles zurückgesetzt, das ist wichtig.
Ansonsten einmal die Demo Datenquelle auswählen und dann zurück auf Dexcom - das sollte den gleichen Effekt haben.

-Guido
PS: weiter per PN?

1 Like

I am a simple man (Android Engineer).
I see Jetpack Compose … I like!

Good job on the app :clap:

(Apologies for english, my German is not yet good enough)

2 Likes

Das Problem ist übrigens behoben. Es hatte damit zu tun, dass die Zugriffsberechtigung nach einer gewissen Zeit abläuft, aber nicht neu angefordert wurde.
Die korrigierte Version ist auch schon seit einer Woche raus, aber ich wollte sicher sein, bevor ich hier „Erfolg“ melde.

Gruß-

Kannst Du aus meiner Sicht. Das ist wirklich, gerade für längere Fahrten ein echter Komfortgewinn. Das Sahnehäubchen wäre jetzt noch eine Anzeige des Wertes bereits in der Kachelansicht. Ginge das mit den Regularien, die Google da auferlegt überhaupt?

Moin Guido,

Zunächst nochmal vielen Dank für die ultrageile App mit der im Alltag sehr zuverlässigen Anbindung.

Zwei Dinge habe ich aber noch. Das Eine ist ein Verbesserungsvorschlag, das andere ist evtl. ein Feature-Request.

  1. Skalierung der y-Achse:
    Aktuell ist die Skalierung der Y-Achse ja dynamisch, so dass die Höhe der Anzeige immer gut ausgenutzt wird. Das ist für mich in den meisten Fällen auch sehr gut, aber ich muss dann immer außer auf die Kurve selbst auch noch schauen wie die Werte aktuell skaliert sind um die tatsächliche Dynamik des Geschehen meines BZ einschätzen zu können.
    Ideal wäre es, wenn man die Skalierung und die Farbbereiche individuell statisch einstellen könnte. Man könnte dann alle Werte und das „Wo komme ich her und wie schnell geht es wo hin“ quasi mit einem Blick aus dem Augenwinkel heraus einschätzen.

  2. Anbindung meines Dexcom an CamAps.
    Ich bekomme demnächst die Ypso-Pump mit CamAps, wofür die Dexcom-SW komplett deinstalliert werden muss, d.h. da ist nix mehr mit Clarity. Der Dexcom bleibt zwar im Einsatz, wird aber nicht mehr über die eigene Software mit dem Handy verbunden, sondern eben über CamAps. Siehst Du da Möglichkeiten?

CamAps hat keine eigene Cloud, sondern nutzt im Hintergrund wohl den Service von Glooko (Das war auch der Dienst, der, damals noch unter anderem Namen, auch von den Animas-Pumpen genutzt wurde.)

1 Like

Hallo Jürgen,

Vielen Dank für Deine Nachricht!
Zu Deinen Punkten:

  1. Das kann ich gerne einbauen und das sollte auch kein Problem sein.
  2. Ich habe mir mal Glooko angesehen und das scheint ein gut dokumentierte Schnittstelle zu haben. Ich hoffe nur, dass man dort auch aktuelle Daten bekommt und nicht wie bei der offiziellen Clarity-Schnittstelle, bei der man die letzten drei Stunden nicht erhält… (Deshalb bin ich gezwungen, die nicht-offizielle für die Follower-App zu verwenden.)
    Wann wirst Du denn auf CamAPS umsteigen? Wenn genug Zeit ist, würde ich versuchen, es bis dahin einzubauen, damit Du es gleich testen kannst.

Leider bin ich die letzten Wochen/Monaten nicht dazu gekommen an der App zu arbeiten, obwohl ich sie unbedingt in einer Play-Store Version rausbringen möchte, um mehr potentielle Interessenten zu erreichen.
Jetzt beginnt aber die kalte Jahreszeit und ich denke, dass ich mich dann erstmal an Deine beiden Punkte setzen werde.

Viele Grüße-

Der Umstieg hätte schon längst sein sollen/müssen/können, aber ich bin ein Notfall und da dauerts halt immer länger, vor allem im deutschen "Gesundheits"system. :face_with_open_eyes_and_hand_over_mouth:

Die Glooko-Infrastrukur habe ich zu meinen Animas-Pumpen-Zeiten nie als flott wahrgenommen, von daher rechne ich mit allem und nix.

Bin kein Entwickler, kann daher nur zitieren: nein, das geht nicht.