def car(): """ Reads the car variables and gives a list with car, duration, distance_car, start_time, end_time. It must be executed on the day of optimization. """ date = kl.date_now() day_type = kl.day_type() if not dt.car.read_variable('name_car') is 0: if date == manual_date_car(): columns = [ 'duration', 'distance_car', 'start_time_manual', 'stop_time_manual' ] else: columns = [ 'duration', 'distance_car', 'start_time_' + str(day_type), 'stop_time_' + str(day_type) ] list = ['auto'] for column in columns: data = dt.car.read_variable(column) list.append(data) return list else: return None
def desired_inside_temperatures(): """ Reads the desired inside temperatures for a whole day. It depends on the type of the day and if the user wants a manual schedule. """ date = kl.date_now() day_type = kl.day_type() if date == manual_date_temperature(): temperature = dt.temperature.read_variable('manual') return temperature else: temperature = dt.temperature.read_variable(day_type) return temperature
def inside_temperature(): """ Reads the inside temperature. """ time = kl.time_now() date = kl.date_now() day_type = kl.day_type() if date == manual_date_temperature(): temperature = dt.temperature.select_data('manual', 'time', time) return temperature else: temperature = dt.temperature.select_data(day_type, 'time', time) return temperature
def show_entries(): global from_list, to_list, degrees_list from_list = [] to_list = [] degrees_list = [] day_type = Klok.day_type() key_positions = get_temperature_scheme(day_type) for i in range(number_of_entries): i_entry = Entry(temp_schedule_root, width = 5) i_entry.place(x=530, y=170 + i*45) from_list.append(i_entry) if i == 0: i_entry.insert(0,"0") else: if key_positions[i-1] is not None: i_entry.insert(0,str(key_positions[i-1])) for j in range(number_of_entries): j_entry = Entry(temp_schedule_root, width =5) j_entry.place(x=630, y = 170 + j*45) to_list.append(j_entry) if j == number_of_entries-1: j_entry.insert(0, "0") else: if key_positions[j] is not None: j_entry.insert(0,str(key_positions[j])) for k in range(number_of_entries): k_entry = Entry(temp_schedule_root, width=5) k_entry.place(x=730 ,y= 170 + k*45) degrees_list.append(k_entry) if k == 0: k_entry.insert(0,str(temperature_list[0])) else: if key_positions[k-1] is not None: k_entry.insert(0,str(temperature_list[key_positions[k-1]])) plus_button = Button(temp_schedule_root, text = "+", command = lambda: add_entries(plus_button), width = 5, height = 1) plus_button.place(x=800, y=200 + (number_of_entries-1)*45)
def change_temperature(temperature): """ Changes the temperature of the time of execution and the following hours of that day. """ time = kl.time_now() day_type = kl.day_type() dt.temperature.copy_column1_to_column2(day_type, 'manual') start_hour = int(time[0] + time[1]) for hour in range(start_hour, 24): if hour <= 9: key = "time='0" + str(hour) + ":00'" dt.temperature.update_data('manual', temperature, key) else: key = "time='" + str(hour) + ":00'" dt.temperature.update_data('manual', temperature, key)
def temperature_graph(): canvas = Canvas(temp_schedule_root, width=400, height=300, highlightthickness=0) canvas.place(x=20, y=120) day_type = Klok.day_type() if day_type == 'week': temperatures = Gebruikersscherm.temperature_week() elif day_type == 'weekend': temperatures = Gebruikersscherm.temperature_weekend() hours = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ,13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23] f = matplotlib.figure.Figure((4, 4), dpi=100) a = f.add_subplot(111) a.plot(hours, temperatures) canvas2 = matplotlib.backends.backend_tkagg.FigureCanvasTkAgg(f, canvas) canvas2.get_tk_widget().pack(side=TOP, fill=BOTH, expand=TRUE) canvas2._tkcanvas.pack(side=TOP, fill=BOTH, expand=TRUE) a.set_xlabel("Time (h)") a.set_ylabel("Temperature (°C)") a.set_xticks(hours, minor=True)
from tkinter import * import Gebruikersscherm from tkinter import messagebox import matplotlib from matplotlib.figure import Figure from matplotlib.backends.backend_tkagg import ( FigureCanvasTkAgg) import Klok day_type = Klok.day_type() number_of_entries = 3 def get_temperature_scheme(day_type): global temperature_list temperature_list = [] key_positions = [] result = [] if day_type == 'week': temperature_list = Gebruikersscherm.temperature_week() elif day_type == 'weekend': temperature_list = Gebruikersscherm.temperature_weekend() for i in range(1,len(temperature_list)): if temperature_list[i] != temperature_list[i-1]: key_positions.append(i) length = len(key_positions)
def machines(): """ Reads all machines and gives a list of lists with each list the name, duration, usage, start_time, end_time of an individual machine. Takes the machines of the day of execution. """ date_now = kl.date_now() datetime_now = kl.datetime_now() day_type = kl.day_type() machines = dt.machines.read_variable('machine') list_of_machines = [] for machine in machines: start_datetime = dt.machines.select_data('start_button_begin', 'machine', machine) stop_datetime = dt.machines.select_data('start_button_end', 'machine', machine) machine = dt.machines.select_data('machine', 'machine', machine) duration = dt.machines.select_data('duration', 'machine', machine) usage = dt.machines.select_data('usage', 'machine', machine) if dt.machines.select_data('stop_button', 'machine', machine) is '1': start_time = 0 stop_time = 0 elif datetime.datetime( int(start_datetime[0:4]), int( start_datetime[5:7]), int(start_datetime[8:10]), int(start_datetime[11:13])) <= datetime.datetime( int(datetime_now[0:4]), int(datetime_now[5:7]), int(datetime_now[8:10]), int(datetime_now[11:13])) < datetime.datetime( int(stop_datetime[0:4]), int(stop_datetime[5:7]), int(stop_datetime[8:10]), int(stop_datetime[11:13])): if int(start_datetime[8:10]) == int(stop_datetime[8:10]): start_time = dt.machines.select_data('start_button_begin', 'machine', machine)[11:13] stop_time = dt.machines.select_data('start_button_end', 'machine', machine)[11:13] else: if start_datetime[8:10] == datetime_now[8:10]: start_time = dt.machines.select_data( 'start_button_begin', 'machine', machine)[11:13] stop_time = 23 elif stop_datetime[8:10] == datetime_now[8:10]: start_time = 0 stop_time = dt.machines.select_data( 'start_button_end', 'machine', machine)[11:13] else: if date_now == manual_date_machines(): start_time = dt.machines.select_data('start_time_manual', 'machine', machine) stop_time = dt.machines.select_data('stop_time_manual', 'machine', machine) else: start_time = dt.machines.select_data( 'start_time_' + str(day_type), 'machine', machine) stop_time = dt.machines.select_data( 'stop_time_' + str(day_type), 'machine', machine) data_of_machine = [ machine, int(duration), int(usage), int(start_time), int(stop_time) ] list_of_machines.append(data_of_machine) return list_of_machines