2024年6月14日金曜日

MacroDroid(ゴミの日)

 MacroDroid面白いですね。

条件や実行操作が、Galaxy標準のモードとルーチンよりも多いんですよね。

でも、Galaxyのケータイ特有の機能は条件にしたり操作したりできないんですよ。

それでも、条件にトリガーと条件が設定できたり、条件分岐できるのでGUIでシェル組んでるような感覚ですね。

Galaxyのモードとルーチンでも色々と出来るし、特有の機能の操作ができて便利なんですが、

特定の音声再生が出来ない!

んですよ。

ウチのケータイは通知音で何の通知か分かるように音声ファイルを使ってます。

アプリのカテゴリ別でも音声ファイル使って分けてます。

通知用の音声ファイルが60以上ありますね。これだけで無駄にケータイの画面を見なくて済むようになりました。

でも、カレンダーやメールって個別に設定できないんですよ。

カレンダーだとカレンダー単位(プライベートと仕事とか)だし、メールも自分のメールアカウント単位です。

カレンダーもメールも、ある程度は使い分けているので、

カレンダーだと

 個人(タスクもアリ)

 仕事(タスクもアリ)

 仲間

 記念日・誕生日

 期間的なイベント

のようにカレンダーを分けて通知音も変えてます。

メールも

 重要(金融機関などの重要なアカウント用)

 一般(サポートなどのアカウント用)

 会社

 ゴミ

で通知音を変えてます。

Galaxyには、通知の際に内容を読み上げる機能もあるんですが、読んでほしくないメールもありますよね。ま、メールは実際のところ知人とのやりとりには全く使ってないので、急いでみなきゃいけないようなものは来ません。でも、カレンダーとタスクは備忘に使ってるので見た時には手遅れって事にもなりかねません。


な~んて言っては見ましたが、ケータイを触れないような状況(満員電車や歩行中)に、手遅れになるような通知が来ないように登録してるので、基本的には数時間前に通知されます。

で、唯一気になってるのが

ゴミの日

です。忘れがちですよね。特に、燃やさないゴミの日って、月に2回なんですよ。ウチは第一週目と第三週目なんですが、今日が何週目か分かりにくいし、なによりも何週目が燃やさないゴミの日だったっけ?になりがちです。いまも自治体のサイトで調べました。

なので、これまで繰り返しタスクに登録してたんですが、カレンダーにゴミの日が表示されるのヤダぁってのと、カレンダー単位でしか通知音変えられないので、何のゴミの日か分かりにくい!しかも出勤前の短い時間(早起きなんで短くは無いんですがやること多いんで)なので通知音だけで知りたいっ!という我儘を叶えるためにMacroDroid使ってみました。

いや、本当の目的は別なんですが、今回は条件分岐とかも使ったマクロの方が良いかなと。

で、通知したいのは

・燃やせるゴミの日(毎週火金)

・資源ゴミの日(毎週水)

・燃やさないゴミの日(第一木・第三木)

です。

毎週繰り返しは何一つ悩む必要もないんですが、第一・第三て・・・

これがカレンダーを使ってた理由なんです。カレンダー(と言うかタスク)は、第一とか第三とか指定できるんですよ。

年間の何週目かは関数とかよくあるんですが、その曜日が何週目なのかってどうやりゃいいの?

例えば、

1日が月曜なら7日が日曜なので、1日から7日は1週目

1日が日曜なら2日が月曜なので、2日から8日は1週目で9日は2週目

じゃないですか。

じゃあ、3日は何週目?って計算しようとすると、どうすりゃいいの?

1週間は7日なので、何かを7で割れば良いんでしょうが、何を割ればいい?

1日が火曜なら7日は月曜で2週目になるって事は、

7日が7か8になれば良いんですか?

あ、違いました。木曜日の日付が何週目になるかでしたね。

とすると、

1日が月曜なら、木曜は4日(1週目)

1日が火曜なら、木曜は3日(1週目)

1日が水曜なら、木曜は2日(1週目)

1日が木曜なら、木曜は8日(2週目)

1日が金曜なら、木曜は7日(1週目)

1日が土曜なら、木曜は6日(1週目)

1日が日曜なら、木曜は5日(1週目)

と言うことは、1日が7になれば良いですかね?
で7で割れば良い?

(今日+6)/7

って事ですか?

1日が月曜なら、木曜は4日なので (4+6)/7 = 1.43

1日が火曜なら、木曜は3日なので (3+6)/7 = 1.29

1日が水曜なら、木曜は2日なので (2+6)/7 = 1.14

1日が木曜なら、木曜は8日なので (8+6)/7 = 2.14

1日が金曜なら、木曜は7日なので (7+6)/7 = 1.86

1日が土曜なら、木曜は6日なので (6+6)/7 = 1.71

1日が日曜なら、木曜は5日なので (5+6)/7 = 1.57

あ~、いけそうですね。

念のため、月末付近も見てみます。

