Cross×Road

ロードバイク乗りの日常を綴ったり綴らなかったり

検索

-ZWIFT, 自転車の雑記   -

ZWIFTのパワーロストを機会にログをのぞいてみた

2021/02/18

パワーロスト

ZWIFTプレイ中、突然ワット表示が消えバイクが止まってしまうパワーロスト。
これまでほとんど経験していませんでしたが、最近になってミートアップ中に2回発生。
これ、本当に萎えますね。

「突然」と書きましたが、実際はわかりやすい前兆がありました。
踏んでも足を緩めてもパワーの反映がやけに遅い。
オンラインなので多少のラグは避けられませんが、
体感で普段1秒程度なのが、3~5秒の遅れたまに10秒近いことも。
画面下のグラフも妙に台形。

たいていは電子レンジやWiFi・扇風機等の影響による通信障害で、USB延長ケーブルでAnt+ドングルを近くに伸ばすのがいいとか。
このあたりは楓鈴さんのブログが参考になります(他力本願)

 

ZWIFTのログ

そんなわけで、ちゃちゃっと延長ケーブルをポチっとしたわけですが、「本当に通信障害なの?」という疑問もありログファイルを覗いてみることにしました。

ログファイルの場所は「ドキュメント/Zwift/Logs」
中には3種類のファイルがあります。
(1) ComputerSpecs.txt クライアントのシステム情報、1ファイルのみ
(2) Launcher_log.txt 起動・停止時のログ、日毎ローテート
(3) Log.txt 通信ログ、アクティビティ毎ローテート
見たところこんなところでしょうか。今回の分析対象は(3)になります。

 

通信状況をグラフ化

細かいところはすっ飛ばして、ミートアップ開始~5分間の通信可否をグラフにしてみます。
・正常ケース1

・正常ケース2

・パワーロスト発生時

正常ケースでも多少のロストはありますが3.3%ほど、これがパワーロストしたときは82%が失敗。ほとんど失敗しとるやん・・・
パワーデータの通信は1秒毎に行われているのようなので、単純にならすと5秒に1回の通信。
体感の「3~5秒たまに10秒近く」より大きなラグが発生していたようですね。

ちなみにアクティビティのタイムライングラフを見る限り、最初のパワーロスト(0Watt)が発生したのはミートアップ開始から3分手前。
通信状態のグラフと若干時間のズレがありましたが、21回連続で通信失敗したこのあたりだと思われます。

それより前にも連続した通信失敗はありますが、パワーロストしていません。
閾値はわかりませんが、ある程度は直前のパワーを採用してロスト扱いしないようです。
画面下のパワーが台形になるわけです。

 

パワーデータ以外は軽視されている?

ログを眺めていておや?と思ったのが、
通信失敗しているのに成功しているようなログがあること。

[22:16:00] ANT : Rx Fail on channel 1
[22:16:00] ANT : Rx Fail on channel 3
[22:16:00] ANT : Transfer Completed.

「ANT : Rx Fail」はスマトレ等~PC間の通信失敗、
「Transfer Completed」はサーバへのデータ送信と解釈。

起動直後のログと照らし合わせると、
チャネル1=心拍計、チャネル2=スマトレ、チャネル3=ケイデンス。

[21:48:45] ANT : Pairing deviceID 35822 to channel 1, mfg network 0, ant network 0
[21:49:05] ANT : Pairing deviceID 51748 to channel 2, mfg network 0, ant network 0
[21:49:06] ANT : Pairing deviceID 29542 to channel 3, mfg network 0, ant network 0

[21:49:13] Heart Rate Device: HR Strap 35822
[21:49:13] Controllable Trainer Device: ANT+ Trainer 51748
[21:49:13] Power Device: ANT+ Trainer 51748
[21:49:13] Cadence Device: Speed/Cadence 29542

チャネル1,3が失敗したときは「Transfer Completed」が出ていますが、
チャネル2が通信失敗したときは「Transfer Completed」が出ている箇所は見当たらず。
パワーが拾えなければケイデンス・心拍はサーバに送信しない、
パワーさえ拾えればケイデンス・心拍が拾えなくてもサーバに送信するように読み取れます。
チャネル1,3の失敗がやけに多いので、パワーが拾えた段階であまり待たずに、他の通信を中段してサーバにデータを送信しているのかもしれません。
そう言えば、足が止まったまま走っているのを見かけますが、そういうこと?

まあ、単に自分の心拍計とケイデンスセンサーの感度が悪いだけかもしれませんが。

 

その他のログ

GRADEとあるので、勾配データのPC→スマトレへの送信(FE-C)と、スマトレが設定したことのログですね。
「FE-C SIM GRADE」は毎秒出力されていますが、「FET grade set successfully」は毎秒ではないので、スマトレに反映されてないことがあるということかな。

[22:16:06] FE-C SIM GRADE -0.003
[22:16:06] ANT : FET grade set successfully
[22:16:07] FE-C 17 received
[22:16:07] FE-C SIM GRADE -0.003
[22:16:07] FE-C 17 received
[22:16:07] ANT : FET grade set successfully
[22:16:08] FE-C SIM GRADE -0.003
[22:16:09] FE-C SIM GRADE -0.002

 
補助コントローラーとはなんぞ?と一瞬思いましたが、
コンパニオンアプリのことだと思います。

[21:51:45] NETCLIENT:[INFO] Auxiliary Controller failed to connect to socket

 
8秒周期で出ていますが、FPSだからフレームレート?

[22:28:07] FPS 31, 82772, 11024, 133051
[22:28:15] FPS 30, 84330, 11137, 140787

他にもありますが、目をひいたのはこんなところ。

 

まとめ

なんとなーくで見始めたログでしたが、結構面白かった。
わかりやすく出力してくれているので、PowerShellあたりでtailしてやれば、パワーロストの前兆を検知することはできそう。
作ったら需要あるかな?

ちなみにログ分析のサイトなんてものもありました。
https://zwiftalizer.com/
正常時とロスト頻発時ので比較すればわかりますが、単体だと微妙かな。

スポンサーリンク

-ZWIFT, 自転車の雑記   -