Dashboard 2:Switchdaten ergänzt

This commit is contained in:
hubobel 2026-06-02 16:31:22 +02:00
parent 0f8cf14af8
commit 43976aa667

195
down.py
View file

@ -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