貴重な朝の時間のお助けbot
朝の時間って貴重ですよね。朝の時間は夜に比べて貴重だと比較する言葉って多いと思います。夜にゆっくり過ごしすぎて、朝になってからもっと早く寝れば良かったと思う事もあるあるです。
起きてから仕事に行くまでの時間の中で、身支度を済ませて、朝食を食べて、ゴミ出しをして…毎日のルーティンがありますよね。私も日々同じルーティンで動きますが、その中でもっと時間短縮出来るといいなと思うことが、着ていく服装選びです。
朝の情報番組でもお天気コーナーで洗濯や花粉の指数と一緒に服装を提案してくれる時があります。ただ私は固定して見てる情報番組が無いので、何時にどのコーナーがやっているのか把握出来てないし、丁度その時間にテレビの前にいるかも分からない。それで今回、気候に合わせて服装も提案してくれるLINE botを作りました。
また加えて朝の時間に慌てるのは、電車の遅延です。私が住む地域は海が近いので、風が強く、よく電車が遅れたり、止まったりしてしまいます。それで強風の時は、遅延情報を確認してと教えてくれる機能も入れてみました。
作ってみたのがこちら
天気+服装+電車の遅延情報を知らせるLINEbot #protoout pic.twitter.com/i7P2AC6KW1
— M. Aratani (@jglbfGXqJG33561) August 11, 2025
自宅のある都道府県以外も、お出かけで行きそうな地域は情報が出てくるようにしました。
使用ツール
Make
Googleスプレッドシート
LINE Developers
OpenWeatherAPI
X
Makeシナリオ
手順
①天気情報を取り出せるOpenWeatherAPIの取得
世界各地の天気情報(気温、天候、風速等)を見ることが出来るAPIです。
無料で1分間に60回は利用出来るという事でこちらを活用しました。
APIの取得は名前等の基本情報を入れれば簡単に出来ます。
完成シナリオで言うと2つ目のHTTPに天気情報を取り出すAPIを入力しました。

また天気を知りたい地点の緯度、経度を出す必要があるので、そこは完成シナリオでの1つ目のHTTPにOpenWeatherが提供するGeocordingAPIを使用しました。

四角の部分はAPIキーを入力する箇所です。
また{10.city(B)}は日本語の都市名を英語表記へ変換するために使用したGoogleスプレッドシートから抽出した地名が入ります。
②日本語での入力に対応するためのGoogleスプレッドシートの活用
OpenWeatherAPIは基本的に英語対応です。ChatGPTは日本語でもそのまま出来ると回答してくれますが、試しに「横浜」と入れると、Web上で上手くいってもモジュール上では出来なかったりしたので、今回はGoogleスプレッドシートを活用しました。
以下の記事を参考に、日本語と英語の地名リストを作成し、Googleスプレッドシートのモジュールと、1つ目のHTTPモジュールを繋げました。

参考記事:https://qiita.com/hoshieee/items/e499ecbdf2f79c0cd5d6
これでやっとLINEのトーク画面で「横浜」を入れると、OpenWeatherAPIに合わせて「yokohama」に変換し、横浜の緯度・経度を出力、横浜の天気情報を出す事が出来ます。
③天候に合わせての服装提案の出し分け
RouterモジュールのSetupfilterを使って、気温に合わせて服装を提案できるようにします。今回はFeels like(体感気温)が30度以上、25度~29度、24度以下で分岐を作りました。
また風が強い時は、優先して遅延情報のリマインドが出来るように以下のように入力しました。8m/sを強風の基準にしました。
▼30度以上の時の分岐条件

条件はAdd AND ruleで追加出来ます。数値の設定は「以上」なのか「より上」なのかも要注意です。
④電車の遅延状況のお知らせ
風速が大きい時は、電車が遅れているかもしれない旨を返信に入れ、X上で「鉄道 遅延」の検索ページに遷移するURLを付けました。
ここは乗換案内の有料APIを連携する手もあると思いますが、今回は手軽さでXにしました。

次に向けて
作っていく中で、改善したい点が何点か出てきました。
・天気(Rain, Clouds)を日本語に変換する。 ⇒改良済
・天気の地点情報をより精度を高くする。
・今回は夏仕様で作ったので、冬も使えるように分岐を追加。
・電車の遅延情報の連携のグレードアップ
まだ改善の余地はありますが、今回「こんな物があったらいいな」を自分で実際に作ってみることで楽しく出来ました。今後もアイディアを形にしていきたいなと思います。
改良してみた(追記)
上記に挙げていた中で、「・天気(Rain, Clouds)を日本語に変換する。」について早速改良してみました。
手順の②での方法を活用し、英語表記の天気から日本語表記になるGoogleスプレッドシートを作成し、シナリオに追加しました。
以下のように、JSONで取れる英語表記への対応表を作成しました。

シナリオにGoogleスプレッドシートのモジュールを追加し、応答用のLINE Send a Reply Messageでは天気を抽出する箇所を変更します。
▼他はJSONからですが、天気のみGoogleスプレッドシートで選択してます

Googleスプレッドシートは更新する必要が出てきそうですが、手順②の方法を活かしてあまり手間無く改良出来ました!
今後も他の改善事項について、対応出来ないか検討していきます。

