import configparser
import datetime
import json
from math import floor, ceil

import os
import requests

from IO.locationData import LocationData

from utils_intern.messageLogger import MessageLogger
from utils_intern.timeSeries import TimeSeries

logger = MessageLogger.get_logger_parent()


# Date  = Date & time (UTC)
# EPV   = PV power output if requested (W)
# Bi    = In-plane beam irradiance (W/m2)
# Di    = Diffuse in-plane irradiance (W/m2) (if radiation components are requested)
# Ri    = Refleted in-plane irradiance (W/m2) (if radiation components are requested)
# As    = Sun elevation (degrees above horizon)
# Tamb  = Air temperature (°C)
# W10   = Wind speed at 10m (m/s)

class RadiationData:
    def __init__(self, date, pv_output):
        self.date = datetime.datetime(date.year, date.month, date.day, date.hour, 0)
        self.pv_output = pv_output

    def default(self):
"""
Created on Okt 19 11:54 2018

@author: nishit
"""
import json

import time
from senml import senml

from IO.RecPub import RecPub

from utils_intern.messageLogger import MessageLogger
logger = MessageLogger.get_logger_parent(parent="connector")


class ParserConnector(RecPub):
    def __init__(self, receiver_params, publisher_workers, config, house,
                 monitor_connector):
        self.pub_prefix = config.get("IO",
                                     "pub.topic.prefix") + str(house) + "/"
        self.key_level = int(config.get(house, "key.level"))
        self.key_separator = config.get(house, "key.separator", fallback="/")
        self.data_type = config.get(house, "data.type", fallback="json")
        self.key_map = dict(config.items("KEYS"))
        self.house = house
        self.base = senml.SenMLMeasurement()
        self.base.name = house + "/"
        super().__init__(receiver_params, publisher_workers, config, house,
                         monitor_connector)