@@ 0,0 1,70 @@
+import requests
+
+# Translation: https://erikflowers.github.io/weather-icons/api-list.html
+ICONS = {
+ 200: {"day": "\uf010", "night": "\uf02d"},
+ 201: {"day": "\uf010", "night": "\uf02d"},
+ 202: {"day": "\uf010", "night": "\uf02d"},
+ 210: {"day": "\uf005", "night": "\uf025"},
+ 211: {"day": "\uf005", "night": "\uf025"},
+ 212: {"day": "\uf005", "night": "\uf025"},
+ 221: {"day": "\uf005", "night": "\uf025"},
+ 230: {"day": "\uf010", "night": "\uf02d"},
+ 231: {"day": "\uf010", "night": "\uf02d"},
+ 232: {"day": "\uf010", "night": "\uf02d"},
+ 300: {"day": "\uf00b", "night": "\uf02b"},
+ 301: {"day": "\uf00b", "night": "\uf02b"},
+ 302: {"day": "\uf008", "night": "\uf028"},
+ 310: {"day": "\uf006", "night": "\uf026"},
+ 311: {"day": "\uf008", "night": "\uf028"},
+ 312: {"day": "\uf008", "night": "\uf028"},
+ 313: {"day": "\uf009", "night": "\uf029"},
+ 314: {"day": "\uf008", "night": "\uf028"},
+ 321: {"day": "\uf00b", "night": "\uf02b"},
+ 500: {"day": "\uf00b", "night": "\uf02b"},
+ 501: {"day": "\uf008", "night": "\uf028"},
+ 502: {"day": "\uf008", "night": "\uf028"},
+ 503: {"day": "\uf008", "night": "\uf028"},
+ 504: {"day": "\uf008", "night": "\uf028"},
+ 511: {"day": "\uf006", "night": "\uf026"},
+ 520: {"day": "\uf009", "night": "\uf029"},
+ 521: {"day": "\uf009", "night": "\uf029"},
+ 522: {"day": "\uf009", "night": "\uf029"},
+ 531: {"day": "\uf00e", "night": "\uf02c"},
+ 600: {"day": "\uf00a", "night": "\uf02a"},
+ 601: {"day": "\uf00a", "night": "\uf02a"},
+ 602: {"day": "\uf0b2", "night": "\uf0b2"},
+ 611: {"day": "\uf006", "night": "\uf026"},
+ 612: {"day": "\uf006", "night": "\uf026"},
+ 613: {"day": "\uf006", "night": "\uf026"},
+ 615: {"day": "\uf006", "night": "\uf026"},
+ 616: {"day": "\uf006", "night": "\uf026"},
+ 620: {"day": "\uf006", "night": "\uf026"},
+ 621: {"day": "\uf00a", "night": "\uf02a"},
+ 622: {"day": "\uf00a", "night": "\uf02a"},
+ 701: {"day": "\uf009", "night": "\uf029"},
+ 711: {"day": "\uf062", "night": "\uf062"},
+ 721: {"day": "\uf0b6", "night": "\uf0b6"},
+ 731: {"day": "\uf063", "night": "\uf063"},
+ 741: {"day": "\uf003", "night": "\uf04a"},
+ 751: {"day": "\uf082", "night": "\uf082"},
+ 761: {"day": "\uf063", "night": "\uf063"},
+ 762: {"day": "\uf063", "night": "\uf063"},
+ 771: {"day": "\uf000", "night": "\uf022"},
+ 781: {"day": "\uf056", "night": "\uf056"},
+ 800: {"day": "\uf00d", "night": "\uf02e"},
+ 801: {"day": "\uf000", "night": "\uf022"},
+ 802: {"day": "\uf000", "night": "\uf022"},
+ 803: {"day": "\uf000", "night": "\uf022"},
+ 804: {"day": "\uf002", "night": "\uf086"},
+}
+
+
+def get_weather(token, lat, lon):
+ r = requests.get(
+ "https://api.openweathermap.org/data/2.5/onecall?lat={}&lon={}&appid={}&eclude=minutely,hourly&units=metric".format(
+ lat, lon, token
+ )
+ )
+ data = r.json()
+ return ICONS[data["current"]["weather"][0]["id"]]["day"]
@@ 1,8 1,15 @@
+import configparser
+
import driver as epd
from modules.timestamp import timestamp_str
+from modules.weather import get_weather
from PIL import Image, ImageDraw, ImageFont
font35 = ImageFont.truetype("Roboto-Bold.ttf", 35)
+w_font30 = ImageFont.truetype("./weathericons-regular-webfont.ttf", 30)
+
+config = configparser.ConfigParser()
+config.read("config.ini")
epd = epd.EPD()
epd.init()
@@ 12,6 19,13 @@ draw = ImageDraw.Draw(Himage)
draw.text((520, 0), timestamp_str(), font=font35, fill=0)
+icon = get_weather(
+ config.get("weather", "apikey"),
+ config.get("weather", "latitude"),
+ config.get("weather", "longitude"),
+)
+draw.text((20, 0), icon, font=w_font30, fill=0)
+
buffer = epd.getbuffer(Himage)
epd.clear()
epd.display(buffer)