Edited at

python-fitbit データ取得クエリまとめ

More than 1 year has passed since last update.

fitbitでは、心拍数、歩数、カロリー、登った階数など、多様なデータを計測しています!

それらのデータのpythonでの取得方法をまとめます。

Access Tokenなど、APIの使用環境を整えるのは前回記事を参考にして下さい。

【環境】

・ OS : OS X EI Capitan

・ 言語 : Python 3.5.2

・ライブラリ : python-fitbit


心拍数・運動 時系列データの取得

intraday_time_series という関数を使います。


例:歩数の取得


準備.py

import fitbit

# メモしたID等
CLIENT_ID = "XXXXXXXXXXXXXXXXXXXXXXX"
CLIENT_SECRET = "XXXXXXXXXXXXXXXXXXXXXXX"
ACCESS_TOKEN = "XXXXXXXXXXXXXXXXXXXXXXX"
REFRESH_TOKEN = "XXXXXXXXXXXXXXXXXXXXXXX"
# ID等の設定
authd_client = fitbit.Fitbit(CLIENT_ID, CLIENT_SECRET
,access_token=ACCESS_TOKEN, refresh_token=REFRESH_TOKEN)



歩数取得.py

# 歩数を取得(1分単位)

authd_client.intraday_time_series('activities/steps', base_date="2017-01-31", detail_level='1min', start_time="02:00", end_time="04:00")


結果

{'activities-steps': [{'dateTime': '2017-01-31', 'value': '0'}],

'activities-steps-intraday': {'dataset': [{'time': '02:00:00', 'value': 0},
{'time': '02:01:00', 'value': 0},
{'time': '02:02:00', 'value': 0},
{'time': '02:03:00', 'value': 0},
{'time': '02:04:00', 'value': 0},
{'time': '02:05:00', 'value': 0},
...


detail_level

取得するデータの間隔

1sec, 1min, 15min のどれか

欠損値がある可能性が高いです。


取得するデータの種類

上記関数の'activities/steps'という項目を変更することで、いろいろな情報を時系列で取得することができます。


説明

activities/heart
平均心拍数

activities/steps
歩数

activities/calories
消費カロリー

activities/floors
登った階数(3m登って1階)

activities/minutesSedentary
座っている時間(分間)

activities/minutesLightlyActive
軽い運動をしている時間(分間)

activities/minutesFairlyActive
アクティブな運動をしている時間(分間)

activities/minutesVeryActive
激しい運動をしている時間(分間)


睡眠データの取得

睡眠データは sleep 関数が便利です。


睡眠情報取得.py

authd_client.sleep(date="2017-01-29")



結果

{'sleep': [{'awakeCount': 1,

'awakeDuration': 6,
'awakeningsCount': 19,
'dateOfSleep': '2017-01-29',
'duration': 26700000,
'efficiency': 93,
'isMainSleep': True,
'logId': 13626289712,
'minuteData': [
{'dateTime': '01:16:00', 'value': '3'},
{'dateTime': '01:17:00', 'value': '3'},
{'dateTime': '01:18:00', 'value': '3'},
{'dateTime': '01:19:00', 'value': '3'},
{'dateTime': '01:20:00', 'value': '3'},

{'dateTime': '08:38:00', 'value': '1'},
{'dateTime': '08:39:00', 'value': '1'},
{'dateTime': '08:40:00', 'value': '2'}],
'minutesAfterWakeup': 1,
'minutesAsleep': 414,
'minutesAwake': 30,
'minutesToFallAsleep': 0,
'restlessCount': 18,
'restlessDuration': 25,
'startTime': '2017-01-29T01:16:00.000',
'timeInBed': 445}



データの中身

key名
内容

dateOfSleep
日付(起床日) 

isMainSleep
その睡眠がメインの睡眠かどうか 

dateOfSleep
起床回数 

startTime
就寝時間

timeInBed
ベッドに横になっていた時間(分間)

awakeCount
起床回数 

restlessCount
寝返り回数 

minutesAsleep
睡眠時間(分間)

minutesAwake
ベットで起きていた時間(分数)

minutesToFallAsleep
眠りに落ちるまでの時間(分間)

minutesAfterWakeup
起きてから起き上がるまでの時間(分間)

dateOfSleep
起床回数 

minuteData
1分毎の睡眠レベル
{ 1:睡眠, 2:寝返りを繰り返す, 3:覚醒}


参考サイト

python-fitbit GitHub

python-fitbit ドキュメント