0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[ゴミの日通知] Power Automate,LINE NotifyでPCスリープ状態でも定期通知

Last updated at Posted at 2024-05-05

経緯

pythonやcronを使って定期実行を試みたもののPCがスリープ状態では実行できない。AWSやMicrosoft Azureなどを使うと実現できるが,通知回数によっては料金が発生する。自分の環境で無料でできる方法はないかと探したところこの方法に至った。

こんな人におすすめ

  • PCがスリープ状態でも定期的に通知を送りたい
  • クラウドコンピューティングサービス(AWSやMicrosoft Azureなど)を使うと料金が発生する不安がある
  • 有償のMicrosoft 365が使えるアカウントを持っている
  • LINEアカウントを持っている

実現の流れ

  1. Power Automateで時間指定と変数の初期化
  2. Power Automateで条件分岐
  3. LINE Notifyでアクセストークン発行
  4. Power Automateに通知の部分を付け足す

Power Automateで時間指定と変数の初期化

「フローの実行時間と頻度の決定」「現在の曜日と日数を取得」

  1. [作成][スケジュール済みクラウド フロー]

    スクリーンショット 2024-05-04 224546.jpg

  2. [フロー名] free → [開始日] free → [繰り返し間隔] 1日 → [作成]

    この部分は後から編集可なので,そこまで慎重にならなくても大丈夫です。
    スクリーンショット 2024-05-04 224716.jpg

  3. [Recurrence][パラメーター][Time Zone] (UTC+09:00)大阪,札幌,東京 → [Start line] free,最後のZを消す

    最後のZを消すことでTime Zoneが反映されます。
    スクリーンショット 2024-05-04 224805.jpg

  4. [Recurrenceの下の+][アクションを追加][ランタイム] 組み込み → [Variable][変数を初期化する]

    スクリーンショット 2024-05-04 224936.jpg

  5. [Name] 曜日 → [Type] Integer → [Value] dayOfWeek(addHours(utcNow(),9,'yyyy/MM/dd HH:mm')) → [更新]

    dayOfWeek():曜日を取得します。
    addHours(utcNow(),9,'yyyy/MM/dd HH:mm'):9時間遅らせて日本時間にします。
    スクリーンショット 2024-05-06 151627.png
    スクリーンショット 2024-05-04 225507.png
    上記で取得される曜日の結果は以下の様になります。
    image.png

  6. 上記の4,5と同じ手順で 変数を初期化する の下に 変数を初期化する1 を追加する

    [Name] 日数,[Value] dayOfMonth(addHours(utcNow(),9,'yyyy/MM/dd HH:mm'))にしてください。
    dayOfMonth():日数を取得します。
    addHours(utcNow(),9,'yyyy/MM/dd HH:mm'):9時間遅らせて日本時間にします。
    スクリーンショット 2024-05-04 225638.png
    スクリーンショット 2024-05-04 225655.png
    上記で取得される起動日の結果は 「1〜31」 のいずれかになります。
    週数と日数の関係は以下のようになります。
    image.png

Power Automateで条件分岐

これから,条件分岐によって通知する第〇曜日を決めていきます。今回は以下の条件に基づいて分岐していきます。

image.png

以下最終形。

