見出し画像

場所と時間のアンド条件を満たしたら、iPhoneから通知

昨年、IFTTTに「金はらえや」って脅されちゃったんで、上納金を払ってます。毎月。まあ、特典最低額の毎月223円ですけどね。てへぺろ

で、Proサービス開始と同時に、フィルター機能とクエリ機能が付きましたね。

何が言いたいかというと、場所と時間のアンド条件でのiPhone通知が、できるようになって嬉しいという件です。

場所or時間の通知サービスなら、今までたくさんありましたよね。でも場所and時間の通知がなかなか実現できませんでした。10時〜20時内に阪急オアシス甲陽園店の近くに来たら、Googleの買い物リストへのリンクを自動で通知表示するとか、なかなかできなかったんです。

スクリーンショット 2021-06-13 23.11.19

時間&場所のリマインダー

こんな感じでできました。

1. Location (If)

「You enter an area」を選び、特定の場所をセットします。

2.Send a rich notification from the IFTTT app (Then That)

例として「rich notification」ですけど、他の何でもいいですよね。

リンク先にGoogleの買い物リストのURLを入れてみました。

「When」は後で入れます。「Then」を先に入れます。

3.フィルタ機能(When)

IfとThenの間にある 「+」アイコンから「Add filer」を選び、以下のコードを追記します。

例は、10時未満または22時以降は「Then」で指定した「rich notification」機能を実行するなよ(skip)という例です。

let currentHour = Meta.currentUserTime.hour();

if ( currentHour < 10 || currentHour >= 22 ) {
  IfNotifications.sendRichNotification.skip()
  }

このとき、「Add filter code」画面の「Actions」という見出し下には、「Then」で稼働させようとしているサービスをskipさせるには、何と書いたらいいかの文らしきものが書かれているので、コピって上の if 文の中に入れ込みました。プログラミングができない自分でもできちゃうから、しんせつぅ〜!

スクリーンショット 2021-06-13 23.29.03

(あっ、甲陽園店はちなみに9時30分開店だわ。分は指定できないのかしら。)

今まで、時間&場所の通知にはSONYのMESH使ってきたんですけど、(a)MESH持ち歩いたり、(b)MESH電池切れてたり(怒)、(c)さもなくばラズパイ運用必須とか求められたんで、めんど〜だったんです。もう、この用途ではMESHいらなくね?

IFTTT Pro、今は新規申し込み幾らなんやと調べたら、月額550円なんですね。えげつないワ〜 (いえ、IFTTTさん、いいサービスですよ。)

時分 & 場所 のリマインダー (2021-07-02追記)

親切な方が、時分まで指定できる方法を教えてくれました。ありがと〜、Birdie0!(日本語通じないけど。)

(1)9:30〜22:00 までだけ通知を送り、22:00〜翌9:30までは通知しない場合

// 当日から翌日まで通知を送らない時間を設ける
const condition: boolean = Meta.currentUserTime.isBetween(
 moment(Meta.currentUserTime).startOf('day').hour(9).minutes(30),
 moment(Meta.currentUserTime).startOf('day').hour(22).minutes(0)
 );

// 22:00 - 9:30 は通知しない {}内は適宜書きかえ
if (!condition) { IfNotifications.sendRichNotification.skip(); }

(2)7:30〜18:00までだけ通知せず、18:00〜翌7:30までは通知する場合

// 一日内で通知を送らない時間を設ける
const condition: boolean = Meta.currentUserTime.isBetween(
 moment(Meta.currentUserTime).startOf('day').hour(7).minutes(30),
 moment(Meta.currentUserTime).startOf('day').hour(18).minutes(0)
);

// 7:30 - 18:00 は通知しない {}内は適宜書きかえ
if (condition) { IfNotifications.sendRichNotification.skip(); }

すごい便利。

いいなと思ったら応援しよう!