体重体組成計を買い替えてSlack投稿を自動化した
だいたい以下の様な話です。
- TANITAの体重体組成計を買った
- 100g単位で計測ができる
- ヘルスプラネットサービスでAPIから値の取得ができる
- APIクライアントを作った
- https://github.com/Songmu/healthplanet
- これは結局自動化のためには使わなかった
体重体組成計を買い替えた。元々TANITAのやつを10年以上使っていたが、最近脚が一つだめになってガタつくようになったので買い換えた。
減量のモチベーション維持のためもある。最近は計測値をiPhoneのヘルスケアに手動でちまちま入力していたが、その辺りを自動できて、APIで値が取れたりして、グラフ等で見やすくしたいとは常々思っていた。そして、最近社内に体重をシェアするSlackチャンネルが作られたのもあって、自動化モチベーションが更に高まっていたのだ。
Withingsにしなかった理由
スマート体重計的なやつはWithingsを使っている人が多いようだが、値段も高めだし、しかも最上位機種以外は200g単位計測になるのが厳しいと思っていた。今100g単位で測れているものが今より高くなるのに計測精度が落ちてしまうのは受け入れがたい。生活レベルが落とせない、みたいな話でしか無いのかも知れないが…。
それに、市販の体重計でも20年くらい前には日本メーカーで50g計測できるものが出回っていたはずで(当時フィットネス界隈では話題になった)、今どき200g単位かよ…、とか思ってしまって全く買う気にならないという、これまた僕の感情の話があった。
ちなみに、スマート体重計の類はWithingsに限らず、海外メーカーのものは200gが最小精度のものが多い。
同じTANITAの体重体組成計
ということで買い替えたのは同じTANITAのBC-768という機種。もともと下調べしてこれに目星をつけていたが、Amazonの新年セールで6千円台と安くなっていてちょうどよかった。基本的な計測機能は元々使っていた機種と変わらず、Bluetooth連携でスマホアプリと通信して値の記録とAPI投稿をしてくれるのが嬉しいポイント。直接Wifiにつながるわけではないので、アプリを起動してから体重を測る一手間はかかる。
TANITAのヘルスプラネットというサービス
体重登録には、ヘルスプラネットというTANITAのスマホアプリ/Webサービスを使う。登録された値はAPIで取得もできる。
実はこのサービスTANITA製品を持っていなくても使うことができる。単にアプリやブラウザから手動で値を打ち込めるだけだが。とはいえ、アプリに値を入力すれば、iOSのヘルスケアとの数値連携もしてくれるし、APIから取り出すこともできる。なのでこの体重計を買う前からヘルスケアへ直接入力するのを止めて、このアプリへの入力に切り替えていた。
体重計を買って、その入力も自動化できるようになった。
APIクライアント作った
ということで自動化の一助とすべくAPIクライアントをGoで作った。healthplanet
というコマンドラインツールも併せて作った。
https://github.com/Songmu/healthplanet
ただ、個人的にこれを利用する必要がなくなってしまったので、中途半端な状態ではあるが、ある程度体裁を整えて一旦リリースした。
ヘルスプラネットのAPI自体は何気に10年以上前から存在していて、その分だいぶ古風な部分もそのままになっている。OAuth2連携に関してもちょっとイマイチな部分があったりしたが、まあ維持しているだけでも素晴らしいと思うので、もうあまりアップデートはかからなさそうではあるが、頑張って欲しいと思う。
体重の社内Slack投稿
元々の動機の一つに、社内の体重共有チャンネルへの投稿自動化というものがあり、前項のAPIクライアントもそのために作ったのだが、ヘルスプラネットがTwitter投稿連携機能を提供していることに後から気づいた。それで良いじゃん、となり、以下のノーコードピタゴラ装置となった。
体重体組成計に乗る -> ヘルスプラネットに登録 -> Twitterに投稿 -> IFTTT -> Slack投稿
Twitterはサブアカとか作るのも考えたけど、めんどくさいのでメインのアカウントを使うことにした。最近体重自動ツイートがされているのはそのためです
68.20kg 15.40% #tanita #healthplanet
— songmu (@songmu) January 16, 2022