Read the statement by Michael Teeuw here.
Fitbit
-
Thanks for the quick reply @Vendittelli - that could be the answer. I didn’r realise the calories were calculated like that - as you say, it’d certainly explain it.
I’ll have a look into it. If it comes to it, I’ll recreate the app - I seem to remember there are a list of tick boxes for the fitibit attributes and on the pi browser, it was really difficult to tell whether or not they were ticked!
-
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-shell
returns:
/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.