import requests
import json
import pandas as pd
import numpy as np
import serial
import time

response = requests.get("https://api.darksky.net/forecast/Insert_API_KEY/Insert_latitude,Insert_longitude")

time.sleep(5)

print(response.status_code)

data = response.json()

print(type(data))

print(response.headers)

dframe = pd.DataFrame(data['hourly']['data'])

list(dframe.columns.values)

df = dframe[['precipProbability','time',]]

day = df.loc['0':'23']

print(day)

ColourCode = []

for row in day['precipProbability']:
    if row > 0.99:
        ColourCode.append('R250G000B000')
    elif row > 0.95:
        ColourCode.append('R250G000B050')
    elif row > 0.90:
        ColourCode.append('R250G090B100')
    elif row > 0.85:
        ColourCode.append('R250G000B150')
    elif row > 0.80:
        ColourCode.append('R250G000B200')
    elif row > 0.75:
        ColourCode.append('R250G000B250')
    elif row > 0.70:
        ColourCode.append('R200G000B250')
    elif row > 0.65:
        ColourCode.append('R150G000B250')
    elif row > 0.60:
        ColourCode.append('R100G000B250')
    elif row > 0.55:
        ColourCode.append('R050G000B250')
    elif row > 0.50:
        ColourCode.append('R000G000B250')
    elif row > 0.45:
        ColourCode.append('R000G050B250')
    elif row > 0.40:
        ColourCode.append('R000G100B250')
    elif row > 0.35:
        ColourCode.append('R000G150B250')
    elif row > 0.30:
        ColourCode.append('R000G200B250')
    elif row > 0.25:
        ColourCode.append('R000G250B250')
    elif row > 0.20:
        ColourCode.append('R000G250B200')
    elif row > 0.15:
        ColourCode.append('R000G250B150')
    elif row > 0.10:
        ColourCode.append('R000G250B100')
    elif row > 0.05:
        ColourCode.append('R000G250B050')
    else:
        ColourCode.append('R000G250B000')
        
day['ColourCode'] = ColourCode

LED = ['P0','P1','P2','P3','P4','P5','P6','P7','P8','P9','P10','P11','P12','P13','P14','P15','P16','P17','P18','P19','P20','P21','P22','P23',]

day['LEDNum'] = LED

print (day)

day["Code"] = day["ColourCode"].map(str) + day["LEDNum"].map(str)

var = ' '.join(day['Code'])

print (var)

str1 = 'R000G000B000P24'

str2 = var

SerailRead = str2 + str1

ArduinoUnoSerial = serial.Serial('/dev/serial/by-id/usb-Arduino__www.arduino.cc__0043_953313030343513132A1-if00',9600)

time.sleep(2)

ArduinoUnoSerial.write(SerailRead.encode())
