Fitnesstracker und Smartwatch in einem

Microsoft-Band-Entwicklung: Cloud API und Web Tiles
Kommentare

Aktuell sind Fitnessarmbänder und Smartwatches stark im Trend. Viele der großen Hersteller, wie Apple mit der Apple Watch oder Sportausrüster mit ihren Fitnessarmbändern, sind bereits auf diesen Zug aufgesprungen. Auch Microsoft hat sein Wearable herausgebracht – das Microsoft Band – und bereits den Nachfolger in den Startlöchern. Das Band bietet sowohl den Fitnessaspekt als auch Funktionen des Smartphones auf dem Armband und steht Entwicklern für eigene Apps offen.

Während im vorigen Band-Artikel das Band-SDK näher betrachtet wurde, werden nun der Abruf bereits erfasster Daten über das Cloud API und das Aktualisieren von Kacheln über Web Tiles vorgestellt.

Das Microsoft Band

Das Microsoft Band ist Fitnesstracker und Smartwatch in einem. Es wird zunächst mit dem Smartphone über Bluetooth gekoppelt und kann über die Microsoft-Health-App verwaltet werden. Die App ist für alle drei großen Plattformen verfügbar. So lässt sich das Band sowohl mit Microsoft Systemen als auch mit iOS- und Android-Devices verbinden.

Eine „App“ auf dem Band wird als Tile bezeichnet, die über die Health-App aktiviert und deaktiviert werden kann, da auf dem Band nur eine bestimmte Anzahl an Tiles gleichzeitig aktiv sein kann. Das Band wird mit Funktionen zum GPS-Tracken für verschiedene Sportarten wie Laufen und Radfahren ausgeliefert. Einen Schlaftracker, Aufzeichnung der Schritte, Kalorien, der zurückgelegten Distanz und den Herzschlag pro Minute sowie einen UV-Sensor bringt das Band ebenfalls mit. Die GPS-Tracker der Sportarten funktionieren auch ohne Handy und synchronisieren sich später automatisch. Alle getrackten Daten können online in der Health-App und im Health-Portal betrachtet werden.

Darüber hinaus beinhaltet das Band Funktionen, die sonst auf dem Phone zu finden sind. Beispiele hierfür sind die Anrufliste und eingehende Anrufe, SMS, E-Mails sowie Kalendereinträge und Erinnerungen. Sehr nützlich ist dabei, dass alle Benachrichtigungen aus dem Aktionscenter des Phones auf dem Band angezeigt werden können und Cortana auch auf dem Band angesprochen werden kann. Die Antwort erscheint dann in Textform auf dem Display des Bands. Wem die vorhandenen Tiles nicht ausreichen oder wer seine Informationen in einer eigenen App bereitstellen möchte, kann in Echtzeit mithilfe des Band-SDKs auf die Sensoren usw. des Bands zugreifen, über das Cloud API vorhandenene Aktivitäten über eine REST-Schnittstelle abrufen oder Benachrichtigungen über Web Tiles versenden.

Cloud API

Das Microsoft Health Cloud API ermöglicht es, die aufgezeichneten Gesundheits- und Aktivitätsdaten über eine REST-Schnittstelle im JSON-Format zu konsumieren. Verfügt das Band, bzw. das gekoppelte Smartphone, über eine Internetverbindung, lassen sich die Daten in Echtzeit abrufen. Es werden sowohl aktiv getrackte Aktivitäten wie Laufen oder Schlafen zurückgeliefert als auch Daten, die vom Band während des Tages im Hintergrund ermittelt werden.

Abfragelimits: Das Microsoft Health Cloud API hat Abfragelimits pro Benutzer bzw. pro Zugriffstoken. Sollten diese Werte überschritten werden, wird die Fehlermeldung HTTP 429 „Too many requests“ zurückgegeben und für eine Spanne von 30 Sekunden werden keine weiteren Aufrufe angenommen. Die Limits liegen bei maximal 60 Abrufen pro Sekunde, 500 Abrufe pro Minute oder mehr als 1 MB Volumen pro Minute.

