weather.com の代替サービス

Oops
Rainmeter の Skin で OmnimoUI というものを常用しています。
結構適当なコードもあったりして、時々修正が必要になりますが、良いスキンです。

WebのAPIを呼んで色々とゴニョゴニョできるガジェットが好きなのですが、その中でも天気系のガジェットはよく依存サービスの廃止などの影響を受けます。

OmnimoUIの天気も、デフォルトではYahoo weather のAPIを使っていましたが、数年前に終了。代替サービスでwxweatherのAPIを使っていましたが、それも2020年1月15日に終了。

どうも無料の天気APIは提供しているところが少なく(ほぼ壊滅)有償のAPIサービスか無料だけどユーザー登録が必須のサービスで代替を探すしかありません。

日本語
英語
APIがかなりの言語に対応してくれてますんでパラメーターをいじれば簡単に変更できます。
webparserプラグインは便利ですがxmlとかの解析やら正規表現が得意な人向けでJSONのパーサーも探しましたら、これがあったので簡単に実現できました。
プラグインはC#で書けるんですな。
最近ちょうどC#のビルドとかパッケージマネージメントとかをやってたので、構成もコードも理解しやすく、大いに最高になりました。

んで、ソースコード(Raimeterのスキンがコードかどうかはさておき)の公開なんて一度もやったことがなかったのと、私以外にも困っている人の助けになればとコードを公開してみました。
おそらくニッチすぎるので需要はほぼ皆無だとは思いますが。
使い方を含めGitLab側に書いているので、ここには機械翻訳版でご紹介。

なぜGitLabか?って?

GitHubの垢は実名なのと、GitLabが最近好きなので・・・
Qiitaとかに書くのもちょっと違うかな?と

必要条件

使い方

天気API

Dark Sky Forecast Requestを使用します。https://darksky.net/dev/docs#forecast-request
Dark Skyは、無料で1日1000回APIを呼び出すことができます。
Rainmeterで使用する場合は、これで十分です。
このガジェットは30分ごとに1回APIを呼び出すため、合計は1日に約48回です。

都市名API

OpenCageリバースジオコーディングAPIを使用します。https://opencagedata.com/api#reverse-resp
OpenCageは、1日2500回無料でAPIを呼び出すことができます。
Rainmeterで使用する場合は、これで十分です。
このガジェットは24時間に1回APIを呼び出すため、合計は1日に約1回です。
(ただし、スキンが明示的に再ロードされると呼び出されます)

インストールして実行

  1. Rainmeterをインストールして実行する
  2. Omnimo UIをインストールする
  3. e2e8 / Rainmeter-JsonParserをインストールします
    1. リリースページからダウンロード
    2. 解凍する
    3. JsonParser.dll コピーする C:\Program Files\Rainmeter\Plugins
    4. Rainmeterを再起動する必要はありません
  4. ファイルをコピーする
    1. WP7フォルダーをWP7にコピーしますex)%USERPROFILE%\Documents\Rainmeter\Skins\WP7\
  5. Dark Sky APIキーを取得する(必須)
    1. ダークスカイにアクセス(1日あたり1000リクエスト無料)完全な登録と確認
    2. %USERPROFILE%\Documents\Rainmeter\Skins\WP7\TextItems\Weather\location.incテキストエディターで開く
    3. 後に32文字のAPIキーを貼り付けます APIKey=
    4. このファイルを保存
  6. OpenCage APIキーを取得する(必須)
    1. OpenCageにアクセス(1日2500リクエストで無料)完全な登録と確認
    2. %USERPROFILE%\Documents\Rainmeter\Skins\WP7\TextItems\Weather\location.incテキストエディターで開く
    3. 後に32文字のAPIキーを貼り付けます GeoCodeAPIKey=
    4. このファイルを保存
  7. 場所とローカリゼーション情報を調整します(必須)
    1. %USERPROFILE%\Documents\Rainmeter\Skins\WP7\TextItems\Weather\location.incテキストエディタで開きます。
    2. 天気予報を取得する緯度と経度の情報を取得します
    3. さまざまな方法がありますが、たとえばhttps://www.latlong.net/は簡単です
    4. 取得した緯度と経度の情報Latitude=Longtude=それぞれ後に貼り付けます
    5. このファイルを保存
  8. 単位文字列の調整(オプション)
    1. 次の表に従って任意に設定してください
    2. このファイルを保存
  9. 最終的にweather.iniスキンをロードまたは再ロードします

パラメーター

キー 説明 ja-JPお勧め en-USお勧め
緯度 緯度例)999.999 どれか どれか
ロングチュード Longtude ex。)999.999 どれか どれか
ラング APIパラメーターlang じゃ en
単位 APIパラメーターunits si 我ら
単位圧力 あなたと一致 Units hPa mb
単位速度 同上 ミズ km / h
単位温度 同上 °C °F
UnitsVisibility 同上 km km
単位湿度 同上
WeatherAPI Dark Sky API予測URL 変えないで 変えないで
JapaneseSpecialEscapeFromSummary 特別な削除文字

ノート


  • OmnimoUIだLanguageCityCode使用されていません。

リンク集


最近はOminimoUIの開発も停止していてちょっと残念。