aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/yr.py
diff options
context:
space:
mode:
authorDennis Eriksen <d@ennis.no>2023-02-01 20:32:11 +0100
committerDennis Eriksen <d@ennis.no>2023-02-01 20:32:11 +0100
commit8d186d39483beff64a1c11f80c6ca5e56dd7bbc5 (patch)
tree2c5a64ace4bd8eabd4d65014c5313bd7edd76191 /scripts/yr.py
parentrun queue in batches (diff)
downloadenergyscripts-8d186d39483beff64a1c11f80c6ca5e56dd7bbc5.tar.gz
moving and renaming/breaking everything
Diffstat (limited to 'scripts/yr.py')
-rw-r--r--scripts/yr.py58
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)