본문 바로가기
일상다반사

Zepp Life 구글 피트니스 동기화

by Oh.mogilalia 2022. 10. 12.

https://home.maayalee.com/blog/2019/05/05/%eb%af%b8%eb%b0%b4%eb%93%9c-%ec%95%b1-%ec%84%a4%ec%b9%98%ed%95%98%ea%b8%b0/amp/

안드로이드 미핏 구글 피트니스 동기화 | Life n IT Extension

시중에는 걸음 수와 수면 시간 같은 활동 데이터를 수집할 수 있는 여러 종류의 스마트 밴드와 스마트 워치가 있다. 활동 데이터를 제대로 수집하려면 24시간 동안 몸에 부착이 필요하므로 휴대

home.maayalee.com


시중에는 걸음 수와 수면 시간 같은 활동 데이터를 수집할 수 있는 여러 종류의 스마트 밴드와 스마트 워치가 있다. 활동 데이터를 제대로 수집하려면 24시간 동안 몸에 부착이 필요하므로 휴대가 편하고 한번 충전으로 오랜 시간 사용이 가능해야 한다. 또한 자동화된 데이터 분석을 위해서는 데이터를 일정 주기로 자동으로 익스포트할 수 있어야 한다.

미밴드는 구글 피트니스로 데이터 동기화를 지원므로 API를 통해 데이터를 외부에서 접근하여 가공할 수 있기 때문에 데이터 분석에 용이하다. 미밴드 말고 다른 스마트워치, 피트니스앱을 사용하고 싶다면 구글 피트니스 데이터 동기화를 지원하는지 살펴보자. 구글 피트니스는 각종 피트니스 데이터를 모아주는 허브 역할을 하기 위해 만들어졌으므로 많은 수의 스마트 밴드 회사들이 구글 피트니스 데이터 동기화를 지원한다. 구글 피트니스 데이터 동기화를 정식으로 지원하는 제품은 웨어 OS(구 안드로이드 웨어 OS)기반 스마트워치 제품들과 LG 헬스라는 피트니스앱등이 있다.

삼성헬스는 스마트 밴드없이 수면시간과 걸음 수를 비교적 정확하게 체크할 수 있지만 아쉽게도 공식적으로 구글 피트니스 연동을 제공하지는 않는다. 하지만 Health Sync라는 유료앱을 구매하면 구글 피트니스로 데이터를 전송할 수 있으므로 스마트밴드 착용이 번거롭거나 삼성 스마트워치를 사용하는 사람이라면 구매를 고려해볼만 한다.

미핏 설치 및 구글피트니스 연동하기
미핏은 샤오미사에서 만든 제품 기기를 한꺼번에 관리하하는 역할을 하는 앱으로 스마트밴드인 미밴드 뿐만 아니라 스마트 체중계, 스마트 워치등의 정보등을 확인할 수도 있다.미핏 앱을 설치해야 수면 패턴 및 시간, 걸음 수, 소모 칼로리, 심박 수등의 정보를 확인할 수 있다.먼저 플레이 스토어에서 앱을 설치해야 한다. 플레이 스토어에서 “Mi Fit”를 검색한후 설치한다.


미밴드와 레스큐타임-install-mifit.png
미핏 앱을 실행되고 펌웨어 업데이트가 완료되면 아래와 같이 로그인/가입 버튼이 나온다. 앱을 사용하려면 미핏 계정이 있어야 하므로 가입 버튼을 탭한다. 샤오미 계정을 생성하거나 구글, 페이스북 같은 외부 로그인 정보를 선택하여 계정을 생성할 수 있다. 원하는 외부 계정 방식을 선택하여 인증을 하면 계정이 생성된다.

가입 과정이 끝나면 분석을 위한 개인정보 입력창이 등장한다. 각 세부 정보를 입력후 다음 버튼을 클릭하면 앱의 메인화면으로 이동하고 간단한 도움말을 툴팁이 뜨는 것을 볼 수 있다.

