家庭菜園の悲しみ…
私は小売業店舗で農産物の担当をしています。
野菜好きが高じて、今年の春から🍅家庭菜園🍆を初めました。
夏野菜は程よく収穫でき、大満足!
次は秋植えだっ!
と先日、意気揚々とニンジンの種を植えました。
$\huge{ッが…}$
$\huge{全然芽が出てこない…}$
どうやら、気温が高すぎた様です。
にんじんは35℃以上だと発芽を全くしなくなるそう。
もし事前に知っていればッ…!!
そんな思いで、都道府県を入力すれば
今の気温が発芽適温か教えてくれるLINE Botを作りました。
$\huge{届け、私の無念!}$
完成品
使用ツール
・Make
・天気予報 API(livedoor 天気互換)
・Googleスプレッドシート
・LINE Developers
最終構造
作成開始
天気予報のAPIを選択
天気情報は私には愛着のある天気予報 API(livedoor 天気互換)を使用しました。
日本語で分かり易い為、安心感があります。
以前、好評を得ていたlivedoor天気がサービス終了となりましたが、
個人の方が互換性APIを作られた様です。
データの関係上、最低気温は取得出来ないそうです。
今回は最高気温(高温)が判断出来れば良い為、問題ありません。
天気情報から選択地点の最高気温を抽出
今回はノーコードでプロトタイプできるMakeを用いて作成していきます。
こちらが天気予報APIです。
https://weather.tsukumijima.net/api/forecast
まず、Watch Events
の LINEモジュールと
Send a Reply Message
の LINEモジュールを繋げ、
その間に天気予報のAPIを入れたHTTPモジュールと
JSON解読用のJSONモジュールを配置します。
地点IDを都道府県名に変更
天気予報APIには地点IDが必要ですが、調べるのが手間です。
なので、Googleスプレッドシートを用いて
都道府県名を入れれば県庁所在地の天気情報が出てくる様にしたいと思います。
都市名の方がより正確な情報を取得出来ますが、地名を打ち込む際に、
その地点のデータの有無が判断しにくい為、今回は割愛します
まずは、都道府県名とその県庁所在地の地点IDのGoogleスプレッドシートを作成します。
これを使って
都道府県名(A)を 地点ID(B)に変換します。
しかし、打ち込みをしていくと、
「県」や「都」などを打ち込むのも邪魔だなと感じたので、
Filter
の Text operators
を Contains(case insensitive)
に設定し、
「静岡」でも「静岡県」でも使える様にしました。
また、誤字や勘違い等の対応として、
Router
で分岐させ、Does not exist
の Filter
を付けて、
存在しない都道府県を入力した場合は
「正しい都道府県名を漢字で入力してください。」と表示するようにしました。
発芽適温
本元の発芽ジャッジ部分ですが、
JSONモジュール と
Send a Reply Message
の LINEモジュールの間に Router
を配置し、
Filter
の Condition
に 4.Forecasts[
].temperature.max.celsius
を入れ、
Numeric operators
に Less than or equal to
を設定し、「29」を入力します。
※幅を持たせる為に、30℃を設定温度としました。
これにより最高気温が29℃以下の時には
以下のメッセージが送られるようになります。
メッセージと共に今日の最高気温も表示する形にしました。
次にSend a Reply Message
の LINEモジュールを Clone
して Router
と繋げ、
Filter
を fallback
にします。
これにより30℃以上の場合は以下のメッセージが送られる様になりました。
最後に
今回は当日の最高気温のみでしたが、本来なら当日30℃以上だったら、
「じゃあ、いつ蒔けるのよっ!」
と思うはずですので、週間天気予報で先の気温を調べ、
「この日なら蒔けそうですよ」
と提案できる形にまで持っていければと考えています。
更に言えば、
$\huge{なぜ🥕ニンジン🥕限定…}$
今回はLINE Botを使用してみましたが、
基本的には入力が一度のみという制約がありました。
(私が調べた限りです。間違えていたらスイマセン)
その為、「どこの」・「何」という複数の選択肢が出来ませんでした。
つまりは複数の入力に対応できる物を使用すれば、
更に実用性の高いものが出来ると思います。
まだまだ改善の余地はありそうです。
こんな機能があったら良いかもという提案ありましたら教えてください。
最後まで読んでいただきありがとうございます!
※2024/10/13㈰追記
上記の改良案に必要な、長期の天気予報情報を取得出来るAPIを調べてみました。
私が調べた限りではこちらのAPIが良いかなと思いました。
アカウントを作成すれば、
無料プランで15日先までの予報データを提供してくれます。
一日に1000レコードまで使用出来るという事で十分かと思います。
こちらとは別のAccuWeather APIというAPIも15日先までの予報データを提供してるので候補に入れてましたが、無料プランだと5日先までの提供のようです。