JawboneUp

Aus FHEMWiki
Wechseln zu: Navigation, Suche
JawboneUp
Zweck / Funktion
Anbindung der Fitness Daten von Jawbone Fitness Trackern
Allgemein
Typ Gerätemodul
Details
Dokumentation EN / DE
Support (Forum) Sonstiges
Modulname 38_JawboneUp.pm
Ersteller Domschl (Forum / Wiki)

JawboneUP importiert Fitness-Daten (Schritte, Kalorie-Verbrauch, Aktivität) als Readings in den FHEM Server. Als Quelle dient ein JawboneUp[24] Fitness Tracker, die Pebble Uhr mit Jawbone-Watchface, oder der Iphone Schrittzähler mit Jawbone App. Voraussetzung ist ein account bei Jawbone, da die Daten von der Jawbone-cloud geladen werden.


Übersicht

Es werden folgende Szenarien unterstützt:

  • Jawbone Fitness Tracker + Smartphone App + Jawbone Account (Jawbone tracker zählt Schritte)
  • Smartphone mit Schrittzähler (z.b.: Iphone 5/6) + Jawbone Account (Smartphone zählt Schritte)
  • Pebble Smartwatch + Pebble-Jawbone-App + Smartphone Pebble-App + Jawbone Account (Pebble zählt Schritte)

In allen Fällen wird ein Account bei Jawbone benötigt. Das Modul Jawbone lädt die benötigten Daten dann von der Jawbone-cloud in den FHEM Server.

Installation

Das Modul JawboneUp benötigt die folgenden Perl-Bibliotheken: LWP::Agent, IO::Socket:SSL, die in der Regel bereits installiert sind. Zusätzlich muß das Modul WWW::Jawbone::Up per CPAN ( cpan -i WWW::Jawbone::Up ) installiert werden. Leider hat dieses Modul eine ziemliche Anzahl von abhängigen Modulen.

Installation der Jawbone Bibliotheken in Debian oder Raspberry Pi

sudo apt-get update
sudo apt-get install libio-socket-ssl-perl
cpan -i WWW::Jawbone::Up

Das Kommando cpan muß beim ersten Aufruf konfiguriert werden. cpan kann beim ersten Aufruf verschiedene Installations-Methoden vorschlagen. Am besten ist es, die "sudo"-Methode auszuwählen, damit die installierten Module Systemweit zur Verfügung stehen. In der Regel reichen die ansonsten vorgeschlagenen Standards aus.

Falls cpan fehlschlägt, kann die Installation mit dem Parameter -f (force) erzwungen werden. Dies ist nützlich, falls die Installation in Testroutinen scheitert, die nicht entscheidend sind:

cpan -i -f WWW::Jawbone::Up

In diesem Fall müßen die Fehlermeldungen allerdings genau untersucht werden, um sicherzustellen, daß kein wirklicher Fehler aufgetreten ist.

Nachtrag: Stand Juni 2015 laufen mit Debian Jessie alle Tests für eine Installation von WWW::Jawbone::Up fehlerfrei durch.

Fehlersuche

Wenn das Modul nicht startet, dann liegt das höchstwahrscheinlich an fehlenden abhängigen Modulen. Im FHEM Web-Interface einfach

reload 38_JawboneUp

eingeben: dann erhält man meistens einen Hinweis auf das Problem.

Nach drei API Fehlern schaltet sich das Modul automatisch inaktiv. Per "get update" (oder restart) kann es wieder angeschaltet werden. API Fehler können z.B. durch falsche Usernamen/Password Kombinationen verusacht sein, oder falls der Jawbone server nicht erreichbar ist.

Support Forum

Konfiguration

define <name> JawboneUp <user-email> <password> [<poll-intervall>]

User-email und password sind die Anmelde-Informationen für den JawboneUp Service. Die Standard Pollrate ist 3600 (1h), Minimum ist 300 (5 min), wobei in Wert von unter 900 (15 min) nicht empfohlen wird.

