{"id":23105927,"url":"https://github.com/lswiderski/mi-scale-exporter","last_synced_at":"2025-04-05T04:09:07.675Z","repository":{"id":41384574,"uuid":"456257416","full_name":"lswiderski/mi-scale-exporter","owner":"lswiderski","description":"Mobile App to export data from Mi Body Composition Scale and upload it to Garmin Connect Cloud","archived":false,"fork":false,"pushed_at":"2024-11-18T20:06:00.000Z","size":2481,"stargazers_count":168,"open_issues_count":14,"forks_count":15,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-03-29T03:05:11.146Z","etag":null,"topics":["android","csharp","garmin","garmin-api","garmin-connect","maui","maui-app","miscale","xamarin","xamarin-forms","xiaomi","xiaomi-scale","xiaomi-smart-home"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lswiderski.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-06T19:58:21.000Z","updated_at":"2025-03-23T12:22:29.000Z","dependencies_parsed_at":"2023-02-18T17:00:40.136Z","dependency_job_id":"bdb5add1-a83f-4496-9da4-eae7b8596093","html_url":"https://github.com/lswiderski/mi-scale-exporter","commit_stats":null,"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lswiderski%2Fmi-scale-exporter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lswiderski%2Fmi-scale-exporter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lswiderski%2Fmi-scale-exporter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lswiderski%2Fmi-scale-exporter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lswiderski","download_url":"https://codeload.github.com/lswiderski/mi-scale-exporter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247284945,"owners_count":20913704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","csharp","garmin","garmin-api","garmin-connect","maui","maui-app","miscale","xamarin","xamarin-forms","xiaomi","xiaomi-scale","xiaomi-smart-home"],"created_at":"2024-12-17T00:55:22.312Z","updated_at":"2025-04-05T04:09:07.632Z","avatar_url":"https://github.com/lswiderski.png","language":"C#","funding_links":["https://www.buymeacoffee.com/lukaszswiderski"],"categories":[],"sub_categories":[],"readme":"# mi-scale-exporter\n\nMobile App to export data from Mi Body Composition Scale (works with Mi Scale too) and upload it to Garmin Connect Cloud. It also allows you to upload manually entered body composition data to the Garmin cloud.\n\nTested on Oneplus 5T (Android 10) and Mi Body Composition Scale (XMTZC02HM)\n\n## Download\n\n\u003ca href=\"https://play.google.com/store/apps/details?id=com.lukaszswiderski.MiScaleExporter\" target=\"_blank\"\u003e\u003cimg alt=\"Google Play MiScale Exporter\" height=\"90\" src=\"https://play.google.com/intl/en_US/badges/images/generic/en_badge_web_generic.png\"/\u003e\u003c/a\u003e\n\n- Google play: https://play.google.com/store/apps/details?id=com.lukaszswiderski.MiScaleExporter\n- APK/AAB installers: https://github.com/lswiderski/mi-scale-exporter/releases\n\n## iOS/iPadOS version\n\nCheck out this web project: https://github.com/lswiderski/WebBodyComposition\n\n## Instruction\n\n- Stand on your scale. Measure yourself. Complete the user form data, Scale Bluetooth address and get data from the scale. Mi Body Composition Scale is active up to 15 min after the measurement. (Bluetooth address can be found in Zepp Life \u003e Profile \u003e My devices \u003e Mi Body Composition Scale \u003e Bluetooth address (hold to copy)).\n\n- If your scale supports \"Weigh small object\" - turn it off\n\n- Then you can review your data and upload it to Garmin Cloud. If you do not have Mi scale and just want to manually insert the data, you can so.\n\n- You can save the Garmin password in this App but you don't have to. Passwords Managers like KeePass2 works well too. If you do not provide a password in the settings, you will be asked for it each time before sending. No password will be saved in app.\n\n- This app support 2FA/MFA codes (since v2.1.0)\n\n- This App pass your data, email and password directly to Garmin Connect Cloud or you can change it to proxy API server and then it sends to Garmin Cloud.\n\n- The Proxy API does not store or log anything, it's just a middleware between this App and Garmin services.\n\n- Proxy API repository: https://github.com/lswiderski/yet-another-garmin-connect-client\n\n- If you afraid of your data, you can host your own API server. Just change the server address in Settings. For now you can use default one: https://frog01-20364.wykr.es\n\n## Diagram of the flow with Web Proxy\n\n```mermaid\nsequenceDiagram\n    participant Mobile App\n    participant Mi Body Composition Scale\n    participant API Endpoint Proxy\n    participant Garmin Cloud\n    Mobile App-\u003e\u003eMi Body Composition Scale: Connect and get data\n    Mi Body Composition Scale--\u003e\u003eMobile App: Weight and Impedance data\n    loop\n        Mobile App-\u003e\u003eMobile App: Calculate Body Composition\n    end\n    Mobile App-\u003e\u003eAPI Endpoint Proxy: Body Composition data\n    API Endpoint Proxy-\u003e\u003eGarmin Cloud: Body Composition data\n    Garmin Cloud--\u003e\u003eAPI Endpoint Proxy: Result\n    API Endpoint Proxy--\u003e\u003eMobile App: Result\n\n```\n\n## API Endpoint used in the app ([source](https://github.com/lswiderski/yet-another-garmin-connect-client))\n\n```http\nhttps://frog01-20364.wykr.es\n```\n\n## Diagram of the flow with direct send to Garmin Cloud\n\n```mermaid\nsequenceDiagram\n    participant Mobile App\n    participant Mi Body Composition Scale\n    participant Garmin Cloud\n    Mobile App-\u003e\u003eMi Body Composition Scale: Connect and get data\n    Mi Body Composition Scale--\u003e\u003eMobile App: Weight and Impedance data\n    loop\n        Mobile App-\u003e\u003eMobile App: Calculate Body Composition\n    end\n    Mobile App-\u003e\u003eGarmin Cloud: Body Composition data\n    Garmin Cloud--\u003e\u003eMobile App: Result\n\n```\n\n## Stack\n\n- MAUI \u0026 .NET 7 (C#)\n- Autofac\n- Plugin.BLE - To receive data via Bluetooth from Mi scale\n- Xamarin.Essentials\n- API Backend in C# (YAGCC project)\n\n## Images\n\n- Xiaomi settings (Bluetooth adress - Zepp Life)\n\n![xiaomi settings](https://github.com/lswiderski/mi-scale-exporter/blob/main/resources/img/screenshots/xiaomi.jpg)\n\n- required user data\n\n![required user data](https://github.com/lswiderski/mi-scale-exporter/blob/main/resources/img/screenshots/userdata.jpg)\n\n- settings\n\n![settings](https://github.com/lswiderski/mi-scale-exporter/blob/main/resources/img/screenshots/settings.jpg)\n\n- measure\n\n![measure](https://github.com/lswiderski/mi-scale-exporter/blob/main/resources/img/screenshots/measure.jpg)\n\n- Calculated body composition\n\n![calculated body composition](https://github.com/lswiderski/mi-scale-exporter/blob/main/resources/img/screenshots/bodycomposition.jpg)\n\n- results in Garmin Cloud\n\n![garmin result](https://github.com/lswiderski/mi-scale-exporter/blob/main/resources/img/screenshots/garmin.png)\n\n## Inspiration\n\n- https://github.com/RobertWojtowicz/miscale2garmin\n- https://github.com/davidkroell/bodycomposition\n\n## If you like my work, you can buy me a coffee\n\n\u003ca href=\"https://www.buymeacoffee.com/lukaszswiderski\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/default-orange.png\" alt=\"Buy Me A Coffee\" height=\"41\" width=\"174\"\u003e\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flswiderski%2Fmi-scale-exporter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flswiderski%2Fmi-scale-exporter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flswiderski%2Fmi-scale-exporter/lists"}