MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    Fitbit

    Scheduled Pinned Locked Moved Troubleshooting
    129 Posts 42 Posters 185.7k Views 37 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • bheplerB Offline
      bhepler Module Developer
      last edited by

      @Oliver_Tooth I was able to successfully install the Fitbit module and get it to pull information from the web API. It took a little tweaking, but I did get it to work.

      Problems I encountered:

      • Python was not installed. I had to install it and figure out how to install “pip”.
      • Fitbit doesn’t make their developer area visible off their main website. I ended up bouncing through their forums first.
      • Example config file on the module GitHub page contains errors. The character after config: should be {, not [.
      • The secret key and appID field values need to be surrounded by single quotes, something not explained in the readme file.

      Here’s the relevant portion of my config.sys file.

      {
              module: 'MMM-fitbit',
              position: 'bottom_left',
              config: {
                      credentials: {
                              client_id: '000XX0',
                              client_secret: 'abbacadabba1234567890',
                              },
                      resources: [
                              'steps',
                              'floors',
                              'caloriesOut',
                              'distance',
                              'activeMinutes',
                              'sleep',
                              'heart'
                              ],
                      update_interval: 60
                      }
      },
      

      When you run npm start the MMM-Fitbit python script will run and kick out a few lines in the console. I’m not entirely sure what it’s doing, but here’s what mine reads:

      Set credential request recieved.
      { client_id: '000XX0',
        client_secret: 'abbacadabba1234567890' }
      Initial run request recieved.
      Running getData.py
      results: [{"message":"credentials.ini exists","type":"status"},{"message":"Writing credentials to credentials.ini","type":"status"},{"message":"Writing id: 000XX0 and secret: abbacadabba1234567890","type":"status"},{"message":"Credentials write successful","type":"status"}]
      

      When I ran the setupAccess.py script, it failed to modify the credentials.ini file. I ended up editing it manually and plugging in my application ID and my secret key. The format is simple. Spaces before & after the = and no quotes around the ID or key.

      VendittelliV O V 3 Replies Last reply Reply Quote 1
      • VendittelliV Offline
        Vendittelli Module Developer @bhepler
        last edited by

        @bhepler Please, if you spot any problems with the documentation, create a pull request on GitHub and I’ll happily make those changes.

        1 Reply Last reply Reply Quote 1
        • O Offline
          Oliver_Tooth @bhepler
          last edited by

          @bhepler That’s great news! I’ve managed to get mine up and working, but from what I can tell initially, it doesn’t seem to stay authorised for longer than a day, i’m currently browsing the python-fitbit forum for help on that. It’s also only showing data for steps, with all other fields showing 0. Is this something you’ve encountered?

          bheplerB 1 Reply Last reply Reply Quote 0
          • bheplerB Offline
            bhepler Module Developer @Oliver_Tooth
            last edited by

            @Oliver_Tooth Somewhat. I see steps, distance and calories. Sleep is zero. There’s definitely something going on here. I haven’t run it long enough to encounter the authorization problem. I’ll investigate further tonight.

            @Vendittelli - I’ll do that. I should have a PR for you in a couple days. Thanks for the great module!

            1 Reply Last reply Reply Quote 0
            • S Offline
              s199
              last edited by

              Hello, thank you for that nice addon…i finally managed to make it work (exemple code is still incorrect on github…) but there is a problem, im using an alta hr and i only have the “steps” info on display, everything else is set to 0 :/
              Any idea how i can fix that ?

              S 1 Reply Last reply Reply Quote 0
              • Sandy2503S Offline
                Sandy2503
                last edited by

                The Modul wont work on my Mirror too.
                First:
                In the moment i haven`t any Fitbit Hardware. I use the Fitbit -App on my WindowsPhone. I can see in the App all useful things like step etc. and the data will sync with the Fitbit webservce.
                I can see all activitys an the Mirror with a Zero …

                When i stop the mirror with
                pm2 stop mm and try to start the python script setupAccess.py from the local terminal so i can see this:

                //your code here
                sudo python setupAccess.py
                Get credentials from credentials.ini ? (Y/N)
                y
                {"message": "credentials.ini exists", "type": "status"}
                {"message": "Reading from crentials.ini", "type": "status"}
                {"message": "Read of credentials.ini successful.", "type": "status"}
                [19/Sep/2017:19:30:03] ENGINE Listening for SIGHUP.
                [19/Sep/2017:19:30:03] ENGINE Listening for SIGTERM.
                [19/Sep/2017:19:30:03] ENGINE Listening for SIGUSR1.
                [19/Sep/2017:19:30:03] ENGINE Bus STARTING
                CherryPY Checker:
                The Application mounted at '' has an empty config.
                
                [19/Sep/2017:19:30:03] ENGINE Started monitor thread 'Autoreloader'.
                [19/Sep/2017:19:30:03] ENGINE Started monitor thread '_TimeoutMonitor'.
                [19/Sep/2017:19:30:03] ENGINE Serving on http://127.0.0.1:8080
                [19/Sep/2017:19:30:03] ENGINE Bus STARTED
                

                and not more - and no prompt …

                when i now from a second terminal the mirror restart with pm2 restart mm
                i see on the mirror only:

                //your code here
                ```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`)
                
                CherryPy 3.8.2
                

                Can anyone help me to fix the problem ?

                Greetz Sandy2503

                1 Reply Last reply Reply Quote 0
                • S Offline
                  stephenmelody @s199
                  last edited by

                  @s199 I also have this problem, only Steps is coming through. Did you manage to get it fixed?

                  1 Reply Last reply Reply Quote 0
                  • S Offline
                    stephenmelody
                    last edited by

                    This is my output of getData.py

                    pi@Magic-Mirror:~/MagicMirror/modules/MMM-fitbit/python $ sudo python getData.py
                    {"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": 1649, "goal": 10000}, "resource": "steps", "type": "data"}
                    {"values": {"data": 0, "goal": 1}, "resource": "floors", "type": "data"}
                    pi@Magic-Mirror:~/MagicMirror/modules/MMM-fitbit/python $
                    
                    
                    1 Reply Last reply Reply Quote 0
                    • pyrosmileyP Offline
                      pyrosmiley
                      last edited by

                      For a little ways now, I’ve been running into an issue where, after running for a day or so, the module stops being able to update. It seems that it’s failing --for some odd reason-- to write the new Refresh Token, so when the Access token is expired, it needs to be re-authorized. I’ve looked through the code and I don’t know a whole lot but I cannot figure out why it’s doing what it’s doing. For now, I have this shell script set to run every night, and that seems to keep it running well enough. I’m sure there’s a better way but until I can get around to learning more, the kludgy way will do.

                      #!/bin/bash
                      
                      export DISPLAY=:0
                      pm2 stop MagicMirror
                      python  ~/MagicMirror/modules/MMM-fitbit/python/setupAccess.py
                      killall chromium-browser
                      pm2 start MagicMirror
                      
                      exit 0
                      

                      The first line is there so that it can be run manually over SSH. I did have to log in manually once, but I just told chromium to remember me, so now I don’t have to do anything to re-grant access.

                      If anyone has a better fix, I’d love to hear your thoughts!

                      Sandy2503S C 2 Replies Last reply Reply Quote 0
                      • Sandy2503S Offline
                        Sandy2503 @pyrosmiley
                        last edited by

                        Hi.

                        I start the setupAccess.py and i have got an Error from Chromium Browser.

                        In the Message stands the the Chromium Browser starts as normal user and not as root.

                        How can i fix it ?

                        Sandy

                        1 Reply Last reply Reply Quote 0
                        • 1
                        • 2
                        • 6
                        • 7
                        • 8
                        • 9
                        • 10
                        • 11
                        • 12
                        • 13
                        • 8 / 13
                        • First post
                          Last post
                        Enjoying MagicMirror? Please consider a donation!
                        MagicMirror created by Michael Teeuw.
                        Forum managed by Sam, technical setup by Karsten.
                        This forum is using NodeBB as its core | Contributors
                        Contact | Privacy Policy