aircondAnalysis.py 2.69 KB
Newer Older
lcn's avatar
lcn committed
1 2 3 4
import time


def findStart(timeaircond="timeaircond", timeaircond_last="", ahead=0):
wang.wenrong's avatar
wang.wenrong committed
5 6 7 8 9
    timeaircond_last_stemp = int(
        time.mktime(time.strptime(timeaircond_last, "%Y-%m-%d %H:%M:%S")))
    timeaircond_stemp = [
        int(time.mktime(time.strptime(each_time, "%Y-%m-%d %H:%M:%S"))) for
        each_time in timeaircond]
lcn's avatar
lcn committed
10 11 12
    if ahead < len(timeaircond) - 1:
        time_substruct = [1000000 if timeaircond_stemp[
                                         each_timeaircond_stemp] - timeaircond_last_stemp <= 0 or each_timeaircond_stemp < ahead else
wang.wenrong's avatar
wang.wenrong committed
13 14 15
                          timeaircond_stemp[
                              each_timeaircond_stemp] - timeaircond_last_stemp
                          for each_timeaircond_stemp
lcn's avatar
lcn committed
16 17
                          in range(len(timeaircond_stemp))]
    else:
wang.wenrong's avatar
wang.wenrong committed
18 19 20 21 22 23 24
        time_substruct = [
            1000000 if timeaircond_last_stemp - timeaircond_stemp[
                each_timeaircond_stemp] <= 0 or each_timeaircond_stemp < ahead else timeaircond_last_stemp -
                                                                                    timeaircond_stemp[
                                                                                        each_timeaircond_stemp]
            for
            each_timeaircond_stemp in range(len(timeaircond_stemp))]
lcn's avatar
lcn committed
25 26 27 28 29

    index = time_substruct.index(min(time_substruct))
    return index


wang.wenrong's avatar
wang.wenrong committed
30 31 32 33 34 35
def aircondAnalysis(statesaircond="", statesaircond_off="", timeaircond="",
                    timeaircond_off="", eachdata_pow="", eachdata_cur="",
                    timer=""):
    timeaircond_off_chang = [each.split(" ")[1][:-3].split(":") for each in
                             timeaircond_off]
    timeaircond_off_hour = [each[0] for each in timeaircond_off_chang]
lcn's avatar
lcn committed
36

wang.wenrong's avatar
wang.wenrong committed
37
    aircondRunStages = []
lcn's avatar
lcn committed
38
    aircondRunStages.append(timeaircond[0])
wang.wenrong's avatar
wang.wenrong committed
39 40 41 42
    for each_off in range(1, len(timeaircond_off)):
        if int(timeaircond_off_hour[-1]) - int(
                timeaircond_off_hour[-2]) <= 2 and each_off == len(
            timeaircond_off_hour) - 1:
lcn's avatar
lcn committed
43
            aircondRunStages.append(timeaircond_off[each_off])
wang.wenrong's avatar
wang.wenrong committed
44 45
        if int(timeaircond_off_hour[each_off]) - int(
                timeaircond_off_hour[each_off - 1]) <= 2:
lcn's avatar
lcn committed
46 47
            continue
        else:
wang.wenrong's avatar
wang.wenrong committed
48 49 50 51 52
            if each_off < len(timeaircond) - 1:
                aircondRunStages.append(timeaircond_off[each_off - 1])
                findStart1 = findStart(timeaircond=timeaircond,
                                       timeaircond_last=timeaircond_off[
                                           each_off - 1], ahead=each_off)
lcn's avatar
lcn committed
53 54 55 56
                aircondRunStages.append(timeaircond[findStart1])
            else:
                aircondRunStages.append(timeaircond_off[each_off])

wang.wenrong's avatar
wang.wenrong committed
57
    return aircondRunStages