Skip to content

【Taskerレシピ】明るさ自動調整を改良しよう

こんにちは。今回紹介するTaskerレシピは明るさ自動調整(改良版)です。

前回のTaskerレシピでも明るさ調整についてでしたが、設定方法が煩雑であまり満足の行く調整ではありませんでした。今回の調整方法では、簡単&高性能な明るさ自動調整をご紹介します。

他のTaskerレシピについては以下を参照ください。

はじめに

前回の明るさ調整では、照度センサーの値に対してIF文を設定して任意の明るさを設定する方法でした。照度センサーごとの明るさを微調整する必要があるため、手間がかかります。

今回の明るさ自動調整では、照度センサーに対数の計算を適用させて明るさのパラメータを決定する方法に変更しました。そのため、前回のような条件分岐がなくなり、シンプルになっています。

作り方

タスクの概要

まず、作成するタスクの全体は以下です。

8e80443d screenshot 20230805 071337

処理の流れは以下です。

  1. 1秒待機(トリガー発動時から処理を遅らせるためですが、なくても良いと思います)
  2. 照度センサーから読み取った値%LIGHTに対数の計算を実行して、明るさパラメータの変数%resultBright に代入します
  3. 照度センサーの値が小さい場合に、明るさの値がマイナスになり、エラーが発生することがあります。そのため、IF文で明るさの値がマイナス or 照度センサーが0のときは明るさを2に固定しています。

パラメータの作成

はじめに、照度センサーから計算する明るさパラメータの%resultBright の変数を作成します。VARSタブをタップして、+ボタンをタップします。

98c33003 screenshot 20230805 071305

%resultBright と入力して、チェックマークをタップします。

あとで使用する自動調整オン/オフパラメータも作成しておきましょう。同様に、%enableAutoBright と入力してチェックマークをタップします。

タスクの作成

それではタスクの中身について作成していきます。

6c7856be screenshot 20230805 071329

TASKタブを開いて+ボタンをタップします。明るさ調整 など任意のタスク名を入力してチェックマークをタップします。

+ボタン > Task > Waitを選択して、 1 Secondsに設定します。

+ボタン > Variables > Variable Setを選択します。

0aab9c46 screenshot 20230805 071346

Nameに%resultBright を設定します。(タグアイコンから選択できます)

Toにlog(%LIGHT)*1.9 を設定します。この1.9は場合に応じて値を調整してください。私の感覚では1.9があらゆる場面において最適でした。

+ボタン > Task > Ifを選択して、

43d0cc4e screenshot 20230805 071407

Conditionに%resultBright < 0 を設定します。右上の+をタップして、%LIGHT ~ 0.0 を設定します。条件はORにします。Ifの設定画面から戻ると、Insert Actionが選択できるので、If, End if をタップします。

次に、Display Brightnessを2つ追加します。

3a1de7b8 screenshot 20230805 071337 1

+ボタン > Display > Display Brightnessを選択して、Levelを2に設定します。

同様に、+ボタン > Display > Display Brightnessを選択して、Levelを%resultBrightに設定します。

上記の図のように、Ifの中にDisplay Brightness(Level 2), Elseの中にDisplay Brightness(Level %resultBright)をドラッグしてください。

プロファイルの作成

前回は、在宅時+10秒おき + ディスプレイがオンをトリガーに設定していました。

9e69a082 screenshot 20230805 071508

今回設定するのは、自動調整がオン+10秒おき+ディスプレイがオンにします。在宅時、外出時に関係なく使えると判断しました。また、自動調整してほしくない場面が多々あったため、ホーム画面のショートカットからこのレシピをオン/オフにする機能もつけています。

それではプロファイルを作成していきます。

PROFILESタブに移動して、+ボタン > Event > System > Tickを選択し、10000 を入力します。するとタスク一覧が表示されるので、先程作成した明るさ調整 を選択します。

次に、トリガーにディスプレイオンと自動調整オンの条件を追加します。

Tick10000のトリガーをロングタップしてAdd > State > Display > Display Stateを選択して、IsをOn にします。同様に、ロングタップ > Add > State > Variables > Variable Valueを選択して、%enableAutoBright ~1 にします。

以上でプロファイルの作成は完了です。次に、自動調整オン/オフを切り替えるタスクを作成します。

自動調整オン/オフ機能の追加

作成した変数%enableAutoBrightに値を代入して自動輝度調整オン/オフを切り替えられるようにします。以下のタスクを作成します。

