NOTE: Code currently (September 2019) working again
The Yunmai weighing scales is an impressive inexpensive smart scales with Bluetooth. I bought mine from GearBest. If you install their app on your phone, it will connect to the scales and save all of your data, each time you weigh yourself.
Whilst it isn't obvious, Yunmai is also saving all of your data to their Cloud. Unfortunately they have no webapp for accessing this data and no way for you to dump it out either.
This App will access that data on their API and save it in various formats locally and optionally on Google Sheets for you to re-use elsewhere.
git clone https://github.com/conoro/yunmai-data-extract cd yunmai-data-extract npm install
rename conf-sample.toml to conf.toml
Install and run a packet sniffing App like Packet Capture by Grey Shirts on your Android phone
Start capturing data for the Yunmai App inside Packet Capture
Start the Yunmai App on the phone and interact with some of the data menus
Go back to Packet Capture and stop the data capture
Tap into each of the packets and find requests that access http://intdata.iyunmai.com
Edit conf.toml and use the info from the requests as follows:
userId = userId variable from requests code = code variable from requests token = token variable from requests
It will currently generate an Excel-compatible CSV file and a LevelDB database for you.
You don't have to run it every day, just whenever you want a data dump from the Yunmai
If you want to save to Google Sheets, do the following:
http://127.0.0.1:3000as the Authorized redirect URIs
If you choose to save to Google Sheets then the first time you run it, you'll have to follow the authorisation flow presented. It's self-explanatory and you won't have to do it again.
If you ever have auth issues with GSheets, just delete ~/.credentials/yunmai-data-extract-gsheets.json and re-run
You can add your own columns to Google Sheets and they'll be preserved (e.g. daily notes). But manually added rows will be overwritten.
Date format is proper European. Americans can edit the code to suit themselves ;-)
If the Yunmai code/token ever expires (you'll see errors when you run index.js) then you can easily get new ones by re-running Packet Capture