Read the statement by Michael Teeuw here.
Fitbit
-
I am having the same issue Greppie had at some point.
Next thing is, that setupAccess.py doesnt work or I did not understood how it does. The script start a server at port 8080 but if fitbit redirects to it I get an error that the page is not accessible. However I copied the token from url an put it into tokens.ini. There’s only an access token and no refresh token, right?
I am having this same problem, I get a 404 error on the attempt to get my tokens. I was able to pull the token from the URL, but have no way to get the refresh. Please help, im so close! Thanks for all of your effort.
When I click the autogenerated authorization URL, I am redirected to http://127.0.0.1:8080/ and throw this 404 error.
404 Not Found
Missing parameters: state
Traceback (most recent call last):
File “/usr/local/lib/python2.7/dist-packages/cherrypy/_cprequest.py”, line 670, in respond
response.body = self.handler()
File “/usr/local/lib/python2.7/dist-packages/cherrypy/lib/encoding.py”, line 217, in call
self.body = self.oldhandler(*args, **kwargs)
File “/usr/local/lib/python2.7/dist-packages/cherrypy/_cpdispatch.py”, line 67, in call
raise sys.exc_info()[1]
HTTPError: (404, ‘Missing parameters: state’)This is what I see when I run setupAccess.py
Is this part normal?
CherryPy Checker:
The Application mounted at ‘’ has an empty config.Full output:
pi@mirror:~/MagicMirror/modules/MMM-fitbit/python $ sudo python setupAccess.py
Get credentials from credentials.ini? (Y/N)
n
Would you like to enter them manually now? (Y/N)
y
Enter client id:
227WT7
Enter client secret:
9fe3da42b609603a67e7730aad3ca96a
[25/Oct/2016:11:20:26] ENGINE Listening for SIGHUP.
[25/Oct/2016:11:20:26] ENGINE Listening for SIGTERM.
[25/Oct/2016:11:20:26] ENGINE Listening for SIGUSR1.
[25/Oct/2016:11:20:26] ENGINE Bus STARTING
CherryPy Checker:
The Application mounted at ‘’ has an empty config.[25/Oct/2016:11:20:26] ENGINE Started monitor thread ‘Autoreloader’.
[25/Oct/2016:11:20:26] ENGINE Started monitor thread ‘_TimeoutMonitor’.
[25/Oct/2016:11:20:27] ENGINE Serving on http://127.0.0.1:8080
[25/Oct/2016:11:20:27] ENGINE Bus STARTED
127.0.0.1 - - [25/Oct/2016:11:20:40] “GET / HTTP/1.1” 404 1206 “” “Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.91 Safari/537.36” -
I have the same issue but I think the problem is earlier in the install
Well I’m having an even earlier problem in installing the dependencies:
pi@Mirror1:~/MagicMirror/modules/MMM-fitbit $ npm install python-shellreturns:
/home/pi/MagicMirror/modules └── python-shell@0.4.0 npm WARN enoent ENOENT: no such file or directory, open '/home/pi/MagicMirror/modules/package.json' npm WARN enoent ENOENT: no such file or directory, open '/home/pi/MagicMirror/modules/node_modules/node_helper/package.json' npm WARN modules No description npm WARN modules No repository field. npm WARN modules No README data npm WARN modules No license field.The python-shell is clearly not installing.
-
-
@tismepaulo Actually, I got it working by firstly not using ssh and running this directly on the display using a terminal and secondly not using sudo. Populated the tokens.ini with the results from the results of the script - and changed the access of the tokens.ini file to 666 - re-ran again the setupAccess.py and it said all was good.
having said that - while I get the authorisation page from Fitbit, I got zero values on the MM. The fitbit account page says that I have access, but initially no data comes through… Next thing I did was running getData.py (in the python directory) I do get a good response:
{"message": "credentials.ini exists", "type": "status"} {"message": "Reading from credentials.ini", "type": "status"} {"message": "Read of credentials.ini successful.", "type": "status"} {"message": "credentials.ini exists", "type": "status"} {"message": "Reading from credentials.ini", "type": "status"} {"message": "Read of credentials.ini successful.", "type": "status"} {"message": "tokens.ini exists", "type": "status"} {"message": "Reading from tokens.ini", "type": "status"} {"message": "Read of tokens.ini successful.", "type": "status"} {"message": "Making API call", "type": "status"} {"message": "API call okay", "type": "status"} {"message": "Tokens valid", "type": "status"} {"values": {"data": 4684, "goal": 10000}, "resource": "steps", "type": "data"} {"values": {"data": 0, "goal": 1}, "resource": "floors", "type": "data"}So I think it is at least reflecting accurately now what the fitbit site is showing for steps, but is incorrect for distance - still showing 0 (maybe because I’m using KM not miles?)
-
I’m having a bit of trouble getting this to work with my Magic Mirror. The display is there but it has 0 in all of the categories. I have followed the steps and I get up to running setupAccess.py which takes me to a webpage where I allow access to all of the checkboxes, but it then just redirects to the magic mirror screen with 0s in all of the categories. if I run getData.py it says
{"message": "credentials.ini exists", "type": "status"} {"message": "Reading from credentials.ini", "type": "status"} {"message": "Read of credentials.ini successful.", "type": "status"} {"message": "credentials.ini exists", "type": "status"} {"message": "Reading from credentials.ini", "type": "status"} {"message": "Read of credentials.ini successful.", "type": "status"} {"message": "tokens.ini exists", "type": "status"} {"message": "Reading from tokens.ini", "type": "status"} {"message": "Read of tokens.ini successful.", "type": "status"} {"message": "Making API call", "type": "status"} {"message": {"401": {"errors": [{"message": "Access token invalid: <your access token>. Visit https://dev.fitbit.com/docs/oauth2 for more information on the Fitbit Web API authorization process.", "errorType": "invalid_token"}], "success": false}}, "type": "error"} {"message": "Invalid token, reauthorise fitbit API", "type": "status"}and the tokens.ini file says:
[Tokens] acc_tok = <your access token> ref_tok = <your refresh token> -
Well the token.ini file should be altered to include the correct credentials. That’s why you are getting the error. Fix that and you may get somewhat further. I manually entered the info to get mine to (partially) work.
-
Where could I get the access and refresh tokens from?
-
@frog I’ve got the same Issue with the Image of “2016-11-25-raspbian-jessie”.
I’m logged in on the BigScreen (not with SSH) and typing via Terminal:pi@raspberrypi:~/MagicMirror/modules/MMM-fitbit $ npm install python-shell /home/pi/MagicMirror/modules └── python-shell@0.4.0 npm WARN enoent ENOENT: no such file or directory, open '/home/pi/MagicMirror/modules/package.json' npm WARN enoent ENOENT: no such file or directory, open '/home/pi/MagicMirror/modules/node_modules/node_helper/package.json' npm WARN modules No description npm WARN modules No repository field. npm WARN modules No README data npm WARN modules No license field.I also tried this, without success:
pi@raspberrypi:~/MagicMirror $ npm install python-shell magicmirror@2.0.0 /home/pi/MagicMirror ├── UNMET PEER DEPENDENCY grunt@1.0.1 └── python-shell@0.4.0 npm WARN grunt-yamllint@0.2.0 requires a peer of grunt@~0.4.0 but none was installed.Anybody an Idea, what I need to do?
-
@olliewarren411 Hi, would you be able to explain what you changed in the CSS to get fitbit to display vertically please? I want to try this out.
-
Hi everyone,
This Module so cool. Is there anyway to show more than one user?
-
@codyli2002hk You could probably put two instances of the module up on your mirror. Just copy & paste the entire module configuration. Change the position tag, clientID & clientSecret and call it good.
-
Hi, this module works and displays great except for the fact that the only field that is displaying values is steps. Flights, calories, etc. all show 0 values but have the images and progress bars. When I ran setupAccess.py, I made sure all the boxes were checked so that every field was being shared. After doubting whether I actually did this, I went to my Fitbit profile and confirmed that the data is being shared with the app.
As another form of double checking my Fitbit sync, I have my Fitbit profile also linked to my Alexa and when I asked Alexa, it correctly said each of the fields that are currently zeros on the mirror display.
Has anyone else had this issue and if so how did you fix it? -
@tismepaulo same issue for me as well
-
Is anybody able to tell me how I would go about changing my distance from miles to kilometers? My mirror is set to metric however I believe this module has its own settings?
-
This post is deleted! -
Hi folks, i’ve installed this module and got it up and running ,but it doesn’t seem to be pulling any data. Could anyone possibly point me in the right direction on how best to fix this? Cheers.
-
@Oliver_Tooth For starters, I would open up the developer tools to see if there are any obvious errors when the module is attempting to load data from the Fitbit servers.
If you’re using an external machine to view the web application (such as Firefox, Chrome, Edge or whatever) press the F12 button. You should see the screen divide and show you what’s going on behind the scenes. Find the console tab and click on it. Look for any error messages in red and see if that helps.
If you’re modifying the Pi directly, add the dev switch to the start command:
npm start dev. It will likewise open up the developer tools and you can see what’s going on.It’s a start.
-
@bhepler Cheers for the pointers. I’ve looked through the dev console and I can’t see anything glaringly obvious. Weirdly however, i’ve gone onto my account section on Fitbit’s website and it doesn’t actually say that this module (app) is listed as having access to the data, despite me running through all the setup as written.
-
@Oliver_Tooth Hrm. The next step would probably be to check the NPM logs. I think they’re located at
~/MagicMirror/npm-debug.log, or possibly in the FitBit module’s directory itself.It sure sounds like you’re not extracting data from the website.
-
@bhepler Slightly embarrassing to admit i can’t find that debug file anywhere!
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login