運を味方につけたい！！大安や仏滅をLINE Botで知る（Node-REDで作りました）

#大安や仏滅って気になりませんか？
私はとても気になります。
大安は何となくイイことがありそうですし、
仏滅はなんかイヤな感じがします。

他にも
友引とか先勝、先負などがありますが、
この六曜はなんと
***諸葛孔明が発明したという説もあるそうです！***

1日の中でイヤなことが続くと
「今日、仏滅だったっけ。」と確認します。
結構な確率で仏滅です。
仏滅の日は大人しくするようにしています。
この六曜、探すときに限って無いんです。

それなら予め知っておけばイイじゃん！

と思って、習いたてのNode-REDを使って
六曜お知らせLINEBotを作ってみました！

「LINEで通知してくれれば、
その日を賢く過ごせるのではないか？」
との思い付きだけで、、、。
#超初心者の私でも無料で作れました！
今回はコレで作りました。
・[Node-RED](https://elements.heroku.com/buttons/joeartsea/node-red-heroku)
・[LINE for Business](https://www.linebiz.com/jp/)
・APIはこちら↓

https://kijtra.com/article/date-info-api-v1/

#作ってみた①通知機能

フロー図はこんな感じです。
ノードを並べて作るのがブロック遊びみたいでとても楽しいです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1811885/7ab897d6-b36f-fd82-ae38-d20214e8241e.png)



繰り返し設定を使用して毎朝7:15に通知してくれるようにセットします。
（時間設定は世界標準時なので時差を考慮して22:15にセット）
![inject.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1811885/07c222f8-55ea-4707-36f8-2fe486e2ff02.png)

その日の六曜とメッセージを通知します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1811885/a8db9dcc-e50f-6c35-a2b5-aa0a0abe2991.png)

こんな感じで通知されます！
実際のLINE画面↓
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1811885/af23fcdb-becd-335d-da3a-ba06fe61945e.png)

これが毎日、六曜通知が　~~届きます~~　届くはずでした、、、。
#Herokuの睡魔と戦う！（無料の限界に挑む）
繰り返し設定をしたはずが届かない。
テストでは自動でうまくいってたのに。

調べたら、
なんとHerokuさん、30分でスリープしてしまうことが判明。
常時稼働は有償対応だそうです。

https://jp.heroku.com/pricing

方法を探していたら
15分に1回たたき起こす方法を紹介している記事を見つけました。

https://qiita.com/Kakimoty_Field/items/1383c5c3352e5fa8d6af

簡単な設定でしたのでこれでOKです！
#作ってみた②応答機能（せっかくなので）
せっかくなので応答機能も作ってみました。
検索内容はこんな感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1811885/61e53e95-0b2a-0974-9305-04d91735f6a5.png)

フロー図はこんな感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1811885/4b317341-f593-7cf5-d32a-5d5d032ea829.png)

日付の仕込みに苦労しました。
（^[0-9]{4}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])$　は教えて頂きました）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1811885/f8390ab3-0675-ac3c-75fe-244418a7a156.png)

#応答結果紹介
選択肢に応じてメッセージを返してくれます。
実際のLINE画面

1と入れると、六曜の紹介を返します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1811885/a3563957-903b-4c32-d80a-535ee93a2c49.png)
2と入れると、六曜の紹介を返します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1811885/f24bc4b3-2029-2834-3a25-dbb92c4abac4.png)


日付（yyyy㎜dd）を入れると、その日の六曜を返します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1811885/ba68f4f3-8c4d-6fd4-f1eb-eacfa637c972.png)


**ちなみに**
Herokuさんに休んで頂いた時のことも考えて
"今日"の応答機能を追加しました。
作ってみった①のフローをコピーして結合します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1811885/44834519-91ee-9435-3bfd-0c56e4994580.png)


これで送られてこなくても大丈夫！
実際のLINE画面↓
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1811885/d03c80c3-5477-1fad-1ced-985b60dce62c.png)

この"今日"に対する応答機能。気に入っています。
こんどは"明日"といれると、翌日の結果が返ってくる機能を追加中です！


**超初心者でもここまで作れたことに感動しています**

#次は満月パワーを得る！？

今回、使用したAPIは六曜の他にも様々な情報を返してくれています。
今後は満月のお知らせ機能を追加して満月パワーを得たいと思います。
↓実は様々な情報を送ってくれます。

```ruby:json.rb
msg.payload : Object
object
_now: object
century: 21
date: "2021-08-01"
date_ja: "2021年8月1日(日)"
day: 1
error: null
eto: "丑"
eto_kana: "うし"
gengo: "平成"
gengo_full: "平成33年"
holiday: null
julian: 2459427.5
month: 8
month_en: "august"
month_end: 31
month_ja: "葉月"
moon: 21
moon_en: "Half Moon"
moon_ja: "下弦"
old_date: "2021-06-23"
old_day: 23
old_leap: false
old_month: 6
old_year: 2021
rokuyo: "仏滅"
season_en: "summer"
season_ja: "夏"
sunrise: "2021-08-01 04:49:30"
sunset: "2021-08-01 18:45:43"
timezone: "JST"
week: 0
week_en: "sunday"
week_ja: "日"
week_number: 1
week_number_of_year: 31
year: 2021
year_ja: 33
```



最後まで読んで頂き、誠にありがとうございました。
今後とも色々と作ってみますのでよろしくお願いします。