앱 실행시 기기 권한 억세스 팝업창과 블루투스 사용 설정 팝업이 뜰 수 있다. 두 팝업창 모두 허용 버튼을 탭한다.

이제 미밴드를 앱에 등록해야 한다. 화면 오른쪽 상단에 위치한 + 버튼을 탭한다. 그리고 연결할 기기 선택 화면에서 밴드를 선택한다. 미밴드 기기의 검색이 성공하면 미밴드에서 진동이 발생하고 밴드의 터치 센서를 탭하게 되면 기기 등록이 완료된다.

이제 구글 피트니스와 데이터 동기화를 설정하여 미밴드의 데이터를 구글 피트니스에 저장될 수 있도록 설정 해보자. 프로필 > 계정 추가 메뉴를 탭하면 계정 추가 선택화면이 등장한다. 이중 Google Fit 메뉴를 탭한 후 Google Fit 추가 버튼을탭한다.

이제 동기화에 사용할 구글 계정을 선택하고 권한 허용 버튼을 탭하면 동기화 설정이 완료된다. 이제 구글피트니스 API를 이용하여 프로그램을 통해 데이터를 가져올 수 있다.

이제 구글피트니스와의 연동이 정상적으로 이루어 졌는지 확인해야 한다. 플레이 스토어에서 “구글 피트니스”를 검색한후 설치한다.

메인화면에서 프로필 메뉴를 탭한 후 오른쪽 화면에 나오는 설정 버튼을 탭한다. 그리고 “연결된 앱 관리” 메뉴를 탭하면 구글 피트니스 데이터에 접근 권한을 가진 앱들의 리스트가 나온다.

리스트 중에 다음과 같이 Mi Fit이 추가되어 있어야 한다.

그리고 구글피트니스의 “활동 측정 항목 추적”을 꺼짐으로 설정하여 미핏의 피트니스 데이터와 스마트폰의 걸음 수 데이터가 동시에 저장 되지 않도록 한다( 프로필 > 설정 > 활동 측정항목 추적 : 꺼짐 선택)

주의 : 이걸 끄니 내가 원하는 KB Walk 와 연동에 문제가 있어 켜 놓아야...

미피트앱과 구글 피트니스간의 데이터 동기화는 백그라운드에서 자동으로 수시로 이루어진다. 따라서 미핏의 앱에게 백그라운드 실행 권한을 주지 않으면 어느 순간 데이터 동기화가 진행되지 않을 수 있다. 백그라운드 실행 권한 설정은 제조사에 따라 설정 방법이 다양하기 때문에 미핏에서 설정하는 방법을 상세하게 알려준다.

설정 방법을 살펴보려면 프로필 > 내기기 메뉴에서 등록한 미밴드를 탭한다. 그리고 백그라운드에서 실행을 탭하면 제조사에 따른 설정 방법을 볼 수 있다.

필자가 사용하는 샤오미 스마트폰의 백그라운드 설정을 바꾸는 방법을 예로 한번 들어 보겠다. 안드로이드 앱 설정에서 미핏 앱의 자동시작을 ON으로 하고 배터리 절약을 제한 없음으로 설정 한다. 그리고 메뉴 버튼을 탭한후 미핏 앱 탭하면 서브 메뉴가 등장한다. 자물쇠 아이콘을 클릭하여 “잠금 앱” 기능을 활성화시켜서 앱이 자동으로 종료되지 않도록 변경해주도록 한다.

또한 플레이스토어에서 주기적으로 미핏 업데이트를 통해 최신 버전을 유지하자. 백그라운드 실행 설정과 자동 실행 설정을 해도 미핏 오류로 인해 프로그램이 종료되는 경우에 동기화가 실패할 수 있다.

동기화 요청된 데이터는 구글 피트니스 앱을 이용하면 수분안에 조회가 가능하지만 구글 피트니스 API로 익스포트해서 조회할 경우 빠르면 1시간 늦으면 12시간 정도의 시간이 필요하다는 점에 주의한다.

