はじめに
こんにちは。kamocです。 この記事は、おうちハック Advent Calendar 2016 の6日目のエントリーです。
この記事では以下についてご紹介します。
- タニタ社製の体重計用の IFTTT トリガーの実装について
- HUE, Slack, LINE と連携する IFTTT レシピを運用して感じたこと
なぜやろうと思ったか?
筆者はフルリモートワークのため基本的に自宅で仕事をしています。
最近は寒さも相まって運動不足に拍車が掛かり、体重がすくすくと増加・・・。 「これは健康に良くない!」ということで、定期的な運動を心がけると共に、体重を継続的に記録することにしました。
しかし、元々“体重計に乗る”という習慣が無かったため、計測をサボりがちになっていました。 そこで、おうちハックによって継続的に体重を計測するしくみを作ることにしました!
体重計選び Withings vs タニタ
体重計は Withings か、タニタの2択になり、最終的にタニタの体重計を選択しました。
どちらもデータをAPIから取得することができますが、 Withings の体重計はデフォルトで myThings や IFTTT と連携しているため、特にプログラムを書かずとも他の機器やサービスと連携することができます。
それにも関わらず、私がタニタの体重計を選択した理由は、 データの更新間隔がタニタの方が短いからです。
Withings のデータ更新間隔が15分なのに対して、タニタの Health Planet API は実質1分間隔で更新されます。 “体重計に乗ったらHUEを点灯させる”という、データ更新間隔が短いことが要求される IFTTT レシピを作りたかったので更新間隔の短いタニタ体重計を選択しました。
なお、おうちハッカーのぼへみあさんが同じ課題に Withings でトライしたところ、 > 体重計に乗っても、期待していたとおりにすぐ照明は付きません。 暗い部屋でしばらく待ち続けたところ、15分後に思い出したかのようにHueが点灯しました。
という結果になってしまったそうです。失敗から得た知見を公開してくれているのは非常にありがたいですね。参考にさせて頂いた記事はこちらです。
それでは、今回実装したタニタ製体重計の IFTTT トリガーの実装について見ていきましょう。
IFTTT Trigger の実装
今回実装した IFTTT Trigger のシステム構成はこちらの図の通りです。
体重計に乗ると、以下の流れでトリガーが発動します。
- 体重計の計測データはすぐに Health Planet サーバーに送信されます
- 一方、EC2上で Health Planet API を毎分叩くプログラムを走らせておきます
- 測定値が条件を満たしたら、IFTTT の Maker Channel のエンドポイントを叩きます
ソースコードは GitHub に上げておきました。
Health Planet API は毎時60回という呼出回数制限があるため、ポーリング周期は1分としています。
運用した IFTTT レシピ集
新しい計測値が検出されたら LINE に通知を飛ばす
体重が測定されたら家庭の LINE グループに通知を飛ばすようにしてみました。
筆者が体重計に乗った場合は体重値と、前回計測との差分が表示されるようになっています。
一方、妻が体重計に乗った場合は、前回との差分値のみ共有するように設定しました。 妻に「体重を家庭の LINE グループで共有しよう」と交渉してみたところ、軽蔑の眼差しで見られました・・・。 そりゃそうですよね。
体重値はなかなかデリケートな情報ですが、差分値だと公開することによる心理的障壁が大幅に低くなるようです。
LINE共有の運用を始めてから、家庭内の状況にもちらほら変化が見られました。
例えば、食事や運動といった健康を意識した会話が増えたことや、ご飯のメニューがヘルシーになったり、お菓子ボックスが補充されなくなったりといった感じです。
新しい計測値が検出されたら Slack に通知を飛ばす
体重が測定されたら、増減値を社内 Slack に通知するようにしてみました。
筆者が体重の減少で一喜一憂していると、社員の皆さんが優しくリアクションしてくれました。
体重が減少/増加したら HUE を点灯する
体重計の周りに色が制御できる LED ランプ“HUE”をセッティングし、体重が減少したら HUE を青く、体重が増加したら HUE を赤く点灯してみました。
体重が増加したらこんなことになります。
HUE 連携の課題
HUE 連携、初回のインパクトだけは大きいのですが、残念ながら実運用には繋げられませんでした。 理由は、2つあります。
最大60秒のラグが大きく使い勝手を損なう
60秒というのは想定していた以上に長く、2回に1回は体重を測り終えてから点灯して残念でした。 もともと“欽ちゃんの仮装大賞”みたいに体重を測ったらすぐにランプを点けて音を鳴らしたかったのですが、無念…
消すのが面倒
HUE が点灯するところまでは良いのですが、消す場合にスマホを取り出して HUE のアプリ等を起動して消灯しなくてはなりません。
これが普段使いするにはかなり億劫でした。 HUE を IFTTT レシピに使う時は、点灯するトリガーのデザイン以上に、消灯するトリガーのデザインをよく考える必要があると痛感しました。
まとめ
この記事ではタニタ社製の体組成計の IFTTT トリガーの実装と、レシピを運用したことについて紹介しました。
今のところ家庭の健康意識が高まっているので、今後も継続運用して行きたいと思います。 今回やってみて面白かった気付を以下に記載します。
- 体重の値を教えることは抵抗が大きいが、差分であれば殆ど抵抗が無いということ
- IFTTT のアクションに HUE を持ってくる場合は、消灯トリガーもよく考える必要があること
今後のおうちハックに役立てて行こうと思います。 それでは、今日はこの辺で。
明日のおうちハックアドベントカレンダーもお楽しみに!