Files
weather-info/app/tryout/weather.py
2025-10-25 12:01:45 +02:00

50 lines
1.7 KiB
Python

from app.display.neopixel_64x64 import NeoPixel_64x64
from app.web.wlan import Wlan
import app.utils.colors as colors
import app.display.fonts as fonts
def weather_check(display: NeoPixel_64x64, test_mode: bool = False):
wlan = Wlan('WOKWI-Guest', '12345678')
try:
display.clear()
display.write_text('search wlan', 0, 0, color=colors.WHITE)
display.clear_row(0, effect=False)
display.clear()
display.set_font(fonts.font_3x5)
ypos = 0
display.write_text('wlan connected', 0, ypos, color=colors.RAINBOW[0])
ypos += display.font_height + 1
display.write_text('querying', 0, ypos, color=colors.RAINBOW[1])
ypos += display.font_height + 1
display.write_text('weather data', 0, ypos, color=colors.RAINBOW[2])
w_resp = wlan.actual_weather(lang='en', test_mode=test_mode)
display.clear()
ypos = 0
display.write_text(f'{str(w_resp.location.name)}', 0, ypos, color=colors.RAINBOW[0])
ypos += display.font_height + 1
display.set_font(fonts.font_8x8)
display.write_text(f'{str(w_resp.current.temp_c)}°C', 0, ypos, color=colors.RAINBOW[1])
ypos += display.font_height + 1
display.set_font(fonts.font_5x7)
display.write_text(f'{str(w_resp.current.condition.text)}°C', 0, ypos, color=colors.RAINBOW[2])
ypos += display.font_height + 1
display.write_text(f'upd:{str(w_resp.current.last_updated)[-5:]}', 0, ypos, color=colors.RAINBOW[3])
ypos += display.font_height + 1
display.write_text(f'cur:{str(w_resp.location.localtime)[-5:]}', 0, ypos, color=colors.RAINBOW[4])
ypos += 3 * (display.font_height + 1)
display.write_text('done.', 38, ypos, color=colors.WHITE)
except OSError as e:
print(f'Error: connection closed - {e}')
finally:
print('finally done.')