diff options
author | Dennis Eriksen <d@ennis.no> | 2023-02-01 20:32:11 +0100 |
---|---|---|
committer | Dennis Eriksen <d@ennis.no> | 2023-02-01 20:32:11 +0100 |
commit | 8d186d39483beff64a1c11f80c6ca5e56dd7bbc5 (patch) | |
tree | 2c5a64ace4bd8eabd4d65014c5313bd7edd76191 /scripts/yr.py | |
parent | run queue in batches (diff) | |
download | energyscripts-8d186d39483beff64a1c11f80c6ca5e56dd7bbc5.tar.gz |
moving and renaming/breaking everything
Diffstat (limited to 'scripts/yr.py')
-rw-r--r-- | scripts/yr.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/scripts/yr.py b/scripts/yr.py new file mode 100644 index 0000000..9c3ae5e --- /dev/null +++ b/scripts/yr.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python3 +''' Get weatherdata from yr.no ''' + +import os +import sys +import requests + +from common import dbi + +lat = str(os.environ['el_yr_lat']) +lon = str(os.environ['el_yr_lon']) + +pg_db = os.environ['el_pg_db'] +pg_host = os.environ['el_pg_host'] +pg_table = "yr" + +apiUrl = "https://api.met.no/weatherapi/locationforecast/2.0/compact?lat=" + lat + "&lon=" + lon + +### Get the data +try: + url = apiUrl + + # Request headers + hdr = { + 'User-Agent': 'gratis.morell@litepost.no', + 'Cache-Control': 'no-cache', + } + + response = requests.get(url, headers=hdr) + if response.status_code != 200: + print(response.status_code) + print("Oh shit") + response.raise_for_status() + +except Exception as e: + print("oh lol") + sys.exit(e) + +data = response.json() + + +### insert data into database + +values = [] +for item in data["properties"]["timeseries"]: + details = item["data"]["instant"]["details"] + values.append((item["time"],details["air_temperature"],details["air_pressure_at_sea_level"],details["cloud_area_fraction"],details["relative_humidity"],details["wind_from_direction"],details["wind_speed"])) + +sql = "INSERT INTO " + pg_table + """ VALUES(%s,%s,%s,%s,%s,%s,%s) ON CONFLICT (time) DO UPDATE SET + air_temperature=EXCLUDED.air_temperature, + air_pressure_at_sea_level=EXCLUDED.air_pressure_at_sea_level, + cloud_area_fraction=EXCLUDED.cloud_area_fraction, + relative_humidity=EXCLUDED.relative_humidity, + wind_from_direction=EXCLUDED.wind_from_direction, + wind_speed=EXCLUDED.wind_speed, + updated=now()""" + +dbi(sql, values, verbose=True) |