JawboneUp: Unterschied zwischen den Versionen
(Unvollständige erste Version.) |
(Ersetzung von Forum-Links mit Vorlage Link2Forum) |
||
(15 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 3: | Zeile 3: | ||
|ModPurpose=Anbindung der Fitness Daten von Jawbone Fitness Trackern | |ModPurpose=Anbindung der Fitness Daten von Jawbone Fitness Trackern | ||
|ModType=d | |ModType=d | ||
|ModCmdRef=JawboneUp | |ModCmdRef=JawboneUp | ||
|ModForumArea= | |ModForumArea=Sonstiges | ||
|ModTechName=38_JawboneUp.pm | |ModTechName=38_JawboneUp.pm | ||
|ModOwner=Domschl ([http://forum.fhem.de/index.php?action=profile;u=3821 Forum] / [[Benutzer Diskussion:Domschl|Wiki]]) | |ModOwner=Domschl ([http://forum.fhem.de/index.php?action=profile;u=3821 Forum] / [[Benutzer Diskussion:Domschl|Wiki]]) | ||
}} | }} | ||
'''JawboneUP''' importiert Fitness-Daten (Schritte, Kalorie-Verbrauch, Aktivität) als Readings in den FHEM Server. | '''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 [https://jawbone.com/ Jawbone], da die Daten von der Jawbone-cloud geladen werden. | ||
==Übersicht== | ==Übersicht== | ||
Zeile 29: | Zeile 27: | ||
sudo apt-get install libio-socket-ssl-perl | sudo apt-get install libio-socket-ssl-perl | ||
cpan -i WWW::Jawbone::Up | cpan -i WWW::Jawbone::Up | ||
Das Kommando <code>cpan</code> muß beim ersten Aufruf konfiguriert werden. In der Regel reichen die vorgeschlagenen Standards aus. | Das Kommando <code>cpan</code> muß beim ersten Aufruf konfiguriert werden. <code>cpan</code> 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 <code>cpan</code> fehlschlägt, kann die Installation mit dem Parameter <code>-f</code> (force) erzwungen werden. Dies ist nützlich, falls die Installation in Testroutinen scheitert, die nicht entscheidend sind: | Falls <code>cpan</code> fehlschlägt, kann die Installation mit dem Parameter <code>-f</code> (force) erzwungen werden. Dies ist nützlich, falls die Installation in Testroutinen scheitert, die nicht entscheidend sind: | ||
cpan -i -f WWW::Jawbone::Up | 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==== | ====Fehlersuche==== | ||
Zeile 37: | Zeile 39: | ||
reload 38_JawboneUp | reload 38_JawboneUp | ||
eingeben: dann erhält man meistens einen Hinweis auf das Problem. | eingeben: dann erhält man meistens einen Hinweis auf das Problem. | ||
Nach drei API Fehlern schaltet sich das Modul automatisch inaktiv. Per "<code>get update</code>" (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==== | |||
* {{Link2Forum|Topic=24889|LinkText=Forums-link für JawboneUp}} | |||
==Konfiguration== | ==Konfiguration== | ||
define <name> JawboneUp <user-email> <password> [<poll-intervall>] | |||
User-email und password sind die Anmelde-Informationen für den [https://jawbone.com/ 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. | |||
[[Kategorie:Other Components]] | [[Kategorie:Other Components]] | ||
[[Kategorie:IP Components]] | [[Kategorie:IP Components]] |
Aktuelle Version vom 19. März 2017, 20:31 Uhr
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. 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.