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 3
[22:16:00] ANT : Transfer Completed.
「ANT : Rx Fail」はスマトレ等~PC間の通信失敗、
「Transfer Completed」はサーバへのデータ送信と解釈。
起動直後のログと照らし合わせると、
チャネル1=心拍計、チャネル2=スマトレ、チャネル3=ケイデンス。
[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] 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
補助コントローラーとはなんぞ?と一瞬思いましたが、
コンパニオンアプリのことだと思います。
8秒周期で出ていますが、FPSだからフレームレート?
[22:28:15] FPS 30, 84330, 11137, 140787
他にもありますが、目をひいたのはこんなところ。
まとめ
なんとなーくで見始めたログでしたが、結構面白かった。
わかりやすく出力してくれているので、PowerShellあたりでtailしてやれば、パワーロストの前兆を検知することはできそう。
作ったら需要あるかな?
ちなみにログ分析のサイトなんてものもありました。
https://zwiftalizer.com/
正常時とロスト頻発時ので比較すればわかりますが、単体だと微妙かな。