heaterAnalysis.py 4.03 KB
Newer Older
lcn's avatar
lcn committed
1 2 3
import time


wang.wenrong's avatar
wang.wenrong committed
4 5 6 7 8 9
def findStart(timeheater="timeheater", timeheater_last="", ahead=0):
    timeelectro_last_stemp = int(
        time.mktime(time.strptime(timeheater_last, "%Y-%m-%d %H:%M:%S")))
    timeelectro_stemp = [
        int(time.mktime(time.strptime(each_time, "%Y-%m-%d %H:%M:%S"))) for
        each_time in timeheater]
lcn's avatar
lcn committed
10 11 12
    if ahead < len(timeheater) - 1:
        time_substruct = [1000000 if timeelectro_stemp[
                                         each_timeelectro_stemp] - timeelectro_last_stemp <= 0 or each_timeelectro_stemp < ahead else
wang.wenrong's avatar
wang.wenrong committed
13 14 15
                          timeelectro_stemp[
                              each_timeelectro_stemp] - timeelectro_last_stemp
                          for each_timeelectro_stemp
lcn's avatar
lcn committed
16 17
                          in range(len(timeelectro_stemp))]
    else:
wang.wenrong's avatar
wang.wenrong committed
18 19 20 21 22 23 24
        time_substruct = [
            1000000 if timeelectro_last_stemp - timeelectro_stemp[
                each_timeelectro_stemp] <= 0 or each_timeelectro_stemp < ahead else timeelectro_last_stemp -
                                                                                    timeelectro_stemp[
                                                                                        each_timeelectro_stemp]
            for
            each_timeelectro_stemp in range(len(timeelectro_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
def heaterAnalysis(statesheater="statesheater", statesheater_off="",
                   timeheater="timeheater",
                   timeheater_off="timeheater_off",
                   eachdata_pow="eachdata_pow", eachdata_cur="eachdata_cur",
lcn's avatar
lcn committed
34 35 36
                   timer="timer"):
    heaterRunStages = []

wang.wenrong's avatar
wang.wenrong committed
37 38
    timeheater_chang = [each.split(" ")[1][:-3].split(":") for each in
                        timeheater]
lcn's avatar
lcn committed
39 40
    timeheater_hour = [each[0] for each in timeheater_chang]
    timeheater_minute = [each[1] for each in timeheater_chang]
wang.wenrong's avatar
wang.wenrong committed
41 42
    timeheater_off_chang = [each.split(" ")[1][:-3].split(":") for each in
                            timeheater_off]
lcn's avatar
lcn committed
43 44 45 46 47 48 49 50 51 52
    timeheater_off_hour = [each[0] for each in timeheater_off_chang]
    timeheater_off_minute = [each[1] for each in timeheater_off_chang]

    flag = 0
    heaterRunStages = []
    if len(timeheater) > 1:
        heaterRunStages.append(timeheater[0])

        for each_off in range(1, len(timeheater_off)):
            # if each_off==len(timeaircond_off)-1:
wang.wenrong's avatar
wang.wenrong committed
53 54
            if int(timeheater_off_hour[-1]) - int(
                    timeheater_off_hour[-2]) > 2 and each_off == len(
lcn's avatar
lcn committed
55 56
                    timeheater_off_hour) - 1:
                if flag == 1:
wang.wenrong's avatar
wang.wenrong committed
57 58 59
                    index = findStart(timeheater=timeheater,
                                      timeheater_last=timeheater_off[each_off],
                                      ahead=each_off)
lcn's avatar
lcn committed
60 61
                    heaterRunStages.append(timeheater[index])
                heaterRunStages.append(timeheater_off[each_off])
wang.wenrong's avatar
wang.wenrong committed
62 63
            elif int(timeheater_off_hour[each_off]) - int(
                    timeheater_off_hour[each_off - 1]) <= 1:
lcn's avatar
lcn committed
64 65 66 67
                continue
            else:
                if each_off < len(timeheater) - 1:
                    heaterRunStages.append(timeheater_off[each_off - 1])
wang.wenrong's avatar
wang.wenrong committed
68 69 70
                    index = findStart(timeheater=timeheater,
                                      timeheater_last=timeheater_off[
                                          each_off - 1],
lcn's avatar
lcn committed
71 72
                                      ahead=each_off)
                    heaterRunStages.append(timeheater[index])
wang.wenrong's avatar
wang.wenrong committed
73 74 75 76
                    if int(timeheater_off_hour[each_off]) - int(
                            timeheater_hour[index]) <= 1 and int(
                            timeheater_off_hour[each_off]) - int(
                        timeheater_off_hour[each_off + 1]) < -1:
lcn's avatar
lcn committed
77 78 79 80 81 82 83 84 85 86 87
                        heaterRunStages.append(timeheater_off[each_off])
                        flag = 1

                else:
                    heaterRunStages.append(timeheater_off[each_off])
                    flag = 1
    else:
        heaterRunStages.append(timeheater[0])
        heaterRunStages.append(timeheater_off[0])

    return heaterRunStages