最終形 2024-05-04 230623.png

  1. [変数を初期化する1の下の+][アクションの追加][Control][条件]

    スクリーンショット 2024-05-04 225736.jpg

  2. [ANDの部分をORに変える][雷のマーク][曜日][is equal to][2][+New item][雷のマーク][曜日] → [is equal to][5]

    これで,毎週火曜日(2)と金曜日(5)に任意の処理を行ってくれます。
    スクリーンショット 2024-05-06 183851.png

  3. 1,2と同様の手順で条件1を追加(以下の図を参考)

    場所:条件→False→条件1
    ただし,ANDのままでいいです。
    毎週月曜日(1)に任意の処理を行ってくれます。
    スクリーンショット 2024-05-04 230221.png

  4. 1,2と同様の手順で条件2を追加(以下の図を参考)

    場所:条件→False→条件1→True→条件2
    ORに変えずに,必ずANDのままにしてください。
    毎月第3月曜日に任意の処理を行ってくれます。(曜日が1 & 日数が15以上21以下)
    スクリーンショット 2024-05-04 230212.png

  5. 1,2と同様の手順で条件3を追加(以下の図を参考)

    場所:条件→False→条件1→False→条件3
    ただし,ANDのままでいいです。
    毎週水曜日(3)に任意の処理を行ってくれます。
    スクリーンショット 2024-05-04 230410.png

  6. 1,2と同様の手順で条件4を追加(以下の図を参考)

    場所:条件→False→条件1→False→条件3→True→条件4
    ORに変えずに,必ずANDのままにしてください。
    毎月第1水曜日に任意の処理を行ってくれます。(曜日が3 & 日数が1以上7以下)
    スクリーンショット 2024-05-04 230446.png

  7. 1,2と同様の手順で条件5を追加(以下の図を参考)

    場所:条件→False→条件1→False→条件3→True→条件4→False→条件5
    ORに変えずに,必ずANDのままにしてください。
    毎月第3水曜日に任意の処理を行ってくれます。(曜日が3 & 日数が15以上21以下)
    スクリーンショット 2024-05-04 230525.png

LINENotifyでアクセストークンの発行

「LINE Notify アクセストークンの発行」と検索すれば詳しいやり方を説明してくれているサイトがたくさん見つかるのと思うので,その手順に従って発行してください。
ーー私が参考にさせて頂いたサイトーー
LINE Notifyのトークンを取得方法・備忘録

Power Automateに通知の部分を付け足す

先ほど作成したPower AutomateにLineへ通知される部分を付け足していきます。

以下最終形。

スクリーンショット 2024-05-05 165423.png

  1. [条件→Trueの下の+][アクションの追加][HTTP]

    スクリーンショット 2024-05-05 170033.jpg

  2. [パラメーター][URL] https://notify-api.line.me/api/notify[Method] POST → [Header] Content-Type:application/x-www-form-urlencoded,Authorization:Bearer LINE Notifyトークン → [Body] message=今日は燃やすごみの日です

    * BearerとLINE Notifyトークンの間は必ず半角スペースを空けてください。
    * 緑のマークの隣を押すと名前の変更ができます。ここでは「毎週火・金曜日」に変更しています。
    * 二つ目の隠れている部分は各ごみの分別方法のurlを添付しています。良かったら,webサイトから「燃やすごみ分別」などと調べてそのurlを添付してみてください。
    スクリーンショット 2024-05-05 165637.png

  3. [毎週火・金曜日を右クリック][アクションのコピー][任意の場所(下記に記入)で+][アクションの貼り付け][毎週火・金曜日を毎週月曜日に通知する内容へと編集]

    場所:条件→False→条件1→true→毎週月曜日
    スクリーンショット 2024-05-05 165723.png

  4. 3と同様の手順で毎月第3回目月曜日を追加

    場所:条件→False→条件1→True→条件2→毎月第3回目月曜日
    スクリーンショット 2024-05-05 165712.png

  5. 3と同様の手順で毎月第1回目水曜日を追加

    場所:条件→False→条件1→False→条件3→True→条件4→True→毎月第1回目水曜日
    スクリーンショット 2024-05-05 165734.png

  6. 3と同様の手順で毎月第3回目水曜日を追加

    場所:条件→False→条件1→False→条件3→True→条件4→False→条件5→True→毎月第3回目水曜日
    スクリーンショット 2024-05-05 165741.png

  7. 3と同様の手順で何もない日を追加

    場所:二箇所あります。
    条件→False→条件1→False→条件3→True→条件4→False→条件5→False→何もない日
    条件→False→条件1→False→条件3→False→何もない日
    スクリーンショット 2024-05-05 165754.png

最後に

以上で終了です。
テストで実行できたら,RecurrenceのStart lineを現在の時間から5分程度に変えて,PCを閉じてみてください。指定した時間に通知が来たら成功です!!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?