JawboneUp
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) |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
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. In der Regel reichen die 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
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 |
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 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.