미밴드의 데이터가 갱신되면 블루투스 연결을 통해 미핏으로 들어가고 샤오미 서버에 저장된다. 그리고 이 데이터를 백그라운드에서 구글 피트니스로 동기화 한다. 이렇게 데이터를 거쳐가는 지점이 많기 때문에 이중 한지점에서 문제가 발생하면 데이터 누락이나 데이터 동기화가 중단될 수 있다. 이때는 다음 단계를 시도해 본다.

미핏과 구글 피트니스의 삭제후 다시 설치한다.
구글 피트니트 서비스에 연결된 앱들을 선택후 모두 연결 해제한다 ( 프로필 > 설정 > 연결된 앱 관리 : 앱을 탭한다)
미핏에서 구글 피트니스 계정을 끓은 후 구글 피트니스 계정을 다시 연결한다.
구글피트니스의 “활동 측정 항목 추적”을 꺼짐으로 설정하여 미핏의 피트니스 데이터만 저장 되도록 변경한다 ( 프로필 > 설정 > 활동 측정항목 추적 : 꺼짐 선택)
여러 데이터 소스 관리하기
구글 피트니스 서비스는 미핏이 아닌 다른 데이터 소스로부터도 데이터를 입력 받을 수 있다. 구글 피트니스는 내부적으로 여러 종류의 데이터를 가져와 병합한다. 예를들어 아래 스크린샤에서 미핏에서 보여주는 5월 27일의 걸음 수는 8,531이지만 스마트폰의 센서에 의해 측정된 걸음수와 병합된 구글피트니스 앱에서는 7,078걸음이다.

병합이 정상적으로 이루어졌다면 걸음 수가 비슷하게 나와야 한다. 하지만 걸음 수가 더 줄어든 것을 확인할 수 있다. 이런 현상이 발생하는 원인은 미핏이 데이터를 구글 피트니스로 동기화 하는 방식에 원인이 있다. 미핏은 걸음 수가 측정된 시간 구간의 데이터만 동기화 하는 것이 아니라 걸음 수가 발생하지 않는 구간의 데이터도 무조건 0걸음으로 구글피트니스로 전송을 한다.

그리고 구글 피트니스는 미핏의 데이터 전 시간 구간에 맞춰 들어왔다고 판단하고 데이터를 병합하기 시작하는데 이때 같은 시간 구간에 스마트폰 센서에 의해 측정된 걸음수가 동시에 데이터가 존재하면 구글 피트니스는 시간 세그먼트에 기반해서 데이터 소스 하나를 선택하는 방식으로 병합이 된다. 문제는 미핏이 0걸음으로 저장한 시간 구간 데이터가 반영되면 다른 기기에 의해 걸음 수가 발생했더라도 0걸음으로 계산되어 걸음 수가 합산이 정상적으로 이루어지지 않는 것이다.

따라서 미핏을 사용하다가 다른 스마트밴드를 이용하고 싶은 경우 반드시 미핏에서 구글 피트니스 동기화를 제거한 후 사용해야 한다. (프로필 > 계정 추가 > Googlt Fit > “Google FIt에서 제거” 선택)

파일 데이터 익스포트
구글 피트니스는 외부 데이터 소스로부터 데이터 저장 요청을 받으면 비동기로 내부에서 데이터 병합 과정을 거쳐 최종 저장하는데 이때 문제가 생겨 데이터가 저장이 실패할 수 있다. 이 상황에서 미핏 입장에서는 성공적으로 구글 피트니스로 데이터 저장을 했다고 생각하므로 다시 해당 데이터를 동기화 시도 하지 않기 때문에 데이터가 누락이 발생할 수 있다. 누락데이터는 구글 피트니스에 저장이 안되있을뿐 샤오미 서버에는 남아 있기 때문에 미핏 앱에서 수동으로 다운로드 받을 수 있다.

