import requests
import time
import os

API_KEY = "06136808315ef78940190e6cec112174"
CITY = "Bridgemere"

# Where to save files (change if needed)
BASE_PATH = "/home/john/html/nbcsc_data/"

def deg_to_compass(deg):
    directions = [
        "N", "NNE", "NE", "ENE",
        "E", "ESE", "SE", "SSE",
        "S", "SSW", "SW", "WSW",
        "W", "WNW", "NW", "NNW"
    ]
    index = int((deg / 22.5) + 0.5) % 16
    return directions[index]

def write_file(filename, value):
    with open(BASE_PATH + filename, "w") as f:
        f.write(str(value))

def get_wind():
    url = "https://api.openweathermap.org/data/2.5/weather"
    params = {
        "q": CITY,
        "appid": API_KEY
    }

    response = requests.get(url, params=params)
    data = response.json()

    if response.status_code != 200:
        print("Error:", data)
        return

    wind = data.get("wind", {})

    wind_speed_ms = wind.get("speed", 0)
    wind_gust_ms = wind.get("gust", None)
    wind_deg = wind.get("deg", 0)
    
    # Convert to mph
    wind_speed_mph = wind_speed_ms * 2.23694
    wind_speed_mph = round(wind_speed_mph, 1)
    wind_dir = deg_to_compass(wind_deg)

    print("windspeed in mph ", wind_speed_mph)

    # Write windspeed (just value)
    write_file("windspeed.text", f"{wind_speed_mph:.1f}")

    # Write gust speed (or 0 if not present)
    if wind_gust_ms is not None:
        wind_gust_mph = wind_gust_ms * 2.23694
        wind_gust_mph = round(wind_gust_mph, 1)
        print("wind gust mph ", wind_gust_mph)
        write_file("averagspeed.txt", f"{wind_gust_mph:.1f}")
    else:
        write_file("gustspeed.txt", "0")

    # Write direction (e.g. "SW 225°")
    write_file("direction.text", f"{wind_dir} {wind_deg}°")
    print("directio ", wind_dir)
    print("Files updated")

if __name__ == "__main__":
    while True:
        get_wind()
        time.sleep(600)  # ~10 minutes (API update interval)
