From cc70a0c1a054d82562ace99b530654ef2208537a Mon Sep 17 00:00:00 2001 From: jwansek Date: Sat, 20 Jun 2026 21:28:58 +0100 Subject: Changed some shitt --- powerButtons.py | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) (limited to 'powerButtons.py') diff --git a/powerButtons.py b/powerButtons.py index 83c0c9d..62eb85e 100644 --- a/powerButtons.py +++ b/powerButtons.py @@ -48,7 +48,7 @@ class App(tk.Tk): print("moshi moshi") - self.title("Power Buttons v3.0") + self.title("Power Buttons v3.1") self.protocol("WM_DELETE_WINDOW", self._on_closing) if platform.system() == "Windows": self.iconbitmap(os.path.join(os.path.dirname(__file__), "Assets", "icon.ico")) @@ -137,6 +137,9 @@ class App(tk.Tk): self.device_widgets[friendlyname].update() for profile, ports in self.omada_cache.items(): + if ports == {}: + continue + self.devices[profile] = { "power": sum([v["power"] for v in ports.values()]), "current": sum([v["current"] for v in ports.values()]), @@ -283,13 +286,17 @@ class DeviceButtonWidget(tk.Frame): qos = 1 ) elif self.method == "Omada SNMP": - self.omada_client = Omada(self.parent.config_path) - self.omada_client.login() - profileId = self.omada_client.getProfileId(self.devicename) - settings = self.omada_client.getProfileSettings(profileId) + omada_client = Omada(self.parent.config_path) + omada_client.login() + profileId = omada_client.getProfileId(self.devicename) + settings = omada_client.getProfileSettings(profileId) + if settings is None: + msgbox.showerror("Error", "HTTP GET request to the API returned null. TODO: Fix this!") + return settings['poe'] = payload - self.omada_client.setProfileSettings(profileId, settings) - self.omada_client.logout() + omada_client.setProfileSettings(profileId, settings) + omada_client.logout() + del omada_client msgbox.showinfo("Power Set", "Set '%s' device '%s' to '%s'" % (self.method, self.devicename, set_to)) @@ -303,10 +310,12 @@ class DeviceButtonWidget(tk.Frame): t = "" device_info = self.parent.devices[self.devicename] - if device_info["on"]: + if device_info["on"] is None: + self.btn_img.configure(image = self.parent.img_yellow) + elif device_info["on"]: self.btn_img.configure(image = self.parent.img_green) elif device_info["on"] == False: - self.btn_img.configure(image = self.parent.img_red) + self.btn_img.configure(image = self.parent.img_red) if device_info["power"] is not None: t += "%iW " % device_info["power"] -- cgit v1.2.3