雑記帳

整理しない情報集

iOSのオートメーションでWi-Fi無限ループの対策

公開日:

カテゴリ: iOS

iOSのオートメーションでWi-Fiの接続・切断をトリガーにした際、バッテリー残量が10%以下になるとWi-Fi接続・切断を無限に繰り返してしまうので、その対策をまとめました。

バッテリー残量の多いときであれば多少は目を瞑れますが、10%以下で発生してしまうと、残り少ない電池にトドメを刺すことになるので、何かしらの対策をしたいところです。

原因

iOSとオートメーションの仕様がうまく噛み合わないために発生するようです。

  • バッテリー残量が10%以下でWi-Fiとモバイルデータ通信の両方接続している場合、Wi-Fiを切断する
    • 切断したWi-Fiは、次に画面を点灯させた際に再接続する(画面ロックの解除有無は関係しない)
    • この挙動は、設定アプリなどで変更できない
  • オートメーションを確認なしで自動実行すると、終了後に自動で通知が行われる
    • ショートカットの通知とは異なり、オートメーションの通知は個別設定での選択肢なし

つまり、

  1. スリープ中でバッテリー残量10%以下かつ充電中でない場合、Wi-Fiが自動切断
  2. Wi-Fi切断をトリガーにしたオートメーションが実行
  3. 2.のオートメーションの自動実行により通知が発生
  4. 3.の通知によって画面が点灯しWi-Fiが自動再接続
  5. Wi-Fi接続をトリガーにしたオートメーションが実行
  6. 自動でスリープ、以降繰り返し

のループにハマって抜けられなくなってしまっています。

オートメーションのトリガー設定で「接続が中断したあとに実行」のチェックを外すことで、ループ間隔を3分まで広げることはできますが、それでも単純計算で1時間当たり20回実行されます。

対策

いくつかありますが、どれも一長一短です。

手順はiOS18の例です。バージョンによって項目の場所が異なることがありますので、適宜読み替えてください。

方法1: オートメーションを駆使して、モバイルデータ通信を切る

アプローチは2つあり、

  • Wi-Fi接続時にモバイルデータ通信を切り、Wi-Fi切断時に再接続する
  • バッテリー残量が10%より下の場合はモバイルデータ通信を切り、10%より上の場合は再接続する

のいずれかで対策できます。大抵の場合は前者の方が使い勝手が良さそうですが、楽天Linkを使用している方は相性が悪いかもしれません。後者の場合は、Wi-Fi未接続の環境でバッテリー残量が10%より下になると、インターネットが切れます。

方法1-a: オートメーションを二重登録する

オートメーションでは「Wi-Fi接続時かつバッテリー10%より下」のような、複合条件をトリガーに設定することはできません。そのため、代わりにトリガーではなく実行側の条件分岐で、もう一方の判定を行うことで、パターンを網羅する方式です。

方法1よりも柔軟な指定が可能ですが、設定するオートメーションを2倍の数の設定が必要になります(ちょっと設定を変えるのが面倒になります)。

また、トリガーの方に当てはまった時点でオートメーション自体は実行されるので、条件分岐でモバイルデータ通信のオン/オフ切り替えを行わなかったとしても、実行通知は表示されます。

  • トリガー:Wi-Fi接続時
    • バッテリー残量が10%より下の場合に、モバイルデータ通信をオフ
  • トリガー:Wi-Fi切断時
    • モバイルデータ通信をオン
  • トリガー:バッテリー残量が10%より下
    • Wi-Fi接続している場合に、モバイルデータ通信をオフ
  • トリガー:バッテリー残量が10%より上
    • モバイルデータ通信をオン

方法2: ショートカットアプリの通知を切る

通常、ショートカットアプリは設定アプリで通知の設定はできませんが、スクリーンタイムのアプリ通知のレポートからは開くことができます。その画面では、他のアプリと同様の通知設定を行えます。

ただし、この方法は他のショートカットやオートメーションの通知もすべて表示されなくなります

手順

  1. スクリーンタイムを有効にする
  2. なんでもいいので、ショートカットアプリで一度通知を発生させる
    • 直近でショートカットアプリの通知が発生していれば不要です
    • 新規ショートカットで通知をセットし右下の三角を押すだけでもOKです
  3. 設定アプリスクリーンタイム → 上の方のグラフの下にある すべてのアプリとWebサイトのアクティビティ → 一番下の通知の項目にある ショートカット
  4. 適宜、通知の設定する

方法3: 自動スリープを無効にする

そもそもスリープにならない限りWi-Fiは自動で切断されないため、自動スリープを無効にしても問題のない運用をしているのであれば、そちらのほうが手っ取り早いです。

手順

  1. 設定アプリ画面表示と明るさ自動ロック
  2. なし を選択する

カテゴリ: iOS