Authentifizierung: Bevor die Schnittstelle Daten zurückliefert, muss sich die App bzw. der Benutzer authentifizieren. Die Authentifizierung umfasst mehrere Schritte. Ziel ist es, einen Authentifizierungs-Token zu bekommen, der später mitgesendet wird. Es wird eine Client-ID und ein Client Secret der App, die später auf das Cloud API zugreift, benötigt. Diese IDs können von einer App aus der Application-Liste des Developer-Accounts kopiert werden. In meinem Fall ließ sich auch eine, dem Store fremde, Test-Windows-10-App mit den IDs einer bereits von mir veröffentlichten App betreiben. Dieser Vorgang gestaltet sich sonst leider etwas komplizierter, da zumindest schon einmal eine App im Developer Dashboard  eingerichtet sein muss, um die Nummern zu erhalten. Im Beispielprojekt des Cloud API befindet sich ein Projekt, in dem die Authentifizierung genauer betrachtet werden kann. Auf der Benutzeroberfläche wurde ein WebView-Control platziert. In diesem wird die Adresse https://login.live.com/oauth20_authorize.srf mit den Parametern der Client-ID und Client Secret aufgerufen. Es erscheinen die Anmeldemaske zum Microsoft-Account und eine Bestätigung darüber, welche Daten die App abrufen kann. Das Cloud API kann nur Daten aus dem dort angemeldeten Account benutzen, also nur aus dem eigenen Profil lesen. Profilübergreifende Aufrufe, wie beispielsweise das Vergleichen mehrerer Personen bei einem Wettkampf, sind nicht vorgesehen. Anschließend wird der Token aus dem Response gelesen. Der Token kann zwischengespeichert und für zukünftige Aufrufe benutzt, außerdem auch erneuert werden.

URL-Aufbau: Der URL der REST-Abfrage ist nach folgendem Schema aufgebaut: https://api.microsofthealth.net/v1/me/{Operation}/{Filter}

Der erste Teil ist immer gleich, danach folgt eine der untenstehenden Operationen. Wenn verfügbar, können Filterwerte übergeben werden.

Operationen: Es können die Operationen Activities, Devices, Profiles und Summaries verwendet werden. Über Profiles und Devices können Informationen zum gekoppelten Phone und dem Benutzer abgerufen werden. Bei den Zusammenfassungen, den Summaries, können die permanent im Hintergrund gesammelten Daten aggregiert auf Tages- oder Stundenwerte abgerufen werden. Als Filter können bei den Summaries außerdem Start- und Endzeit übergeben werden. Diese beinhalten u. a. Herzschläge, Start- und Endzeit, verbrannte Kalorien und Schritte.

Listing 1 zeigt den Abruf einer meiner Aktivitäten mit der ID 2519706953002358718. Der Abruf-URL sieht dabei folgendermaßen aus:

https://api.microsofthealth.net/v1/me/Activities/2519706953002358718. Es werden Daten zu den verschiedenen Fitnesszonen, gelaufener Strecke, Steigung, Pace, Kalorien und Herzschlägen zurückgegeben. Darüber hinaus gibt der activityType die Art der Aktivität, z. B. Run, Sleep oder Golf, an. Über den Typ kann ebenfalls gefiltert werden. Laut API Reference ist es auch möglich, die so genannten WayPoints zu erhalten. Das sind GPS-Daten und Zeiten der zurückgelegten Strecke, sodass eine Anzeige wie in der Health-App nachgebaut werden könnte; mit Karten und Splitdaten pro km.

 
{
  "activityType": "Run",
  "performanceSummary": {
    "finishHeartRate": 118,
    "heartRateZones": {
      "underAerobic": 1,
      "aerobic": 16,
      "anaerobic": 27,
      "fitnessZone": 18,
      "healthyHeart": 1,
      "redline": 1
    }
  },
  "distanceSummary": {
    "period": "Activity",
    "totalDistance": 825946,
    "actualDistance": 826124,
    "elevationGain": 10600,
    "elevationLoss": 10700,
    "maxElevation": 3800,
    "minElevation": 700,
    "waypointDistance": 2500,
    "pace": 458384
  },
  "splitDistance": 160934,
  "ID": "2519706953002358718",
  "startTime": "2015-05-14T12:11:39.764+00:00",
  "endTime": "2015-05-14T13:14:45.764+00:00",
  "dayId": "2015-05-14T00:00:00.000+00:00",
  "duration": "PT1H3M6S",
  "caloriesBurnedSummary": {
    "period": "Activity",
    "totalCalories": 802
  },
  "heartRateSummary": {
    "period": "Activity",
    "averageHeartRate": 146,
    "peakHeartRate": 178,
    "lowestHeartRate": 68
  }
}

Fehlermeldungen: Es gibt verschiedene Fehlercodes, die zurückgegeben werden können (Tabelle 1).

Tabelle 1: Fehlercodes

Tabelle 1: Fehlercodes

Web Tiles: Dieses neue Feature befindet sich zwar im Microsoft-Band-Developer-Bereich, setzt aber keine Entwicklerkenntnisse voraus. Mit Web Tiles lassen sich in einem fünfstufigen Assistenten RSS-Feeds im XML- oder JSON-Format auswählen, die als eigene Kachel mit den letzten Meldungen auf dem Band dargestellt werden.

