KLWP/KWGTでYahoo!天気のRSSを使って天気情報を表示する方法

|

ホーム画面カスタマイズにおいてKLWPは非常に便利で面白いアプリですが、天気情報については提供元が海外のものばかりです。これだと精度がイマイチで不満という方も多いでしょう。

そこで、今回はYahoo!天気の天気情報をKLWPを使ってホーム画面に表示してみます。これなら国内の天気情報なので精度もそれなりに期待できます。

Yahoo!天気のRSSをKLWPで表示

今回やることを簡単に言うと、「Yahoo!天気の提供するRSSをwg()で取得・表示する」ということです。Yahoo!天気は天気情報をRSSでも提供しています。RSSは地域ごとになっており、以下のページで一覧から探すことができます。

※PC版でのみ閲覧できるようです。

ここから地域を選ぶと、そのRSSの内容を表示できます。

上の画像はFirefoxでの表示で、Chromeなどで見るとコードをそのまま表示するかもしれません。
このRSSでは基本的に「今日を含んだ8日間それぞれの天気」と、そのあとに注意報などが配信されています。まずはこれをKLWPで表示してみましょう。

KLWPでそのまま表示

KLWPで、とりあえずテキストとして表示してみます。コードは以下の通り。
$wg("rss-weather.yahoo.co.jp/rss/days/4020.xml", rss, 0, title)$
$wg("rss-weather.yahoo.co.jp/rss/days/4020.xml", rss, 0, desc)$

赤字の部分、RSSのURLは地域ごとに異なるので、自分にあったものを選んでください。
緑字の部分は「何番目の」という意味なのでこれを変えると日付が変わります。
青字の部分、「title」と「desc」の2つあります。「title」だと日付や地域名、Yahoo!天気・災害の名前も入っています。「desc」だと天気と気温のみです。

ニュースティッカー的な表示であればこのままでもいいですが、もう少し表示にこだわりたい時は「天気名だけ」「最高気温だけ」のように要素に分けて取り出したいですよね。次はそれを実現します。

一部分だけ切り出して表示

以下のコードで「天気名だけ」を表示することができます。
$tc(split, wg("rss-weather.yahoo.co.jp/rss/days/4020.xml", rss, 0, desc), " - ", 0)$

この$tc(split, text, X, n)$というのは、「textの内容をXで区切ったときのn番目を表示する」というものです。上の例でいうとtextの内容はwg(“rss-weather.yahoo.co.jp/rss/days/4020.xml”, rss, 0, desc)になるわけですが、これはRSSの内容を表示するものなので実際は「雨 – 15℃/13℃」といった表示になります。ここは「天気名 – 最高気温/最低気温」という書式になっています。これを「 – 」を区切り文字として0番目、というのが「雨」になります。最後の数字を1に変えると最高/最低気温の「15℃/13℃」を表示できます。

さらにこれを入れ子にして
$tc(split, tc(split, wg("rss-weather.yahoo.co.jp/rss/days/4020.xml", rss, 0, desc), " - ", 1), "/", 0)$
…とすれば、最高気温のみを取り出すことができます。最後の数字を1に変えれば最低気温です。

とりあえずこれで「天気名」「最高気温」「最低気温」はそれぞれ取り出すことができるようになりました。地域名や日付も取り出せないことはないかもしれませんが、そこはRSSではなく普通に日付などの書式で入力したほうが早いでしょう。

アイコンも同じ要領で

天気名が表示できるので、それに合わせた画像を用意すれば、天気アイコンも簡単に表示できます。

KLWPの「画像」の指定でファイルをパスから直接指定すればOKです。ここのファイル名は日本語そのままで大丈夫なので、Yahoo!天気で表示される天気名そのままの画像を用意すれば簡単です。

完成

Yahoo!天気の場合は「天気名」「最高気温」「最低気温」くらいしか表示できませんが、これだけでも大抵はなんとかなるでしょう。気温の数字だけを表示したい時は「℃」を区切り文字にすれば取得できると思います。tc()は重ねがけすることでけっこう応用がききます。

RSS配信しているそのほかの天気情報

天気情報のRSS表示というのは、昔はそれなりにあったようですが、最近はどんどん姿を消しています。現在ほかに使えそうなものはWeather Hacks(livedoor天気情報)くらいでしょうか。ウェザーマップの「ひとくち予報 in Feed」というものもあったのですが、2017年10月をもって終了してしまうようです。

区切り文字の使いやすさから見ても、Yahoo!天気を使うのがいいと思います。

まとめ

KLWPの天気は精度が低いから飾りとして表示しているだけ、なんていう人もいたと思いますが、今回の方法を使えばそれなりに使える天気情報を出すことができます。表示できる種類は少ないですが、重要な部分だけこれで表示して、あとはKLWPで直接表示できるものを飾りとして表示してもいいかもですね。いろいろ試してみてください。

KLWPの使い方についてはこちらのページにてまとめています。使い方に困ったときなど、こちらのページも参考にしてください。

Random Posts

永遠の時を生き続けるミクペリアなホーム画面【ホーム画面企画2016】
格安SIM (MVNO) 速度比較 : 2016年12月その2 LINEモバイルちょっとおかしいんじゃない?
格安SIM (MVNO) 速度比較 : 2017年7月その1 UQモバイルとワイモバイルの速度に陰りが…?
クイック設定パネル(Quick Settings)の使い方とカスタマイズ (Adroid 7.0以上向け)
「Androidのホーム画面をカスタマイズする本7」PDF版および書店委託販売のご案内
AQUOS R compact SH-M06のステータスバー周りの表示の実例:いくつかのパターンがあるが微妙
Mpow H6 レビュー:有線も無線もいける連続再生25時間のノイズキャンセリング付ヘッドホン
Xperia Z3 Compactのステータスバーがタッチ不良だったのでドコモショップに行ったら無償修理に
チカチカ点滅するように表示されるおサイフケータイのアイコンを表示しないようにする
格安SIM (MVNO) 速度比較 : 2018年4月その1 サブブランドとそれ以外の差がくっきりと
マグネット式でスマホを簡単充電「dodocool USB Type-C ケーブル」レビュー
超小型LTE対応スマートフォンJelly Proをついに入手!やっぱり小さいのはいいね!
フォントで楽しむ天気予報 (天気ウィジェット):日本語テキスト表示の天気ウィジェット
コレクションケースを使ってショップ風にスマホを収納してみたらいい感じ
FNF Ifive Mini 4S レビュー:1.5万円以下の激安ながらそこそこ使えるAndroidタブレット