天気予報チェッカの作成を投稿してから、1年以上経過してしまいました。作成した意図は、翌日の天気予報をもとに深夜の蓄電量を算出して蓄電池に設定することでした。
色々考えましたが、天気の種類だけでは情報量が少なすぎて実現できそうにありません。
もっと直接的に、日射量の予測ができないか調べたところ、Open-Meteoというバッチリのサイトを見つけました。
パラメータとして場所を特定する緯度/経度を指定すると、いろんな気象データの予測値が時系列で得られます。(10回/日まで、API非営利利用が可能)
処理イメージとしては、
- 毎日、深夜0時過ぎに日照量予測値を取得
- 1日分の日照量から深夜電力による蓄電量を算出して、EchonetTimerに設定
情報取得のサンプルコードはこんな感じ。
# 取得コード(気温と日照量)
import requests
import json
import datetime
import os
def write_file(json_data: any) -> None:
date = datetime.datetime.today()
fname = f"{os.path.expanduser('~/forecast')}/{date.strftime('%Y%m%d%H')}.json"
with open(fname, 'w') as f:
json.dump(json_data, f, indent=2)
def get_forecast(latitude: float, longitude: float) -> any:
url = "https://api.open-meteo.com/v1/forecast"
parameter = {
'latitude': latitude,
'longitude': longitude,
'hourly': 'direct_radiation,temperature_2m',
'timezone': 'Asia/Tokyo',
'forecast_days': 1
}
res = requests.get(url, params=parameter)
write_file(res.json())
return res.json()