def get_entries(from_list, to_list, degrees_list, day_type): result = [] for i in range(len(from_list)): for j in range(i+1,len(from_list)): if from_list[i].get() == from_list[j].get() or from_list[i].get() == to_list[i].get(): messagebox.showerror("Error", "Not possible, try again.") return elif from_list[i].get() == '' and to_list[i].get() != '': messagebox.showerror("Error", "Not possible, try again.") return elif from_list[i].get() == '' and degrees_list[i].get() != '': messagebox.showerror("Error", "Not possible, try again.") return if int(from_list[0].get()) != 0 or int(to_list[len(from_list)-1].get()) != 0: messagebox.showerror("Error", "Make sure every hour has a temperature") return for i in range(len(from_list)-1): for j in range(int(to_list[i].get())-int(from_list[i].get())): result.append(degrees_list[i].get()) for i in range(24-int(from_list[len(from_list)-1].get())): result.append(degrees_list[len(from_list)-1].get()) messagebox.showinfo("Confirmed","Succesfully saved") if day_type == 'week': Gebruikersscherm.change_temperature_week(result) if day_type == 'weekend': Gebruikersscherm.change_temperature_weekend(result)
def data_device(device): global usage, on usage = Gebruikersscherm.usage(device) on = Gebruikersscherm.plot_day_output(device) if on is None: messagebox.showinfo("info", "Usage is being calculated") for i in range(len(on)): on[i] = on[i] * usage return on
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)
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) for i in range(number_of_entries-length): key_positions.append(None) return key_positions
def make_graph_total(): global usage, on usage = Gebruikersscherm.total_usage() price = Optimalisatie.electricity_price() fig, ax = plt.subplots() if (hours is None) or (usage is None): messagebox.showinfo("Info", "Usage is being calculated") else: ax.plot(hours, usage) ax.set_xlabel("time (h)") ax.set_ylabel("usage (kWh)") plt.title("Total Usage") plt.plot(price) plt.show() graph()
def make_graph_solar_panels(canvas2): on = Gebruikersscherm.plot_solar_panels() if on is None: none_label = Label(canvas2, text="making graph") none_label.place() else: f = matplotlib.figure.Figure((4, 4), dpi=100) a = f.add_subplot(111) a.plot(hours, on) a.set_xlabel("time (h)") a.set_ylabel("usage (kWh)") canvas = matplotlib.backends.backend_tkagg.FigureCanvasTkAgg( f, canvas2) canvas.get_tk_widget().pack(side=TOP, fill=BOTH, expand=TRUE) canvas._tkcanvas.pack(side=TOP, fill=BOTH, expand=TRUE)
def machines(): """ Returns in a dictionary the vectors of the standard machines used in the mini house. The key is the name of the machine in string form followed by the vector in string form as value. The standard machines in order: 'windmolen', 'auto', 'verwarming', 'batterij', 'koelkast', 'vriezer', 'oven', 'kookplaat', 'wasmachine', 'afwasmachine', 'droogkast', 'boiler', 'TV'. """ i = dict() i['uur'] = kl.datetime_now() date_1 = kl.date_now() date_2 = date_1 + ' 00:00:00' machines = [ 'auto', 'batterij', 'koelkast', 'vriezer', 'oven', 'kookplaat', 'wasmachine', 'afwasmachine', 'droogkast', 'boiler', 'TV' ] existing_machines = dt.machines.read_variable('machine') i['licht_berging'] = dt.lights.select_data('status', 'room', 'berging') i['licht_living'] = dt.lights.select_data('status', 'room', 'living') i['licht_keuken'] = dt.lights.select_data('status', 'room', 'keuken') i['licht_slaapkamer'] = dt.lights.select_data('status', 'room', 'slaapkamer') i['licht_badkamer'] = dt.lights.select_data('status', 'room', 'badkamer') i['verwarming'] = heating_system(date_2) i['windmolen'] = windmill(date_1) for machine in machines: if machine in existing_machines: vector = list_converter( dt.vectors.select_data(machine, 'date', date_2)) i[machine] = vector elif machine is 'batterij': vector = list_converter( dt.vectors.select_data('batterij', 'date', date_2)) i[machine] = vector elif machine is 'auto' and gb.existing_car() is not None: vector = list_converter( dt.vectors.select_data(machine, 'date', date_2)) i[machine] = vector else: vector = 24 * [0] i[machine] = vector return i
def getWeekend(): if getschedule() is None: return else: Gebruikersscherm.change_machines_weekend(getschedule())
def getManual(): if getschedule() is None: return else: Gebruikersscherm.change_machines_manual(getschedule()) Gebruikersscherm.set_manual_date_machines()
def add_weekend(button): if check_entry(button): new_schedule = [[str(new_device_name), int(plus_entryh.get()) + 1, int(plus_entry_untilh.get()) + 1]] Gebruikersscherm.change_machines_weekend(new_schedule)
def add_manual(button): if check_entry(button): new_schedule = [[str(new_device_name), int(plus_entryh.get()) + 1, int(plus_entry_untilh.get()) + 1]] Gebruikersscherm.change_machines_manual(new_schedule) Gebruikersscherm.set_manual_date_machines()