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

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

Vorheriges Thema - Nächstes Thema

KölnSolar

Fragen werden wohl nicht mehr beantwortet  :o

Offizielles Modul ist es auch noch nicht  ???

Log meldet ab u. zu:
2018.02.04 14:53:01 1: fitbit: fitbit_parseHttpDataError: Found error 'insufficient_scope' in JSON reply with msg 'This application does not have permission to access social data. Visit https://dev.fitbit.com/docs/oauth2 for more information on the Fitbit Web API authorization process.'

bei vermutlich gleichzeitigem freeze von FHEM  :( Ursache oder Wirkung ?
Grüße Markus
PS: Und wenn Du das Modul nicht mehr supportest, mach doch bitte einen entsprechenden letzten Post und schließe das Thema.
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

oti

Moin,

ich hätte dann auch noch eine Frage. :-)

Ich habe gestern meinen Raspberry 3 durch einen neuen 3 B+ ersetzt. In dem Zuge musste ich von Jessie auf Stretch updaten.
Es läuft auch alles, bis auf dieses Modul, welches FHEM zum Komplettabsturz bringt...

Der Absturz kommt direkt beim Aufruf des define:

define fitbit_IO fitbit ACCOUNT crypt:07482b0c06XXXXXX...

Log sagt:
Not an ARRAY reference at ./FHEM/32_fitbit.pm line 827.

Eine Idee, woran es liegen könnte?

Gruß
Olaf

sebbo2002

Leider keine Idee, aber du bist nicht alleine. Selbes Problem, selbe Geschichte.

reibuehl

Wenn sich bis auf das Hardware und Raspbian Update nichts geändert hat, würde ich erst mal checken, ob die benötigten Perl Module installiert sind:


  • libdigest-hmac-perl
  • libjson-perl
  • libposix-strptime-perl

Evtl. ist es noch mehr, aber die drei sehen so aus, als ob sie nicht Teil der Standard Perl Installation wären.
Reiner.

oti

#49
Hi,

danke für die Module, es scheint zu funktionieren.
Nach dem Ausführen von

sudo apt-get install libposix-strptime-perl
sudo apt-get install libjson-perl (ist anscheinend schon installiert)
sudo apt-get install libposix-strptime-perl

kommt es nicht mehr zum Absturz oder Fehlermeldungen im Log.

Danke und Gruß
Olaf

TeeVau

Hallo in die Runde,
mein letzter Besuch ist schon etwas her. Ich habe im Moment nicht die Motivation und Muse das Modul zu pflegen. Abgesehen davon, dass ich nicht so zeitnah reagieren kann, wie es der ein oder anderen sich wünscht.
Gibt es jemanden in den Reihen der sich um die Pflege/Support und Weiterentwicklung kümmern möchte? Der kann das Modul gerne übernehmen.

Grüße, Tobias
FHEM 5.8 dev (virtualisiert) / FBF 7390 (CUL 868MHz V 1.51 / panStick (AVR1))
FS20: fs20di,fs20pira,fs20sm8,fs20st2,fs20tfk,fs20ue1,fs20ws1
panStamp (AVR1): RGB Multi von ext23, 1W-DSxxxx, I/O Sketch, Spritzpumpe
Multimedia: Panasonic TV (VIERA), Kodi, Yamaha RX-V781, LMS
Sonstiges: XiaomiFlowerSen

rr725

so....amaz...hat eine fitbit charge 2 geliefert- ist ja schon ein geiles teil.

natürlich habe ich sofort geschaut, ob das teil in ghrm eingebunden werden kann und bin hier gelandet.   man oh mann....wie kommt man nur daruf so etwas zu entwickeln. die sache mit der fitbit einrichtung ist ja der hammer. na gut, scheint funktioniert zu haben, bekomme beim anlegen des fhem devic keine fehlermeldung
NAME
fitbit_IO
NR
148
STATE
Initialized
SUBTYPE
ACCOUNT
TYPE
fitbit


allerdings wir nur "Initialized"  angezeigt- keine readings. hab´ ich etwas überlesen bei den post´s ?!
hatte zwar gelesen das erst bei einem update die reading angelegt werden, wobei stellt sich nun die frage update von was !?
mitterlweile sind alle möglichen sachen auch auf der fitbit weboberfläche upgedatet worden  !?