데이터는 미핏을 통해 요청한 후 이메일로 전송받은 링크를 통해 다운로드 받게 된다. 미핏앱의 프로필 > 설정 > 정보 > 사용자의 권리 행사 > 데이터 내보내기” 를 탭하면 된다.

데이터 내보내기를 원하는 계정을 로그인 하고 내보낼 데이터와 기한을 입력한다. 그리고 다운로드 링크를 전달하려는 이메일 주소도 입력하고 확인을 탭하면 이메일이 전송되었다는 메시지가 나온다.

이후 몇십분 정도 기다리면 다음과 같은 이메일이 도착한다. 그리고 회원가입시 사용한 외부 계정(지메일, 페이스북 등) 아이콘을 눌러서 인증을 받는다.

DOWNLOAD 버튼을 클릭하여 파일을 다운로드 받는다. 파일은 화면에 출력되어 출력되는 비번으로 압축을 해제할 수 있다.

개발자를 위한 구글 피트니스 API 사용 주의 사항
미핏이 저장한 데이터는 구글피트니스 앱을 통해서는 거의 실시간 수준으로 볼 수 있다. 하지만 개발자등이 쓰는 구글 피티니스 REST API로 조회시 보통은 1시간 안에 조회가 된다. 하지만 반나절 혹은 5일이 지나서야 모든 데이터가 조회되는 것을 본적도 있다. 구글의 다른 로그 수집서비스인 파이어베이스 애널리틱스의 경우에도 이런 경우가 있어서 놀랍지는 않지만 여러모로 불편한게 사실이다. 구글피트니스앱으로 보여주는 데이터 저장소와 API로 조회하는 데이터 저장소가 각각 다르게 운영되고 처리 주기가 다른게 원인인 것으로 생각된다.

그외 API 조회시 구글피트니스 앱을 아이폰과 안드로이드폰 등의 여러 디바이스에 같은 계정으로 설치 하는 경우 데이터가 원하지 않는 디바이스의 정보로 저장되는 경우가 발생할 수 있다. API로 데이터 조회시 구글피트니스 앱에서 출력되는 데이터와 다른 값이 나오는 경우가 있었는데 살펴보니 다른 디바이스에 설치된 구글피트니스앱에서 출력되는 데이터가 쓰여진 상황있었다.

결론
안드로이드 버전 미핏의 데이터 동기화 기능은 일상적인 신체 데이터 모니터링 용도로는 큰 문제가 없지만 아무 이유 없이 데이터 누락이 발생하는 경우가 종종 발생하는 등 완성도가 그리 높아 보이지 않는다. 이 문제는 백그라운드 실행 권한, 서비스 접근 권한 문제나 여러 서비스간의 연계시 오류로 인한 것으로 생각된다. 삼성 헬스의 데이터를 구글 피트니스로 동기화해주는 헬스싱크라는 앱에서는 이런 동기화 누락 문제가 발생하지 않는다. 따라서 데이터 동기화 문제는 미핏의 오류일 가능성이 크다.

미핏의 이런 오류 문제는 하나의 구글피트니스 계정에 여러 종류의 스마트밴드의 데이터를 동기화해서 사용하는 경우 더욱 잦아지는 경향이 있으므로 다른 스마트밴드로 교체시에는 구글 피트니스 서비스에 연결된 앱들 중 안쓰는 앱들은 모두 연결 해제하도록 한다.

따라서 안드로이드에서 미핏의 기본 구글 피트니스 동기화가 문제가 자주 생긴다면 Notify & Fitness for Mi Band라는 비 오피셜 앱을 이용하여 데이터를 동기화하는 방법을 쓸 수도 있다. 미핏과는 다르게 동기화가 실패할 경우 구글 피트니스로 데이터를 다시 저장하는 방법을 지원하므로 데이터 누락에 대처가 가능해진다. 이 앱 사용법은 글쓴이가 작성한 다른 글을 참고한다.