スピンバイク(STEADY ST145)の記録をApple ヘルスケアに残す方法を探して、Bluetoothの中身をMacで調べた日

開発misc-dev

スピンバイク(STEADY ST145)の記録をApple ヘルスケアに残す方法を探して、Bluetoothの中身をMacで調べた日

スピンバイクでこいだ距離とケイデンス(1分間のペダル回転数)を、Apple のヘルスケアに残したかった。 機種は STEADY のスピンバイク(ST145)である。 手持ちの Garmin の時計(Forerunner 965)を使う手もある。 公式アプリを入れればいいのか、別のアプリが要るのか、それすら分からなかった。 取扱説明書の PDF を Claude Code に渡して、相談するところから始めた。

公式アプリは無かった

返ってきた答えは、STEADY には公式アプリが無い、だった。 説明書(p.10)に載っているのは、Kinomap と Zwift の2つだけである。 ヘルスケアに運動を記録するなら、Forerunner 965 で記録して Garmin Connect 経由で送るのが一番確実だ、という提案だった。

バイクの電源は入っているのに、iPhone の Bluetooth 設定からはつながらなかった。 これも説明書どおりの挙動だった。 p.10 に「スマートフォンの設定からの Bluetooth 検索は無効です。アプリ内で『STEADY』を検索して接続してください」とある。 このバイクは、FTMS(フィットネス機器向けの Bluetooth の規格)に対応したアプリの中からしか見えない。

それなら作業中の PC から探せないかと頼んでみた。 この PC には Bluetooth が無く、検索できなかった。

無料のアプリはなぜ少ないのか

次に気になったのは、Cycle Unit というアプリだった。 試すだけなら無料で入れられる。 ただ、バイクをつないで室内で記録する機能まで無料かどうかは、App Store の説明からは読み取れなかった。

もう少し調べてもらった。 STEADY と Cycle Unit を組み合わせて使った報告は、検索しても見つからなかった。 資料から言えるのは「たぶん無料でつながるが、確定はできない」までだった。

無料の選択肢が少ない理由のほうは、はっきりしていた。 室内バイクのアプリは、走る景色や仮想コースを月額で売る商売だからだ。 こちらが欲しいのは景色ではなく、距離とケイデンスの記録である。 自分で作っても、たいしてお金はかからないのではないか。

聞いてみると、今すぐ確実に記録できるのは、Kinomap か Zwift に課金する方法だった。 一方で、自作なら無料のまま作れて、サーバー代のような維持費もかからない。 距離もケイデンスも記録できる、という答えだった。

作る前に、Mac で中身を見る

そこで考えた。 いきなり iPhone アプリを作るより、MacBook にローカルのツールを作ってもらい、バイクからどこまでデータが取れるかを先に見ればいい。

Bluetooth を使えるのは Mac のほうである。 cross-machine-message スキルで、Mac の tmux セッションに依頼を送ってもらった。 宛先の指紋が一致したのを確かめたうえでの送信で、Mac 側に届いたことは自分の目でも見た。

返信を待つあいだに、別の疑問を聞いた。 ペダルが一番下に来たとき、膝はかなり伸びていたほうがいいのか。 返ってきた答えに、「サドルの高さのことを聞いています」と念を押した。 答えは、ペダルが一番下に来たときに膝が伸びきる少し手前になる高さへサドルを合わせる、だった。 説明書の p.5 にも「膝が完全に伸びきる手前の高さに調整します」とある。

測っているのはケイデンスだけだった

Mac での実測が終わった。 60秒の記録を2回取り、自作の iPhone アプリなら、ケイデンス、距離、速度、パワーをヘルスケアに書けると分かった。 ただし、バイクが実際に測っているのはケイデンスだけだった。 ほかの値は、ケイデンスから計算しただけの数字である。

速度は、すべての記録で次の式と完全に一致した。

速度(km/h) = ケイデンス(rpm) × 0.36

パワーもケイデンスだけで決まる。 負荷ダイヤルを回してもパワーは1Wも変わらず、ダイヤルの位置はバイクの外に出てこない。 距離はモニターには出るのに、Bluetooth では送られてこない。 アプリの側で速度を足し上げて作るしかない。

