一所懸命に手抜きする

デスクワークばかりのスポーツ嫌いで50歳も過ぎ、いよいよ足腰に衰えを感じつつある昨今。

シャオミ Mi Band シリーズ 睡眠データCSV取得方法

下記記事中の Mi Band Master は現在は、Master for Mi Band と名称が変わっています。

Mi Band シリーズ睡眠データCSV取得法

電車でMi Band 2をなくしてしまい、記事のアップも忘れてしまいました。今はMi Band 3 を使用しています。Mi Band シリーズは素晴らしいですね。
Mi Band シリーズに対応するアプリ Mi Band Master によりデータをSQLite形式でエクスポートできます。ここから睡眠データを取り出したいと思います。このアプリは Mi Band 4 にも対応しています。未確認ですが、おそらく作成されるデータベースは同じだとすれば本記事はそのままMi band 2から4のいずれにも適用可能と思われます。 a-habakiri.hateblo.jp a-habakiri.hateblo.jp  Sqlite3 と下記バッチを用意してください。 バッチを用意する。

sql実行用のバッチ( go.bat ) 
cd /d %~dp0
sqlite3.exe < "MiBand.sql"
pause

 MiBand.sql はこのあと紹介するSQLを適宜使用してください。  このコードをgo.batなどとして、go.bat,sqlite3.exe ,MiBand.sql,db.sqlite全て同じフォルダにおき、バッチを実行すればあらかじめMiBand.sqlに用意されたコードが実行されます。

睡眠データを取得する例

MiBand.sql 睡眠データの取得方法の例  
.open db.sqlite
.headers on
.mode csv
.output Mi_Sleep.csv
select id,datetime(start_time,'unixepoch','localtime') as StartTime,datetime(end_time,'unixepoch','localtime') as EndTime,awake,deep,light,stages,deleted,manually from sleep;
.quit

取得データ(一部編集済)
f:id:a_habakiri:20180213090718p:plain awake,deep,lightはいずれも分単位。stagesの見方は下記の通り
例.10L…10分の浅い眠り。39D…39分の深い眠り。15Aは15分の覚醒、を表します。
次のグラフに対応するデータです。

f:id:a_habakiri:20180212171000p:plain

夜中に物音がして確認したら、洗濯機の上においてあった洗剤が落ちた音でした。その際の覚醒が黄色くなっています。