Beispiel

define MyJawbone JawboneUp me@sample.net s3cr3t 1800

Readings

Als Readings stehen zur Verfügung:

active_time (aktive Zeit in Sek.)
bg_steps (Anzahl Schritte)
bmr_calories (Ruhekalorienverbrauch)
bmr_calories_day (Durchschnittlicher Tages-Ruhekalorienverbrauch (ohne Bewegung))
calories (Kalorien, die durch Aktivität verbraucht wurden)
distance (Zurückgelegte Strecke in km)
longest_idle (inaktive Zeit in Sek.)
sleep_mode 1: sleep mode ist aktiv, 0: nicht aktiv
stopwatch_mode 1: stopwatch mode ist aktiv, 0: nicht aktiv
sleep_asleep Anzahl Sekunden Schlaf im Schlafmodus
sleep_wake Anzahl Sekunden Wachzustand im Schlafmodus
awakenings Awakenings
light Light sleep during sleep period, time in seconds
time_to_sleep Time to fall asleep in seconds
bedtime Time in bed
deep Deep sleep in seconds
awake Time awake in seconds

Die Anzahl verbrauchter Kalorien für den laufenden Tag errechnet sich aus calories + bmr_calories.

Die Readings sleep_mode und stopwatch_mode spiegeln die Hardware-Knöpfe des Jawbone Trackers wieder. Allerdings muß klar sein, daß die Information nicht in Echtzeit zur Verfügung steht. Falls der Tracker mit der App auf dem Smartphone verbunden ist, wird eine Zustands-Änderung von sleep_mode oder stopwatch_mode binnen Sekunden and die Jawbone Cloud gemeldet. Die Zeitdauer nach der die Information dann in FHEM zur Verfügung steht, ist abhängig von der Pollrate (normalerweise nicht kleiner als 15min, kann minimal auf 5min gesetzt werden). Zum Test kann ein direkter update von der Cloud per "get update" im web interface ausgelöst werden.

Technische Details

Alle Kommunikation per Internet wird mit einem Hintergrund-Prozeß durchgeführt, das Modul sollte also den FHEM nicht "durcheinander bringen".

Die Kommunikation mit dem Jawbone service nutzt eine inoffizielle API, die über das Perl Modul WWW::Jawbone::Up zur Verfügung gestellt wird. Die offizielle Jawbone API nutzt einen für open source Projekte nicht wirklich gut geeigneten Authenifizierungsmechanismus: Auth2. Jeder Anwender müßte sich bei Verwendung dieser API als Entwickler bei Jawbone registrieren.

Historie

Update 28. Juni 2015 (v. 0.1.4)

  • use Blocking; hinzugefügt
  • Bessere checks auf nicht initialisierte Antworten bei der JSON-Kommunikation mit dem Jawbone Server eingeführt. Dies verhindert Fehlermeldungen auf der Konsole bei Protokoll-Abweichungen.

Update 4. April 2015 (v. 0.1.3)

  • Bugfix: Step-count was overwritten by stopwatch mode (introduced by last update).
  • Patch von My-FHEM, Unterstützung von mehr Schlaf-Statistik.

Update 3. April 2015

  • Neue Readings für die Schlaf-Statistik. Der sleep_mode steht als FHEM reading zur Verfügung (für evtl. NOTIFY-Anwendungen).
  • Pollraten Minimum auf 300 Sek. erniedrigt. (Empfohlen: 900 Sek.)

Update 2. April 2015

  • Das Modul 38_JawboneUp.pm ist nun Teil des FHEM systems und kann über den normalen FHEM update installiert werden.

Update 27. Juni 2014 (v. 0.1.1)

  • Bessere Fehlerbehandlung: es scheint Fälle zu geben, in denen "BlockingCall" weder den callback für completion noch für timeout aufruft.
  • Minimum Poll-Intervall auf 900 Sek. erhöht.