Google Pixel Watch、アラームが正確な時刻に鳴らないという問題 43
ストーリー by nagazou
寝坊 部門より
寝坊 部門より
headless 曰く、
Google Pixel Watch でアラームが指定した時刻に鳴らないという問題が数か月前から報告されているようだ (Android Police の記事、 9to5Google の記事)。
具体的にはセットした時間から前後数分ずれた時刻に鳴るというもので、遅く鳴るという報告が目立つ。ある Reddit ユーザーは授乳のため 19 時にアラームをセットしていたが、実際にアラームが鳴ったのは 19 時 1 分だったという。そのため、アラーム項目を削除して新たに作成したところ、今度は 19 時 2 分に鳴ったそうだ。別の Reddit ユーザーは早いときでは 4 分前、遅いときでは 6 分後に鳴ったと報告している。問題が数回だけ発生し、あとは発生しないとの報告もみられる。9to5Google では就寝モードなどの影響を指摘しているが、正確な原因は不明だ。ずれる時間が数分と短いため、気付かずに使い続けている人もいるかもしれない。スラドにPixel Watchユーザーや、実際に問題を目にした方はおられるだろうか。
時刻を見ないで鳴らしてるのかな (スコア:1)
定期的(例えば毎秒や毎分)呼び出す処理を用意して、そこでアラーム条件チェックして鳴らす
→毎秒や毎分チェック処理が走る=無駄処理が大量発生
=バッテリー食う
ということになるから、例えば現在時刻が13時で19時00分にアラームしたいなら6時間待つ処理を用意して、6時間後に一回だけ処理する。
処理が走るのはたった一回だし、その処理の中ではアラーム鳴らすだけ。時刻を見る必要もない。だから各種処理が省けて省電力化できる。
でも問題はきっちり6時間待てるかってところ。
待つアルゴリズムによってOS起因の誤差やRTCの誤差が生じてしまい、鳴る時刻が前後してしまう。
間欠動作と噛み合わない? (スコア:0)
消費電力下げるために間欠動作していて、それが数秒ごとにwakeupするもんだから
毎分の00を取り逃がす。で、それの対策ルーチンの副作用で正時から前後する。
なんてストーリは考えつくけど、それにしても6分はズレすぎ。
どんな設計したらこうなるのか、後学のために知りたいもんです。
# 10ns未満のジッタに悩まされる時計の面倒見てたのでAC
Re: (スコア:0)
6分後はともかく、4分前ってのが理解できない…。
ホントにどういう設計なのだろう?
例えば時計を動かしていない時は低レベルの処理により超省電力モードになって、間欠動作の間隔がどんどん開いていく。
アラーム側からは次の間欠時間を設定することができない、しかたないから4分前にアラーム鳴らす。
とかだったらどうにもならないかなぁ…。
Re: (スコア:0)
>6分後はともかく、4分前ってのが理解できない…。
その理屈が一番ワカランわ
Re: (スコア:0)
過去のことはわかるけど未来のことはわからない
と言うことがワカランのは迂闊過ぎやしませんか
Re:間欠動作と噛み合わない? (スコア:1)
⇒ワカル
「気が付いたら4分前だった」→「すぐに鳴らした」
⇒ワカラナイ
時刻見てないのかもしれませんね
Re: (スコア:0)
自分#4422850ですがまさにその通りです。
特に、起こされたのが4分前だったとして、4分前と認識したら4分後に再度起こすようなタイマー仕込む余地はありそうに思えたので。
Androidのアラームの仕組み知らないのでテキトーな考えですけど、早めに起こされたら二度寝するよね、って思ったわけですよ…。
※多分アラーム部分とアプリ起こす部分って別だろうからこうはいかないんだろうけど、そこはAndroidOSの方が微調整ぐらいしても良いんじゃね、って思うよ。4分タイマー仕込めば良いだけなんだし。
※それ言ったら、6分後もあらかじめ早めに起こしてから二度寝タイマー仕込んどけば良いんじゃね、って思うので同根とは思うけど。
Re: (スコア:0)
内部で10分単位の丸めでも行われているんだろうか。
12:06にセットすると12:00、12:56にセットすると13:00に鳴るみたいな。
丸めたあとの時刻がぴったりでないと気が付けないかもしれない。
Re: (スコア:0)
電池を節約するため、ある程度の誤差を容認するつくりになっているわけよ。
誤差があるものだとした場合、設定時刻が誤差範囲の中心に来た方がいいよね?
だから、指定時刻前でもアラームが鳴る。
一日は1440分なので、一日一回で誤差1%なら14分までずれてもいいことにになる。報告されている現象はそれと一致する。
たぶん誤差がたった1%の正確な予報を出したつもりなんだよ、Googleとしては。
# 人はそれをバグと呼ぶ
Re: (スコア:0)
プログラムとかシロート( sh スクリプトをコピペで書くくらい)な私が書くなら、アラームのなっているべき時間を一分としたら、 POSIX time で比較して設定よりも大きかったら鳴らして、設定に 60 秒足した値よりも大きかったらアラームを止めるくらいの簡単な動作だと思うんです。数秒ごとの間欠 wekeup するならなり始めが数秒遅れることはあっても一分はズレないと思うんですが、実際こういうときにはどういったアラームプログラムを作ると思いますか?>本職の方々
まぁ、実際には 00 秒から鳴らしたいだろうから間欠 wakeup であるなら一分前などちょっと前からは稼働状態にしているかもとは思います。ビデオの予約録画がそんな感じで指定の時間よりちょっと前に電源が入って 00 秒から録画が始まってました。
# 運動用の GPS 同期のスマートウォッチを使っていて、最近屋内にいる時間が長すぎたせいか時刻が数分遅れる事態に至り手動で GPS 同期する方法をマニュアルで調べました。
Re: (スコア:0)
cronで時刻指定して「止める作業を受けるまで音を鳴らす」プログラムを起動
だな。秒単位で指定したいなんてときにはだめだけど、アラーム目的だったらそんなもんで可。
Re: (スコア:0)
消費電力を勘案するなら、RTCを使うプログラムを書けない。
タイマー割り込みか、WDT割り込みを使う事になるけど。
Big.LITTLE構成のCPUだと、プロセス移動に伴って割り込みの精度が落ちるとか。
Re: (スコア:0)
>数秒ごとの間欠 wekeup
たぶんここが違っていて、数分ごとのWakeUpになってるんじゃないかと
Re: (スコア:0)
もうべーシックでつくったほうがマシなんでわ?
普通はタイマーチップが別にあり (スコア:0)
それを読み取って動くだけなので大きくはずれない。
間欠で動かしても数分ずれることはない。
内部的に致命的な欠陥があると思われ
Re:普通はタイマーチップが別にあり (スコア:1)
Android本体は時刻きっかりのアラーム通知を設定するのは権限が必要になった(なる?)らしい。
どうするのかというとある程度の範囲を指定して、その中で暇なときにアラームが来る。
それと同様な制御なんじゃないですかね。
# つまり、忙しかっただけ。
Re: (スコア:0)
忙しくて遅れるのは分かるけど、早くなるのが分からん
Re: (スコア:0)
なんか、工場の前に運送会社のトラックが行列してるも無理ねえなという感じだ。
もともと正確にアラーム出すのは放棄してるのだ。
実行できるタイミングがやってくる間隔が10分程度と予想されるとき、0~+10にするか、-5から+5にするかの問題なだけだが。
わからんのじゃなく、認めてないだけ。
終業時刻の2分前 (スコア:0)
Google Pixel Watchのアラームをセットしてるけど、1分以上のズレってのは記憶にない。
そもそも (スコア:0)
スマホの時計自体正確じゃないよね
正確な時刻が必要なら電波時計使えばいいのに
Re:そもそも (スコア:1)
正確な時刻が必要なら電波時計使えばいいのに
正確な時刻を求めていなくても、6分ズレたら普通に困りませんか?
電車の時間に合わせて家から出ようとしている時とか。
Re: (スコア:0)
電車が6分ずれて大騒ぎする国は日本だけなので、もう日本市場なんかどうでもいいの流れの一環とか
Re: (スコア:0)
逆。逆。
電車はダイヤ通りに運行しているという前提で、自分の行動が6分ずれたために、狙った電車に乗り遅れるというシチュエーション。
ちょっと郊外に出れば、20分間隔ダイヤとか普通なので、1本逃しちゃうのはダメージでかいですわよ。
Re: (スコア:0)
記事で続々とあがってる報告は日本人がわざわざ英語で書いてくれてたのかぁ
Re: (スコア:0)
だからスマホの時計は電波時計だって
Re:そもそも (スコア:1)
電波時計といっても "JJY" (NICTが運用している長波電波の時計) ではなく、 "NITZ" という基地局が提供する時計なので、少し違いますね。
しかも Android 12以降ではNITZよりNTPのほうが優先されます [android.com] 。
Re: (スコア:0)
まあ、広義の(?)電波時計ではあるな。
GPSも電波時計だと抗弁できる!?カモw
>NITZの規格では、協定世界時(UTC)と基地局装置の時刻誤差は1.5マイクロ秒以下
だそうなんで、一般人の実用になるくらいは正確。(GPSよりは劣る)
でも、ラジオNHK第一の時報を聞きながらスマホ見てると0.2secくらいズレてる感じなのだけど
これはスマホでの実装and/or表示の問題なのでしょうね。
いつか40kHzJJYとNHKを比べてみよう
Re: (スコア:0)
電波時計は受信できないと月差±15秒位の性能なので、設置場所や電波状況に左右されずネットワークさえあれば時刻同期できるスマートフォンの方が正確なのが実情だと思います。
そもそもスマホ側(Android)の問題 (スコア:0)
以前からAndroidスマホの時計がズレる問題がある。
当然、スマホとリンクしたスマートウォッチ側でも起きる。
Google Pixel Watchは使ったことないけど、
CASIOやCITIZENの腕時計をAndroidスマホとリンクして使ってた時は分単位でズレてることがあった。
鉄道の駅で腕時計を確認して間に合うと思ってたら、発車した後っだったことが何度もあった。
たぶん、GPSやNTPで時刻補正するロジックに問題があると思ってる。
Re: (スコア:0)
NTPやGPSによる補正の間隔が、数分の誤差が出るほど長いとは思えません。
Re: (スコア:0)
電波時計もそうだけど外部の情報に依存する時計は、大抵はズレが少ないけど、たまに大きくずれることがあるので、あまり信用していない。信頼できるのはチープカシオのデジタル。
Re: (スコア:0)
Androidそのものがズボラな設計なのでするみたいですね。
Androidスマホの時間がずれる時の対処方法
https://sumahosupportline.com/android%E3%82%B9%E3%83%9E%E3%83%9B%E3%81... [sumahosupportline.com]
ただずれても数秒なのでスマートウォッチが正常に動かないのは
本体のスペックが低すぎるの
Re: (スコア:0)
今回の問題はアプリ側にあると思います。
Androidには、省電力化のためアラーム発火時刻だったりsleep時間を意図的に変え、
ある時刻に一気に複数タイマイベントを処理し省電力化を狙う機能があります(Dozeとかalarmmanagerで調べて)
WrarOSも同じとすれば、
PixelWatchプリインのアラームアプリが、「指定した時刻きっかりに」イベントを起こしたい旨OSに伝えるべき所を忘れたため、
OS省電力機能にやられ時刻精度が荒くなった、だけ、の可能性が高いかと。
RTPだGPSだNTPだは無関係かと。
たかだか4分とか6分とか (スコア:0)
光画部時間とか沖縄時間に比べれば誤差にもならないさ
Re:たかだか4分とか6分とか (スコア:1)
これ。
つーか、キッチンタイマーとかならまだしも、例えば目覚ましの時間に数分のずれを許容できないタイトな生活ってどんなんだ。
そもそも、鳴った瞬間に目覚めて活動開始できるほど健康か?鳴ってから止めるまでに何秒?何十秒??
Re:たかだか4分とか6分とか (スコア:1)
そもそも、で言えば「アラーム」を名乗るソフトの謎の挙動の話なのに
分単位の誤差を擁護するために人間のほうを責め始めるのは何かもう怖いわ
元コメは割とネタ気味なのに…
不具合系の話題にちょいちょい湧く「必死な無頓着」ってどういう心理なんだろう
Re: (スコア:0)
数分どころか数秒のずれを許容できない作業あるからな。
1分前に鳴らして準備して待機、5秒前から実際の作業始めるとかあるぞ。毎日。毎日な。
Re: (スコア:0)
数秒のずれを許容できない作業にスマホのタイマーを使うな
Re: (スコア:0)
アラームはアラーム
目覚ましに使うのは代表的な使い方だが使い方はそれだけじゃない
Re: (スコア:0)
だが待ってほしい。
光画部時間のつもりでぴったり2時間遅れを狙ったのに時計が狂ってて2時間1分の遅刻になったらみんなに叩かれるじゃないかっ!
そんな不正確な時計では光画部時間は狙えない。
もしかして・・・ (スコア:0)
本体スペックが低いのでは?
仮説
本体の機能としてアラームが内蔵されてない。
アップデートや他のタスクが実行されている状態ではフリーのメモリーが使えず、
外部プログラムアラーム機能が実行できない。
結果特定の端末ににトラブルが集中する。
スマートウォッチのアプリを削除可能であるなら
いくつか削除してアラーム機能が正常に動くようなった場合。
これらの条件から、本体スペックが低いことが原因であると推測できる。
Re: (スコア:0)
SoCとして型落ちのExynosを使っている時点で、何か妙だなあ?とは感じていた
Re: (スコア:0)
dozeさんの手前の椅子が3つくらいしか無いんでしょ