Hintergrundbeleuchtung der DasKeyboard-Tastatur basierend auf Blutzucker mithilfe der REST-API

Aus dem Blog von Scott Hanselman, Lehrer, Programmierer und Dozent.

In meinem Blog schreibe ich seit langem Artikel zu Themen an der Schnittstelle von Diabetes und Technologie. Im Jahr 2012 war der Stand der Diabetes-Technologien bedauerlich , aber jetzt erleben sie einen vielversprechenden Aufschwung .

Wenn Sie an Typ-I-Diabetes leiden und ein kontinuierliches Blutzuckermessgerät (CGM) verwenden, müssen Sie den Nightscout- Dienst konfigurieren und verfügen über eine REST-API, um auf Ihre Blutzuckerdaten zuzugreifen. CGM überprüft alle 5 Minuten den Glukosespiegel in meinem Blut. Über den Bluetooth-Kanal mit geringem Stromverbrauch werden die Daten an mein Telefon und von dort in die Cloud gesendet. Sie müssen jedoch Glukosedaten in der Cloud unter Ihrer Kontrolle speichern. CGM-Hersteller bieten ihre eigenen Clouds an, aber wir können von dort problemlos in die MongoDB-Datenbank exportieren .

Mein Nightscout läuft unter Azure und mein Körper hat eine eigene REST-API. Ich kann die folgende HTTP-GET-Anfrage stellen:

/api/v1/entries.json?count=3

und erhalten Sie diese Art von Antwort:

[ { _id: "5c6066d477b2a69a0a7810e5", sgv: 143, date: 1549821626000, dateString: "2019-02-10T18:00:26.000Z", trend: 4, direction: "Flat", device: "share2", type: "sgv" }, { _id: "5c6065a877b2a69a0a7801ce", sgv: 134, date: 1549821326000, dateString: "2019-02-10T17:55:26.000Z", trend: 4, direction: "Flat", device: "share2", type: "sgv" }, { _id: "5c60647b77b2a69a0a77f381", sgv: 130, date: 1549821026000, dateString: "2019-02-10T17:50:26.000Z", trend: 4, direction: "Flat", device: "share2", type: "sgv" } ] 

Wenn ich die .json-URL in .txt ändere, wird Folgendes angezeigt:

 2019-02-10T18:00:26.000Z 1549821626000 143 Flat 2019-02-10T17:55:26.000Z 1549821326000 134 Flat 2019-02-10T17:50:26.000Z 1549821026000 130 Flat 

Der flache Wert am Ende ist ein Enum-Wert, der mir eine allgemeine Vorstellung vom Glukoseverhalten gibt. Diabetiker müssen die Glukose stündlich und manchmal jede Minute überwachen. Daher ist es für uns sehr wichtig, Displays zu haben, die wir schnell betrachten können. Das heißt, alles, was eine Vorstellung von meinem aktuellen Zustand geben kann.

Z.B:

  • Alexa, wie hoch ist mein Glukosespiegel?
  • Hinzufügen von Glukosedaten und Trends zu einer Git / PATH-Anforderung in einer Eingabezeile.
  • Arduino mit LCD.
  • Der Wandkalender der dakBoard-Familienkalender mit Glukosespiegeln.



Ich habe mir kürzlich ein Das Keyboard 5Q gekauft - und zum ersten Mal habe ich bereits 2006 über Das Keyboard geschrieben! Sie hat ihre eigene REST-API . Und ich arbeite daran, die Applet-API über die Tastatur zu verwenden, um die oberen Tasten entsprechend den Änderungen des Glukosespiegels in meinem Blut hervorzuheben. Ich werde ihre Bibliotheken für Node und JavaScript verwenden und alles wird im Kontext ihrer Software funktionieren.

Da auf der Tastatur jedoch eine REST-API auf localhost ausgeführt wird und mein Glukosespiegel dies auch tut, habe ich das folgende Skript auf meinem Knie erstellt. Ich habe es zu cron hinzugefügt, und jetzt ändert meine Tastatur die Hintergrundbeleuchtung parallel zu Änderungen des Glukosespiegels in meinem Blut von orange (niedrig) auf grün, gelb oder rot (hoch). Es stellte sich als guter Hintergrundindikator heraus. Jemand hat getwittert, dass niemand auf die Tastatur schaut. Meiner Meinung nach ist das dumm. Ich werde wahrscheinlich bemerken, wenn meine Tastatur rot wird. Dies ist immer noch eine Hintergrundwarnung, aber bei Bedarf kann ich eine explizitere Nachricht zum Skript problemlos aufrufen.

 #!/bin/sh #      #  JSON-   API. #        Nightscout set -e # quit on first error. PORT=27301 #   5Q PID="DK5QPID" # product ID #  .  5Q  ,  166 #     . MAX_ZONE_ID=166 #      Nightscout   TEXT red=#f00 green=#0f0 yellow=#ff0 #   –    COLOR=#f50 bgvalue=$(curl -s https://MYSITE/api/v1/entries.txt?count=1 | grep -Eo '000\s([0-9]{1,3})+\s' | cut -f 2) if [ $bgvalue -gt 80 ] then COLOR=$green if [ $bgvalue -gt 140 ] then COLOR=$yellow if [ $bgvalue -gt 200 ] then COLOR=$red fi fi fi echo "  $bgvalue,   $COLOR!" for i in `seq $MAX_ZONE_ID` do #echo "   zoneId: $i" # :    "name"  "message" ,   #     curl -s -S --output /dev/null -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{ "name": "Nightscout", "id": "'$i'", "message": "Blood sugar is '$bgvalue'", "pid": "'$PID'", "zoneId": "'"$i"'", "color": "'$COLOR'", "effect": "SET_COLOR" }' "http://localhost:$PORT/api/1.0/signals" done echo "\n.\n\" 

Die lokale Tastatur-API sollte ein Signal nur für eine Zone oder einen Schlüssel senden. Daher habe ich einen kleinen Hack angewendet und mehr als hundert REST-Anforderungen gesendet, um die gesamte Tastatur einzufärben. Alle diese Aufrufe erfolgen jedoch lokal und laden das System nicht stark. Nach dem Übergang zur neuen API wird alles genauer.


Durch Drücken der Lautstärketaste wird zusammen mit einer hervorgehobenen Taste ein Popup-Fenster mit dem genauen Wert des Glukosespiegels angezeigt (dies ist eine Meldung im zweiten Aufruf zum Einrollen). Dies ist wieder ein Hack, aber ich werde daraus eine formale Anwendung machen, die aus dem Anwendungsspeicher installiert werden kann. Der Code kann hier genommen werden .

Welche anderen guten Ideen haben Sie zur Hintergrundzuckermeldung? LED-Streifen um den Monitor? Intelligente Glühbirne Phillips Hue?

Übrigens kann die Idee mit einem Display, das Sie betrachten können, verwendet werden, um andere Indikatoren zu verfolgen - Herzfrequenz, Angst, Blutdruck - alles, was in Ihrem Körper in Echtzeit (oder fast in Echtzeit) gemessen werden kann.

Source: https://habr.com/ru/post/de443154/


All Articles