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


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

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

wang.wenrong's avatar
wang.wenrong committed
29 30 31 32 33 34 35 36 37 38 39 40 41 42

def refrigAnalysis(statesrefrig="", statesrefrig_off="", timerefrig="",
                   timerefrig_off="", eachdata_pow="", eachdata_cur="",
                   timer=""):
    timerefrig_chang = [each.split(" ")[1][:-3].split(":") for each in
                        timerefrig]
    timerefrig_hour = [each[0] for each in timerefrig_chang]
    timerefrig_minute = [each[1] for each in timerefrig_chang]
    timerefrig_off_chang = [each.split(" ")[1][:-3].split(":") for each in
                            timerefrig_off]
    timerefrig_off_hour = [each[0] for each in timerefrig_off_chang]
    timerefrig_off_minute = [each[1] for each in timerefrig_off_chang]
    refrigRunStages = []
    if int(timerefrig_off_hour[-1]) >= 22 and int(timerefrig_off_hour[0]) <= 2:
lcn's avatar
lcn committed
43 44 45 46 47
        refrigRunStages.append(timerefrig[0])
        refrigRunStages.append(timerefrig_off[-1])
    else:
        refrigRunStages.append(timerefrig[0])

wang.wenrong's avatar
wang.wenrong committed
48
        for each_off in range(1, len(timerefrig_off)):
lcn's avatar
lcn committed
49
            # if each_off==len(timerefrig_off)-1:
wang.wenrong's avatar
wang.wenrong committed
50
            print("timerefrig_off_hour", timerefrig_off_hour)
lcn's avatar
lcn committed
51

wang.wenrong's avatar
wang.wenrong committed
52 53 54 55 56 57
            if len(timerefrig_off_hour) >= 3 and int(
                    timerefrig_off_hour[-1]) - int(
                    timerefrig_off_hour[-2]) <= 2 and int(
                    timerefrig_off_hour[-2]) - int(
                    timerefrig_off_hour[-3]) <= 2 and each_off == len(
                    timerefrig_off_hour) - 1:
lcn's avatar
lcn committed
58
                refrigRunStages.append(timerefrig_off[each_off])
wang.wenrong's avatar
wang.wenrong committed
59 60 61 62
            if len(timerefrig_off_hour) >= 2 and int(
                    timerefrig_off_hour[-1]) - int(
                    timerefrig_off_hour[-2]) <= 2 and each_off == len(
                    timerefrig_off_hour) - 1:
lcn's avatar
lcn committed
63
                refrigRunStages.append(timerefrig_off[each_off])
wang.wenrong's avatar
wang.wenrong committed
64 65 66 67
            if int(timerefrig_off_hour[each_off]) - int(
                    timerefrig_off_hour[each_off - 1]) <= 2 or int(
                    timerefrig_off_hour[each_off]) < 6 or int(
                    timerefrig_off_hour[each_off]) > 21:
lcn's avatar
lcn committed
68 69
                continue
            else:
wang.wenrong's avatar
wang.wenrong committed
70 71 72 73 74
                if each_off < len(timerefrig) - 1:
                    refrigRunStages.append(timerefrig_off[each_off - 1])
                    findStart1 = findStart(timerefrig=timerefrig,
                                           timerefrig_last=timerefrig_off[
                                               each_off - 1], ahead=each_off)
lcn's avatar
lcn committed
75 76 77 78
                    refrigRunStages.append(timerefrig[findStart1])
                else:
                    refrigRunStages.append(timerefrig_off[each_off])

wang.wenrong's avatar
wang.wenrong committed
79
    return refrigRunStages