import MQTT as mqtt_custom
import paho.mqtt.client as mqtt_standard
import datetime
import time
import OctopusEnergy
import GetPeriodValues
import json
import GetStats

topiclist = [    
    '00:00', 
    '00:30', 
    '01:00', 
    '01:30', 
    '02:00', 
    '02:30', 
    '03:00', 
    '03:30', 
    '04:00', 
    '04:30', 
    '05:00', 
    '05:30', 
    '06:00', 
    '06:30', 
    '07:00', 
    '07:30', 
    '08:00', 
    '08:30', 
    '09:00', 
    '09:30', 
    '10:00', 
    '10:30', 
    '11:00', 
    '11:30', 
    '12:00', 
    '12:30', 
    '13:00', 
    '13:30', 
    '14:00', 
    '14:30', 
    '15:00', 
    '15:30', 
    '16:00', 
    '16:30', 
    '17:00', 
    '17:30', 
    '18:00', 
    '18:30', 
    '19:00', 
    '19:30', 
    '20:00', 
    '20:30', 
    '21:00', 
    '21:30', 
    '22:00', 
    '22:30', 
    '23:00', 
    '23:30',   
    ]

def process():
    today = str(datetime.datetime.date(datetime.datetime.today()))
    periodJSON = json.dumps(OctopusEnergy.ReturnEnergyDataStr(today, 'tariff'))
    confirm, periodTariffs = GetPeriodValues.GetArray(periodJSON)
    mqttPacket = []
    for x in range(48):
        mqttPacket.append({
        'topic': 'OctopusTariff/'+topiclist[48 - x - 1],
        'data': periodTariffs[x]
        })
    jsonPkt = json.dumps(mqttPacket)
    mqtt_custom.DailyUpdate(jsonPkt)
    avg = GetStats.calcAvg(periodTariffs)
    avgPacket = []
    avgPacket.append({
        'topic': 'OctopusTariff/DailyAvg',
        'data': str(avg)
    })
    jsonPkt = json.dumps(avgPacket)
    mqtt_custom.DailyUpdate(jsonPkt)

process()