From 43976aa66744687241c079429008cb60ade68a7b Mon Sep 17 00:00:00 2001 From: hubobel Date: Tue, 2 Jun 2026 16:31:22 +0200 Subject: [PATCH] =?UTF-8?q?Dashboard=202:Switchdaten=20erg=C3=A4nzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- down.py | 195 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 176 insertions(+), 19 deletions(-) diff --git a/down.py b/down.py index 8790e57..5d0521d 100644 --- a/down.py +++ b/down.py @@ -167,6 +167,18 @@ from(bucket: "{INFLUX_BUCKET}") return -1 +def get_us24_temp(): + + try: + + return int(get_url_value( + "http://10.0.1.122:8087/getPlainValue/unifi.2.default.devices.f4:92:bf:79:ce:8b.general_temperature" + )) + + except: + + return 0 + # ------------------------------------------------- # Verlauf der letzten Downloads # ------------------------------------------------- @@ -372,6 +384,30 @@ def get_proxmox_load(): return (0, 0, 0) +def get_us24_cpu(): + + try: + + return float(get_url_value( + "http://10.0.1.122:8087/getPlainValue/unifi.2.default.devices.f4:92:bf:79:ce:8b.system-stats.cpu" + )) + + except: + + return 0 + +def get_us24_ram(): + + try: + + return float(get_url_value( + "http://10.0.1.122:8087/getPlainValue/unifi.2.default.devices.f4:92:bf:79:ce:8b.system-stats.mem" + )) + + except: + + return 0 + # ------------------------------------------------- # Speedtest aus InfluxDB lesen # ------------------------------------------------- @@ -732,14 +768,16 @@ def draw_dashboard_1(): def draw_dashboard_2(): - img = Image.new("RGB", (WIDTH, HEIGHT), "black") - - draw = ImageDraw.Draw(img) - stats = get_unifi_stats() + us24_cpu = get_us24_cpu() + us24_ram = get_us24_ram() + us24_temp = get_us24_temp() - # Header wie Dashboard 1 + img = Image.new("RGB", (WIDTH, HEIGHT), "black") + draw = ImageDraw.Draw(img) + + # Header draw.text( (10, 5), @@ -783,30 +821,149 @@ def draw_dashboard_2(): (10, 60, WIDTH - 10, 60), fill="white" ) + + # Temperaturfarbe + + if us24_temp < 50: + temp_color = "lime" + elif us24_temp < 65: + temp_color = "yellow" + else: + temp_color = "red" + + # Titel + + title = "HUBOBEL's NETZWERK" + + bbox = draw.textbbox( + (0, 0), + title, + font=font_title + ) + + title_width = bbox[2] - bbox[0] + draw.text( - (20, 90), - "UNIFI GATEWAY MAX", + ((WIDTH - title_width) // 2, 75), + title, fill="cyan", font=font_title ) - draw.text((20, 145), "LAN CLIENTS", fill="white", font=font_small_bold) - draw.text((220, 145), str(stats["lan"]), fill="lime", font=font_small_bold) + # Uptime - draw.text((20, 175), "WLAN CLIENTS", fill="white", font=font_small_bold) - draw.text((220, 175), str(stats["wlan"]), fill="lime", font=font_small_bold) + uptime_text = format_uptime(stats["uptime"]) - draw.text((20, 205), "CLIENTS GES.", fill="white", font=font_small_bold) - draw.text((220, 205), str(stats["clients"]), fill="lime", font=font_small_bold) + bbox = draw.textbbox( + (0, 0), + uptime_text, + font=font_small_bold + ) - draw.text((20, 235), "UXG CPU", fill="white", font=font_small_bold) - draw.text((220, 235), f"{stats['cpu']:.0f} %", fill="lime", font=font_small_bold) + uptime_width = bbox[2] - bbox[0] - draw.text((20, 265), "UXG RAM", fill="white", font=font_small_bold) - draw.text((220, 265), f"{stats['ram']:.0f} %", fill="lime", font=font_small_bold) + draw.text( + ((WIDTH - uptime_width) // 2, 105), + uptime_text, + fill="orange", + font=font_small_bold + ) - draw.text((20, 295), "UPTIME", fill="white", font=font_small_bold) - draw.text((220, 295), format_uptime(stats["uptime"]), fill="lime", font=font_small_bold) + # Clients + + draw.text( + (20, 140), + "CLIENTS", + fill="white", + font=font_small_bold + ) + + draw.text( + (220, 140), + f"{stats['clients']} ({stats['lan']} / {stats['wlan']})", + fill="lime", + font=font_small_bold + ) + + # UXG CPU + + draw.text( + (20, 175), + "UXG CPU", + fill="white", + font=font_small_bold + ) + + draw.text( + (220, 175), + f"{stats['cpu']:.1f} %", + fill="yellow", + font=font_small_bold + ) + + # UXG RAM + + draw.text( + (20, 205), + "UXG RAM", + fill="white", + font=font_small_bold + ) + + draw.text( + (220, 205), + f"{stats['ram']:.1f} %", + fill="cyan", + font=font_small_bold + ) + + # US24 CPU + + draw.text( + (20, 235), + "US24 CPU", + fill="white", + font=font_small_bold + ) + + draw.text( + (220, 235), + f"{us24_cpu:.1f} %", + fill="yellow", + font=font_small_bold + ) + + # US24 RAM + + draw.text( + (20, 265), + "US24 RAM", + fill="white", + font=font_small_bold + ) + + draw.text( + (220, 265), + f"{us24_ram:.1f} %", + fill="cyan", + font=font_small_bold + ) + + # US24 Temperatur + + draw.text( + (20, 295), + "US24 TEMP", + fill="white", + font=font_small_bold + ) + + draw.text( + (220, 295), + f"{us24_temp} °C", + fill=temp_color, + font=font_small_bold + ) return img