1日が月曜なら、木曜は25日なので (25+6)/7 = 4.43

1日が火曜なら、木曜は24日なので (24+6)/7 = 4.29

1日が水曜なら、木曜は23日なので (23+6)/7 = 4.14

1日が木曜なら、木曜は29日なので (29+6)/7 = 5.00

1日が金曜なら、木曜は28日なので (28+6)/7 = 4.86

1日が土曜なら、木曜は27日なので (27+6)/7 = 4.71

1日が日曜なら、木曜は26日なので (26+6)/7 = 4.57

なんかいけそうな気がするけど、別の見方もしてみよう

1日が月曜なら、

8日も月曜なので (8+6)/7 = 2

15日も月曜なので (15+6)/7 = 3

22日も月曜なので (22+6)/7 = 4

29日も月曜なので (29+6)/7 = 5

バッチリだ。で、

1日が日曜なら、

2日が月曜なので (2+6)/7 = 1.14

9日が月曜なので (9+6)/7 = 2.14

16日が月曜なので (16+6)/7 = 3.14

23日が月曜なので (23+6)/7 = 4.14

30日が月曜なので (30+6)/7 = 5.14

これだっ!これでいける!

月の何週目なのかってなると難しそうだけど、その曜日が何週目かならOKだな。

もう疲れたんで、この辺で終わろうかと思ったけど、MacroDroidのこと何も書いてなかったわ。


じゃ、ザックリと


1.変数を設定

 週番号の計算です。

 ({dayofmonth}+6)/7の結果を変数[dayofweek]に格納します。

 dayofmonthは日付(日)が数値で返される関数らしいです。

 dayofweekはユーザ変数です。


2.1.条件分岐

 今日が木曜日か

2.1.1.(木曜なら)条件分岐

 [dayofweek]が[1 or 3] ← このためだけに上の長い文があったんです

2.1.1.1.(1週目または3周目なら)燃やさないゴミの日の処理

 燃やさないゴミの日の通知音再生

 燃やさないゴミの日の通知表示


2.2.条件分岐

 今日が火曜日または金曜日

2.2.1.(火曜日または金曜日なら)燃やせるゴミの日の処理

 燃やせるゴミの日の通知音再生

 燃やせるゴミの日の通知表示


2.3. 条件分岐

 今日が水曜日

2.3.1.(水曜日なら)資源ゴミの日の処理

 資源ゴミの日の通知音再生

 資源ゴミの日の通知表示


マクロはこんな簡単なものなんですよ。

どちらかと言うと条件や分岐判定の設計の方が大変です。

でも、これで、何のゴミの日か通知音だけで分かるようになりました。


で、ゴミの日なので通知されて終わりじゃないですよね。

ゴミを出して終わりです。

なので、通知について書いときます。


通知を表示するための設定画面ですね。


通知ID:0以外だと同じIDの通知で上書きされるそうです。

 用途としては、「何かを実行中」って通知を出した後に、何かが終わったら「何かが完了」って通知で上書きするような感じですかね。


[アイコン設定]

 ステータスバーに表示されるアイコンの設定です。文字にもできますが小さいので2文字が限界かと思います。アイコンはユーザで作ったものも使えるので分かりやすい通知に出来ますね。でも、ステータスバーは設定したアイコンですが、通知バーはMacroDroidのアイコンなのが残念で仕方ありません。


タイトル

 通知バーに表示されるタイトルです


通知のテキスト

 通知バーに表示されるメッセージ内容です


通知チャンネル

 通知の重要度を設定できます。通知チャンネルに名前も付けられます。


タップした時にマクロを実行する

 通知バーでタップした時にマクロを実行するかどうかです。

 ONにするとマクロやアクションブロック(ユーザ設定できる部品です)を選択できます。

 私は、タップしただけで通知が消えると嫌なので、単にタップした場合はもう一度マクロを実行して通知を出すようにしています。


既存の通知を消去する

 通知IDが0なので、万が一通知を消す前にマクロが実行されたら、通知時刻を更新するために既存の通知を消去してから新しい通知が出力されるようにしています。

 他のアプリやマクロの通知が消えることはありません。


アクションボタン

 ラベル

  通知バーで通知を展開した時に表示されるボタンの文字です。


 ボタン押下時に実行

  ボタンを押したときの動作の設定です。


 入力/出力パラメーター設定

  使ってないので分かりません。


 タップ時に通知を消去

  このボタンを押すと通知を消すのかを設定します。

  ゴミ出し完了のボタンなので通知を消すようにしています。


アクションボタンを追加

 アクションボタンは複数設定できるので、追加したい時に選択します。


これで、通知バーで「やった!」ボタンを押すまで通知は消えません。

ゴミ出しは完璧です!

という計画だったんですが、通知をスワイプしたら消えますね。

通知をスワイプした時の動作設定が出来るようにしてください。


0 件のコメント:

コメントを投稿