6dee0136 screenshot 20230805 071549

TASKタブを開いて+ボタンをタップします。明るさ調整ON/OFF など任意のタスク名を入力してチェックマークをタップします。

+ボタン > Task > Ifを選択して、Conditionに%enableAutoBright ~ 0 を設定します。Ifの設定画面から戻ると、Insert Actionが選択できるので、If, End if をタップします。

次に、明るさ調整オン/オフ変数に0(無効)、1(有効)の状態を設定します。

+ボタン > Variables > Variable Setを選択して、Nameを%enableAutoBright 、Toを0 に設定します。Ifの中にドラッグします。

+ボタン > Variables > Variable Setを選択して、Nameを%enableAutoBright 、Toを1 に設定します。Elseの中にドラッグします。

また、自動調整オン/オフに設定した際に、Flashで画面下に文字を通知するとわかりやすいです。(オプション)

+ボタン > Alert > Flashを選択して、Textを自動輝度調整オン など任意の文字に設定します。Ifの中にドラッグします。

+ボタン > Alert > Flashを選択して、Textを自動輝度調整オフ など任意の文字に設定します。Elseの中にドラッグします。

ショートカットのアイコン設定

ショートカットをホーム画面に配置したときのボタンは、下部にあるアイコンをタップすることで設定できます。

22f9ea73 screenshot 20230805 071725

自動調整オン/オフのショートカット配置

先程作成した自動調整オン/オフタスクを呼び出すショートカットを作成します。

e8bb0293 screenshot 20230805 071610

わかりにくくて恐縮ですが、紫枠で囲った部分が自動調整オン/オフのショートカットです。作り方はまずホーム画面上でロングタップして、Taskerのウィジェットを追加します。

13a82d99 screenshot 20230805 071626

タスク1×1を選択します。

ロングタップして、配置する際に以下のエラーが出ることがあります。指示通り、Taskerアプリを開いて戻る を実行してアプリを終了しましょう。

f6ee2b9e screenshot 20230805 071643

ショートカットが配置できたら、タスクの選択画面が出ます。

先程作成した、タスク(自動明るさオンオフ)を選択しましょう。ホーム画面にアイコンが追加されたら完了です。

概要コード

参考までに、以下がTaskerのレシピコードです。

明るさ調整

    Task: 明るさ調整
    
    A1: Wait [
         MS: 0
         Seconds: 1
         Minutes: 0
         Hours: 0
         Days: 0 ]
    
    A2: Variable Set [
         Name: %resultBright
         To: log(%LIGHT)*1.9
         Structure Output (JSON, etc): On ]
    
    A3: If [ %resultBright < 0 | %LIGHT ~ 0.0 ]
    
        A4: Display Brightness [
             Level: 2
             Disable Safeguard: On
             Ignore Current Level: On ]
    
    A5: Else
    
        A6: Display Brightness [
             Level: %resultBright
             Disable Safeguard: On
             Ignore Current Level: On ]
    
    A7: End If

自動調整オン/オフ

    Task: 自動明るさオンオフ
    
    A1: If [ %enableAutoBright ~ 0 ]
    
        A2: Variable Set [
             Name: %enableAutoBright
             To: 1
             Structure Output (JSON, etc): On ]
    
        A3: Flash [
             Text: 自動輝度調整オン
             Continue Task Immediately: On
             Dismiss On Click: On ]
    
    A4: Else
    
        A5: Variable Set [
             Name: %enableAutoBright
             To: 0
             Structure Output (JSON, etc): On ]
    
        A6: Flash [
             Text: 自動輝度調整オフ
             Continue Task Immediately: On
             Dismiss On Click: On ]
    
    A7: End If

おわりに

明るさ自動調整にはかなり悩まされてきましたが、個人的には今回の設定方法で満足したので、記事にしました。実は、以前使っていたXperia1ではブルーライトアプリを適用するだけで最適な明るさになっていたのですが、Pixelに変えてからブルーライトアプリの挙動がおかしくなってしまい、明るさ調整に困っていました。謝謝Tasker。

記事を書いていてふと思ったのですが、照度センサーによって算出した明るさの値と、10秒前に設定した明るさの値とを平均して設定すると、急激に明るさが変更される現象が緩和されるかもしれません。あれこれ改善策やアイディアを考えて実行できるのがTaskerのいいところ、面白いところだと思います!

カテゴリTasker

Be First to Comment

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

コメントは日本語で入力してください。(スパム対策)

CAPTCHA