この点を説明書で確かめようと、全ページを読んでもらった。 どこにも書かれていなかった。 ネットにも STEADY が公表した情報は無く、上位の Pro 版なら負荷が反映されるのかも、確かめられる資料は見つからなかった。

note に下書きして、心拍を訂正する

ここまでの結果は、レビュー記事にする意味があると思った。 MacBook では、すでに速度などをリアルタイムで見られるようにしてある。 そのツールの仕様とスクリーンショットを Mac 側からもらい、Amazon へのリンクも付けて note.com に載せることにした。 本当はヘルスケアに直接送れればうれしい。 ただ、Mac のツールでできるのは、見たところ CSV の保存までだった。

Amazon の商品ページを確かめてもらい、Mac 側の返信を待つあいだに下書きを書いてもらった。 保存先は、ブランド用のアカウントではなく自分の個人アカウントにした。 内容を確かめたかったので、まずは下書きのままにした。

下書きを確かめていて、違うと思うところが1か所あった。 「心拍は Bluetooth では常に0」と書いてある。 たぶん、ハンドルを握っていなかっただけだ。 握れば送られてくるはずだし、そのパターンで一度こいだ覚えもある。

Mac 側に確かめてもらうと、そのとおりだった。 握ってこいだ30秒の記録では、30秒中27秒で 72〜75 bpm が届いていた。 残りの3秒は0で、手が一瞬離れたところとみられる。 「常に0」は、握っていなかった2回分だけを見た誤りだった。

写真とサムネイル、古い下書きの削除

スクリーンショット4枚と心拍の訂正を入れて、新しい下書きを作ってもらった。 さらに写真を1枚渡し、記事に入れたうえでサムネイルも工夫してほしいと頼んだ。

写真には、モニターと書類が写り込んでいた。 ぼかしを入れてもらったが、四角いぼかしが目立った。 上部のモニター部分は切り落とす形に変えてもらい、サムネイルができた。

古いほうの下書きは消してよいと伝え、記事中の価格が合っていることもあわせて伝えた。 画像もサムネイルも無い古い下書きであることを確かめてから、消してもらった。

公開したあとで、リンクだけ差し替える

記事は自分で公開した。 公開してから、Amazon のリンクだけ別のものに替えてほしいと頼んだ。 本文の2か所を差し替えてもらい、公開中の記事を更新した。 途中で note から「複数画面で編集されています」と出たが、差し替え済みの画面を保存する側を選んでもらって進めた。 ハッシュタグは元のまま残っている。

電池を抜いてもこげるのか

ついでに、もう一つ聞いた。 このバイクは、電池を抜いても同じではないか。 電池を抜けば、つないだアプリにデータが飛ばなくなるだけで、負荷は手で調整するのだから。

答えは、電池が無くてもこげる、だった。 電池が動かしているのはモニターと Bluetooth だけである。 負荷は、磁石を手のダイヤルで近づけたり離したりする仕組みで、電気を使わない(説明書 p.11)。 今回の実測でも、ダイヤルの位置は電子的には読まれていなかった。

30分こいで、2時間なら約40キロ

30分こいだところで、心拍数は94くらいのまま、汗がだいぶ出てきた。 いま何キロくらい進んだペースなのかを聞いた。 バイクの距離はケイデンスから計算しているだけなので、平均ケイデンスがあれば出せる。 平均ケイデンスが 55〜60 rpm なら、30分で約10〜11 kmになる。

室温は20度で、冷房もつけている。 それでも汗をかくのは、室温よりも体のまわりの空気が動いているかどうかの影響のほうが大きいからだという。 こいでいるあいだ、体は熱を出し続けている。 室温が20度でも、その熱は体のまわりにたまる。

このペースなら2時間で約40キロか、と確かめた。 だいたいそのとおりで、55〜60 rpm なら2時間で約40〜43 kmになる。

学び

  • 公式アプリが無い機器は、アプリを探し回る前に、送っているデータを Mac で受けて見るほうが早かった。速度もパワーも、受けてみればケイデンスからの換算だった
  • 「心拍は常に0」は、ハンドルを握っていなかった2回分だけから出た結論だった。自分の覚えていた条件(握ってこぐ)で確かめ直したら、値は届いていた
#スピンバイク#Apple ヘルスケア#Bluetooth#FTMS#Claude Code#note