evtl. hab´ ich ja noch etwas übersehen !?

vielen Dank !!

rr725

poah.....bin einen schritt weiter.
da ich ja keinerlei fehlermeldung im log hatte wusste ich nun nicht wo ich noch ansetzen konnte.
nun hatte ich noch ein wenig zeit um zu testen und suchen

das modul 32_fitbit.pm gibt nur "set  fitbit_IO getFriends" her ?!
wenn ich dies eingebe, werden auch meine im fitbitkonto verknüpften Feunde  in fhem importiert und mit readings angelegt.
jemand eine idee wie ich meine eigenen daten importiert bekomme ?!

vielen dank.

rr725

hat sich erledigt.....

wieso wird der puls eigentlich nicht importiert- obwohl beim anlegen der app bei fitbit angehakelt.......

rr725

vielen Dank für das Modul- funktioniert auch, nur.....


hab es ca. 2 Wochen im Einsatz und nun ist mir aufgefallen, lt. Eintrag in der log Datei, das der Token abgelaufen sei. Hm...hatte ich nicht irgendwo gelesen er sei 1 Jahr gültig !?
Läuft das Teil wirklich alle 2 Wochen ab ?!

Wuehler

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.

rr725

Ok...hab das Modul wieder aus meiner fhem konfig entfernt. Nach exakt einer woche kommt die meldung:
fitbit_parseHttpHeader: HTTP 401 (Unauthorized) found. Maybe a wrong token?


Wuehler

Ich habe mit einer Anpassung schon mal angefangen, geht aber nicht so schnell und wirklich Zeit dazu finde ich gerade auch nicht. Der erste schnelle Hack hat leider nicht funktioniert  >:(
Da sich das Token regelmäßig ändert muss man vermutlich auch die define-Methode anpassen und setter für Token und refreh-Token zur Verfügung stellen.

Wäre hilfreich, wenn sich noch jemand die fitbit-Doku ansieht und beschreibt, wie man die Autorisierung am besten für den Nutzer umsetzt.

Skjall

Moin zusammen,
gibt es eine Möglichkeit, dass das Modul nicht alle FRIENDs anlegt?
VG Jan

strategy

Hallo zusammen,

zuerst einmal vielen Dank an den Author des Moduls.

Ich habe das gleiche Problem wie Skjall:
Zitat von: Skjall am 01 September 2018, 12:13:06
Moin zusammen,
gibt es eine Möglichkeit, dass das Modul nicht alle FRIENDs anlegt?
VG Jan

Daher habe ich mir erlaubt das Modul zu modifizieren und habe folgende Ergänzungen vorgenommen:

-> Ein zusätzliches Attribut createFriends. Nur wenn dieses Attribut auf 1 gesetzt wird, werden auch die Friends angelegt. Bei fehlen des Attributs oder einem Wert von 0 werden keine Friends mehr angelegt und auch die Methode GetFriends funktioniert nicht mehr.
-> Ein zusätzliches Attribut mit createDevices. Hier ist das Default-Verhalten genau anders herum. Nur wenn das Attribut gesetzt ist und einen Wert von 0 hat werden keine Devices angelegt. In allen anderen Fällen werden alle Devices angelegt.

Zudem hatte ich bisher eine HTTPMOD Lösung um die Daten aus meiner Withings Waage an Fitbit zu übertragen um alle Daten dort zu konsolidieren.
Das habe ich auf dem Weg auch mit in das Modul gepackt. Daher gibt es jetzt 2 zusätzliche Set Methoden.

SetWeight um das Gewicht zu setzen und SetFat um den Körperfett-Anteil in % zu setzen.
Die Werte werden jeweils mit dem aktuellen Datum und Zeitstempel erfasst.

Ich hoffe das Modul hilft so noch dem einen oder anderen...

Gruß,
Matthias



Changelog im Modul:


# Modification Strategy / 2019-03-09
# Added attribute createFriends - by default friends are no longer created
# Added attribute createDevices - by default devices are created but creation can be disabled.
# Added setWeight to insert a weigth value.
# Added setFat to insert a fat value