Im ersten Schritt wird das Layout ausgesucht (Abb. 1). Es kann zwischen den Arten „Single page tile“, „Multiple page tile“ und „Feed tile“ ausgewählt werden. Die Datenquelle kann immer die gleiche sein, die ersten beiden Layoutarten sind für feste Einträge, deren Informationen sich ändern können. So wird bei „Single page tile“ immer das gleiche Element angezeigt, aber aktualisiert, wenn sich Informationen ändern. Hingegen ist „Feed tile“ bestens für rotierende, neue News geeignet. Es kann durch die Liste der letzten News navigiert werden, und für neue Meldungen fallen alte aus dem Raster. In kleinen Vorschaubildern werden die verwendbaren Layouts dargestellt, so z. B. mit Überschrift oben und Text unten oder dreizeilig.

Abb. 1: Layout und Template

Abb. 1: Layout und Template

Im zweiten Schritt wird die abzurufende Adresse eingegeben und auf WEITER geklickt. Im nächsten Schritt (Abb. 2) werden die Daten von der eingegebenen Adresse abgerufen und, wie rechts im Bild zu sehen, hierarchisch dargestellt. Auf der linken Seite befindet sich das zuvor ausgewählte Template mit den Platzhaltern. Es können nun per Drag and Drop die Elemente der Abfrage auf die Platzhalter gemappt werden. In meinem Beispiel habe ich den Title auf den Header und die Description auf den Body gemappt. Im Assistenten scheint es noch Probleme mit dem Encoding zu geben, so wird das „ü“ nicht korrekt dargestellt. Auf dem Band selbst liefert das Endprodukt des Wizards eine korrekte Darstellung (Abb. 4).

Abb. 2: Datenmapping

Abb. 2: Datenmapping

Im Folgenden vierten Schritt kann die Benachrichtigungsmeldung auf ähnliche Art und Weise geändert werden wie bei den Seiten. Es können mehrere Meldungen designt und über Filter unterschieden werden. So lassen sich z. B. verschiedene Meldungen anzeigen, je nachdem, ob Informationen aus der Abfrage nicht vorhanden, größer oder kleiner sind.
Im letzten Schritt (Abb. 3) werden noch abschließend die Herausgeberinformationen vergeben. Dazu gehören als Pflichtelemente der Titel, eine Beschreibung und das Unternehmen. Des Weiteren können die Akzentfarbe und die Icons der neuen Kachel bestimmt werden.

Abb. 3: Herausgeberinformationen

Abb. 3: Herausgeberinformationen

Sind alle notwendigen Informationen ausgefüllt, kann das erstellte Web Tile auf der letzten Seite heruntergeladen werden. Man erhält die Datei mytile.webtile, diese kann von der Health-App auf dem Phone geöffnet und per Knopfdruck als neue Kachel auf dem Band veröffentlicht werden (Abb. 4). Es muss also nur die Datei auf das Phone kopiert oder per Mail versendet werden. Die Web-Tiles-Datei enthält keine sensiblen Daten und kann problemlos weitergegeben werden. So kann ein zentrales Web Tile in Unternehmen erstellt werden, das alle Mitarbeiter verwenden können oder eins im Freundeskreis aus dem eigenen Blog.

Abb. 4: Microsoft Band mit neuem Web Tile

Abb. 4: Microsoft Band mit neuem Web Tile

Zusammenfassung

Das Cloud API setzt genau da an, wo das Microsoft-Band-SDK endet: Das Band-SDK wird also benutzt, wenn Daten direkt mit dem Band ausgetauscht oder erfasst werden sollen. Es verwendet das Cloud API bei allen abgeschlossenen Aktivitäten aus der Vergangenheit, eine Verbindung zum Band ist nicht erforderlich. Auch wenn bereits Vieles möglich ist, gibt es noch Punkte, die noch nicht funktionieren oder etwas kompliziert erscheinen, wie z. B. die Authentifizierung. Da das Cloud API sich noch im Preview-Stadium befindet, ist hier noch einiges zu erwarten.

Mit den Web Tiles hat Microsoft einen unkomplizierten Mechanismus eingeführt, um Informationen auf das Band zu bekommen. Darüber hinaus können Web Tiles zwischen anderen Benutzern, Mitarbeiter oder Freunden einfach durch Verschicken/Kopieren geteilt werden.

In wenigen Tagen erscheint das Band 2, dann wird sich zeigen, um welche neuen Möglichkeiten das Band-SDK, Cloud API und Web Tiles noch anwachsen.

Windows Developer

Windows DeveloperDieser Artikel ist im Windows Developer erschienen. Windows Developer informiert umfassend und herstellerneutral über neue Trends und Möglichkeiten der Software- und Systementwicklung rund um Microsoft-Technologien.

Natürlich können Sie den Windows Developer über den entwickler.kiosk auch digital im Browser oder auf Ihren Android- und iOS-Devices lesen. In unserem Shop ist der Windows Developer ferner im Abonnement oder als Einzelheft erhältlich.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -