[Neues Modul - 32_fitbit.pm] Fitbit Web API

Begonnen von TeeVau, 17 Juni 2017, 17:40:41

Vorheriges Thema - Nächstes Thema

strategy

Zitat von: Wuehler am 07 August 2018, 22:23:14
Wenn ich es richtig sehe, hat fitbit die Authorisierung an den OAuth2-Standard angepasst, so dass das token eine Gültigkeitsdauer hat. Man bekommt dann noch ein refresh-Token um regelmäßig ein neues Token zu beziehen. Da müsste das Modul wahrscheinlich angepasst werden.

Das ist richtig, dass das Token eine Gültigkeitsdauer bekommen.
War aber auch schon immer so. Lediglich hat sich anscheinend die Default-Einstellung geändert und statt einem Jahr wird die Freigebe aktuell immer nur für eine Woche erteilt.
Das kann man allerdings bei der Einrichtung ändern und wieder ein Jahr auswählen. Damit ist das Problem zwar nicht gänzlich aus der Welt und die Idee von Wuehler das Token zu aktualisieren muss trotzdem umgesetzt werden. Allerdings hat man damit nun 52 Wochen Zeit und nicht nur eine...

Schaut Euch bitte mal im allerersten Post von TeeVau den Screenshot Nummer 3 an. Da hat Tobias die Zeile in der "1 Jahr" steht schon gelb hervorgehoben. Da steht jetzt standardmäßig eine Woche. Man kann das Feld aber anklicken und auf 1 Jahr umstellen...

Hat mich übrigens auch 3 Versuche gekostet....

strategy

Hallo zusammen,

ich hab noch eine Aktualisierung vorgenommen.

Zum einen habe ich die Schlafdaten "repariert".
Hier hat es zwischenzeitlich eine Anpassung der Fitbit Web API gegeben und statt der bisherigen 3 Schlafzonen gibt es nun 5 die zudem auch noch andere Namen haben. Daher habe ich die Leseroutinen und die Readings angepasst. Die alten Readings werden nicht mehr aktualisiert, dafür gibt es jetzt entsprechend der 5 Zonen neue Readings.

Zudem habe ich einen ersten Versuch unternommen die Herzfrequenz-Daten mit einzubinden.
Ersichtlich ist jetzt der Ruhepuls und die zusammengefassten Daten für die verschiedenen Aktivitätszonen.

Ich hoffe die Daten sind hilfreich.

Gruß,
Matthias


netsrac4th

Hallo,

Nach anlegen im FHEM sehe ich nur Freunde, aber nicht mich.
Liegt das daran, das ich nur via Handy die Daten aufzeichne?

Grüße
netsrac4th

strategy

Mhh,

da hab ich wohl beim Refactoring eine Methode entfernt....
Hier jetzt eine funktionierende Version des Moduls.

Gruß,
Matthias

netsrac4th

Jetzt hat es paar Tage funktioniert. Seit heute kurz nach Mitternacht nicht mehr.

API Error. See FHEM Log for more details

strategy

Zitat von: netsrac4th am 19 März 2019, 19:04:26
Jetzt hat es paar Tage funktioniert. Seit heute kurz nach Mitternacht nicht mehr.

API Error. See FHEM Log for more details

Bin gerade unterwegs, aber würde mir das morgen anschauen.
Welche Version hast du denn benutzt? Die von der ersten Seite oder die aus meinem Post?
Kannst du mir einen Auszug aus deinem Logfile schicken? Das macht die Diagnose einfacher...

Gruß,
Matthias

netsrac4th

Ich hab die aus deinem letzten Post genommen.
Nach paar Tagen dann immer der gleiche Fehler.
Auch ein neu anlegen hat nichts gebracht.

fitbit_parseHttpHeader: HTTP 401 (Unauthorized) found. Maybe a wrong token?

strategy

Das ist seltsam.

Aktuell fallen mir nur 2 mögliche Gründe ein:

1. Das Token hat nur eine sehr begrenzte Gültigkeit von einem Tag oder einer Woche.
    Ich glaube zwischenzeitlich ist eine Woche bei der Fitbit Web API voreingestellt. Leider kann man das auch nicht nachträglich ändern.
    Um sicherzustellen, dass du hier ein Jahr ausgewählt hast musst du eine neue Applikation auf der Fitbit Seite registrieren und wenn du nach der Freigabe der Rechte gefragt wirst den Zeitraum von einer Woche auf ein Jahr ändern...

2. Fitbit begrenzt die Zugriffe pro Tag (ich glaube auf 1500). Möglicherweise machst du zu viele Zugriffe auf deinen Account.
   Entweder weil du "zu viele Geräte und Freunde" im System hast du damit im normalen Aktualisierungszyklus zu viel Interaktion mit dem System stattfindet oder weil du die Rktualisierungsrate (Interval) zu hoch gesetzt hast.
   Das kannst du prüfen indem du an deiner fitbit web instanz die folgenden beiden Parameter prüfst:
     
     rateLimitLimit
     rateLimitRemaining
     


Kannst du das bitte mal prüfen und mir ein Feedback geben...

netsrac4th

Hi strategy,

Wieder alles gelöscht und neu eingerichtet. Derzeit funktioniert es.
Die Wahl zwischen 1 Tag, Monat Jahr gibt es bei Fitbit nicht mehr.

fhem> list FITBIT
Internals:
   .triggerUsed 1
   Clients    :fitbit:
   DEF        ACCOUNT
   FUUID      5c9f59dd-f33f-9674-aaaa-cffedd347851af77
   NAME       FITBIT
   NR         313
   STATE      Initialized
   SUBTYPE    ACCOUNT
   TYPE       fitbit
   .attraggr:
   .attrminint:
   READINGS:
     2019-03-30 16:15:13   rateLimitLimit  150
     2019-03-30 16:15:13   rateLimitRemaining 150
     2019-03-30 16:15:13   rateLimitReset  2688
     2019-03-30 12:58:21   state           Initialized

Attributes:
   createDevices 1
   createFriends 1

strategy

Hi netsrac4th,

deine Aussage

ZitatDie Wahl zwischen 1 Tag, Monat Jahr gibt es bei Fitbit nicht mehr.

hat mich ein wenig stutzig gemacht. Daher habe ich den Registrierungsworkflow nochmal durchgeführt.
Die Auswahl gibt es nach wie vor und vorausgewählt ist leider immer noch eine Woche.

Du musst bei der Registrierung auf die folgenden Punkte achten:

Wenn du eine neue App registrierst musst du sicherstellen, dass der OAuth Application Type "Personal" ist. Sonst klappt es nicht.
-> Siehe Screenshot 1

Wenn du dann auf die OAuth Tutorial Page wechselst muss direkt beim ersten Punkt die Auswahl auf "Implicit Grant Flow" stehen. Nur dann bekommst du ein langlaufendes Token. Authorization Code Flow funktioniert nicht oder nur für einen Tag.
-> Siehe Screenshot 2

Dann kannst du auf den generierten Link klicken und es öffnet sich eine neue Seite um die Rechte zu vergeben. Hier musst du jetzt vor der Bestätigung die Angabe 1ne Woche auf 1 Jahr ändern...
-> Siehe Screenshot 3

Dann solltest du für 1 Jahr Ruhe haben...


netsrac4th

#70
Hi,

Ich bekomme seit dem 03.09.2019 folgende Fehlermeldung:

FITBIT: fitbit_parseHttpDataError: Found error 'not_found' in JSON reply with msg 'The API you are requesting could not be found.'

Haben die an ihrer API rumgeschraubt?

Grüße

strategy

Zitat von: netsrac4th am 06 September 2019, 14:19:19
Hi,

Ich bekomme seit dem 03.09.2019 folgende Fehlermeldung:

FITBIT: fitbit_parseHttpDataError: Found error 'not_found' in JSON reply with msg 'The API you are requesting could not be found.'

Haben die an ihrer API rumgeschraubt?

Grüße

Keinen Plan. Um ehrlich zu sein versauert mein Tracker gerade in der Schublade.
Ich lade das Ding gleich mal auf und dann schau ich am Mittwoch mal ob bei mir noch Daten ankommen.
Ich bekomme morgen bestimmt auch ein paar Puls-Werte wenn der BVB gegen Barcelona spielt  :D

Gruß,
Matthias

strategy

Also, hab meinen Tracker jetzt seit 2 Wochen wieder in Gebrauch und bei mir klappt die FitBit Integration noch bestens.
Ich will aber nicht ausschließen, dass irgendein anderer Faktor hier eine Rolle spielt.

Habe bei einer anderen Komponente mal ein ähnliches Problem gehabt.
Bei mir hat es funktioniert bei anderen nicht. Habe mich dann an den Support gewandt und die haben mir dann erklärt, dass man die Server einen nach dem anderen Umstelle und am Ende war einfach entscheidend auf welchem Server das Benutzerkonto verwaltet wurde.

Vielleicht ist das hier ein ähnliches Problem...
Hast du das Loglevel mal auf verbose gesetzt? Wenn da nicht mehr Info kommt, würde ich das Modul mal erweitern um dem Problem auf die Schliche zu kommen...

Gruß,
Matthias

xasher

Hallo,

ich finde das Modul toll. Leider stimmt es mit der aktuellen API nicht mehr ganz überein, weil sich das json geändert hat.
Ich würde mich freuen, wenn das Modul ein Revival erleben würde.

@TeeVau: Vielleicht könntest du dir das Thema nochmals anschauen, wenn es bei dir möglich ist.

Besten Dank,
Alex

bombardi

Auch wenn dieses Thema lange nicht mehr besprochen wurde trotzdem der Versuch Hilfe zu bekommen.

Ich habe ein Problem mit dem getFriends.
Wenn ich versuche set fitbit_IO getFriends zu benutzen bekomme ich die Meldung
Unknown argument getFriends, choose one of getFriends setWeight setFat.
Der State ist danach "API Error. See FHEM Log for more details"
und im Log steht "fitbit_IO: fitbit_parseHttpDataError: Found error 'not_found' in JSON reply with msg 'The API you are requesting could not be found.'"

Hat jemand einen Tip was da schief läuft ?