チュートリアル

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

シャープ、AQUOS R5Gを購入でスマートウォッチ「FOSSIL GEN5」が当たるキャンペーン開始!
navy moonlight【あなたのホーム画面見せてください 2019】
ASUSがZenFone 7らしき新製品発表会を10月21日14時より開催!ティザーページが登場
スマホでも利用可能なHDMIやSDカードなどに対応のUSB Type-Cハブ「AUKEY CB-C69」レビュー
初期費用が無料になるLINEモバイルのエントリーパッケージが29円のタイムセール!
厚さ4mm、約108gの超薄型&軽量モバイルバッテリー「FLAT」がMAKUAKEにて先行予約販売開始!
格安SIM (MVNO) の速度測定:2020年9月 その1 OCNモバイルONE、b-mobileが安定して速くていいね
時計付きのEcho Dot with clockが29%オフで4,980円!Echoシリーズが3月2日までセール価格で安い!
Amazon Music Unlimited、プライム会員限定で4か月99円で聴き放題キャンペーン!
大航海ユートピアのキャラグラが日本向けに差し替え→反対意見多数でリリース直前で選択制に仕様変更
mineoの昼の通信を控えることで特典がもらえる「ゆずるね。」が開始から1ヶ月
LINEモバイル、2月19日より新プランを開始!音声通話SIM 3GBで1,480円~
ドコモ、デバイスレンタルサービス「kikito」を2021年3月にサービス開始!おためしキャンペーンを開始
48MPカメラ搭載 UMIDIGI S3 Pro が公式発表!スペックとプレゼントキャンペーン、Indiegogoで269ドルから
ソースネクスト、自動文字化できるボイスレコーダーとAIボイス筆談機を発表!ほか2020年11月10日のスマホ関係ニュース