NOMO.asia

Mi Fit 어플을 다른 것으로 대신하기

일단 이전 포스트 - [샤오미 체중계(Mi Fit) 데이터 내보내기] 에서 기존에 샤오미 체중계와 Mi Fit 어플로 측정한 데이터를 백업하는 방법에 대해서 알아봤으므로, 아예 체중 측정을 위한 어플을 바꿀 수 있는 방법을 찾아봤다.

그리고 나는 요즘 이곳저곳에 흩어진 이런저런 데이터를 개인 서버의 DB에 모두 모아서 관리하는 것을 목표로 삼아 개발을 진행 중인데, 궁극적으로 체중을 측정하면 자동으로 내 개인 DB에 data 를 기록할 수 있는 방법이 무엇이 있을까를 찾아봤다.

1. Google Fit

Google Fit 은 구글에서 만든 피트니스 관리 어플이다.

Mi Fit 어플의 [프로필-계정추가] 메뉴에서 Google Fit 과 Sync 를 진행할 수 있다. 이후 측정되는 체중 데이터는 Mi Fit 과 Google Fit 에 함께 기록된다.

다만 Sync 설정을 한 이후에 측정되는 체중 데이터부터 새롭게 기록되기 시작하고, Sync 이전의 데이터는 불러와지지 않았다. 이전의 체중 데이터를 한꺼번에 Import 하는 방법을 Google Fit 어플 내에서 찾아봤는데 찾지 못했다. 다만 체중 데이터 한 건씩 수동으로 입력하는 것은 가능하다.

기존의 체중 data 를 자동으로 Import 할 만한 방법을 찾아봤는데, 2019년 3월 부터 Google Fit 의 Web 버전이 없어져서 매크로나 자동화 툴을 이용해 입력하는 것은 어렵다. 다만 Google Fit 의 경우 API 를 제공하고, API 문서를 보니 체중 데이터는 Public data type 으로 분류되어 있어서 API를 이용하면 쉽게 읽고 쓰는 것이 가능하다고 한다. 하지만 이것은 일반적인 사용자가 할 수 있는 방법은 아닐 것이다. 그래도 이전 데이터를 불러올 수 없다는 점을 제외하면 Mi Fit 어플을 Google Fit 어플로 대체하는 것이 가능하기는 할 것이다.

나는 프로그래밍을 할줄 알기 때문에, Google Fit의 API 를 이용하면 일정 주기로 Google Fit 에 저장된 체중 데이터를 읽어서 내 개인 서버의 DB에 입력하는 것이 충분히 가능할 것 같다.

Google Fit 에서 체중 데이터를 내보내는 경우에는, Google Fit 어플 내에서 체중 데이터를 Export 하는 기능은 제공하지 않지만, Google 계정의 [데이터 및 맞춤설정 메뉴] 에서 Google Fit(피트니스) 의 data 를 csv 파일 형태로 Export 할 수 있다.

2. OpenScale

OpenScale 이라는 이름의 오픈소스 기반 체중 관리 어플이 있다. Play Store 에서 검색할 수 있고 Pro 버전(유료, $2.49)와 Light 버전(무료)으로 나뉘는데, 유료 버전의 경우 블루투스를 이용하여 샤오미 체중계에 직접 연결할 수 있다. 즉, 이 어플을 이용하면 더 이상 Mi Fit 어플을 이용하지 않아도 된다.

OpenScale 앱의 첫번째 장점은 체중 data의 Import 와 Export 가 어플 내에서 즉시 가능하다는 점이다. 이 때 사용되는 파일의 구조도 복잡하지 않아서, Mi Fit 에서 다운받은 기존 데이터를 Excel 을 이용해서 간단히 편집하고 OpenScale 어플에 쉽게 Import 할 수 있었다.

두번째 장점은 Mi fit 보다 다양한 형태의 그래프를 제공하여, 어플 내에서 체중 데이터를 Mi fit 보다는 편하게 추적할 수 있다는 점이다.

그리고 OpenScale sync(유료, $3.49) 라는 어플이 별도로 있어서 Google fit 과의 sync 기능을 지원한다.

무엇보다 어플 내에 자동 백업 기능이 있어서 매일, 매주, 매달 스마트폰의 특정 폴더에 데이터를 백업할 수 있다. 이 기능을 이용하면서 클라우드 어플을 이용해서 해당 폴더를 클라우드에 자동으로 업로드 되게 해놓으면, 비록 즉시는 아니지만 개인 서버에 주기적으로 백업하는 것도 가능할 것이다.

참고로 해당 어플의 Github 페이지(https://github.com/oliexdev/openScale)에 가면 개발 중 버전의 apk 파일을 다운받을 수 있고, 이 apk 파일을 이용해 어플을 설치하면 유료 버전에 있는 블루투스 연결 기능을 사용할 수 있다.

3. 직접 샤오미 체중계를 스캔하기

블루투스 장치가 달린 PC 등을 이용해 직접 체중계와 연결하는 방법이 있다. 검색하여 찾은 것으로는 아래와 같은 Github 프로젝트들이 있다.

https://github.com/chaeplin/Xiaomi_scale_scan

https://github.com/perillamint/node-xiaomi-scale

https://github.com/SphereSoftware/smart-scale-app

https://github.com/Wingjam/ReverseMiScale

이걸 이용하면 모든 것을 커스터마이징 할 수 있는데, 한 가지 걸리는 점은 주변에 블루투스 수신이 가능한 장치가 항상 있어야 한다는 점이다.

내 PC에 블루투스 동글이 끼워져있기는 하지만 체중을 측정할 때 PC가 항상 켜져있다는 보장은 없다. 근처에 스마트폰은 항상 켜져있겠지만, 이를 위한 어플을 새로 제작하느니 OpenScale 의 소스 코드를 받아서 개인 서버로 전송하는 코드 몇 줄을 추가하는게 더 빠를 것이라고 생각된다. 다만 JAVA를 제대로 다루어본적도 없고 너무 오래되서 처음부터 다시 익혀야한다는 문제가... 라즈베리파이나 아두이노 같은 것을 이용하면 항시 블루투스를 켜둘 수 있기는 하겠지만 수고로움이... -ㅁ-.

정리

세가지 방법 다 가능할 것 같지만, OpenScale 을 이용해서 매일 클라우드에 자동으로 백업 파일을 업로드하도록 하는 것이 가장 수고가 덜한 방법이라고 생각된다. 그리고 백업된 csv 파일을 읽어서 입맛에 맞게 그래프로 뿌려주는 것만 조금 코딩하면 될 것같다 ^ㅡ^.