Files
fanctrl/system_infor.py
T
2026-07-12 13:49:41 +02:00

57 lines
1.9 KiB
Python
Executable File

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import time
import subprocess
from demo_opts import get_device
from luma.core.render import canvas
def system_infor(device, draw):
# First define some constants to allow easy resizing of shapes
# Move left to right keeping track of the current x position for drawing shapes
x = 2
# grap temperature of CPU
temp =subprocess.getoutput("vcgencmd measure_temp | sed 's/[^0-9.*]//g'")
print(f'temp={temp}')
# grap capacity of disk usage of /
disk_usage = subprocess.getoutput("df -Th / | awk '{print $6}' | tail -n1")
print(f'disk_usage={disk_usage}')
# grap memory infor
free_mem = subprocess.getoutput("free -g |grep Mem | awk '{print $4}'")
print(f'free_mem={free_mem}')
# Network Status
IP = subprocess.getoutput("hostname -I | awk '{print $1}'")
print(f'IP={IP}')
draw.rectangle((x, 0, 128, 32), fill="black")
print('after draw.rectangle()')
# draw.text((device.width - padding - w, top + 4), temp, fill="cyan")
# draw.text((device.width - padding - w, top + 16), 'haha', fill="purple")
draw.text((x, 0),'CPU TEMP:', fill="white")
print('print after CPU TEMP Label')
draw.text((56, 0), temp, fill="white")
print('print after CPU TEMP value')
draw.text((82, 0), '°C', fill="white")
draw.text((x, 8),'IP ADDR:', fill="white")
draw.text((52, 8), IP, fill="white")
draw.text((x, 16),'SD USAGE:', fill="white")
draw.text((58, 16), disk_usage, fill="white")
draw.text((78, 16), 'MEM:', fill="white")
draw.text((100, 16), free_mem, fill="white")
draw.text((104, 16), ' GB', fill="white")
# Draw a rectangle of the same size of screen
draw.rectangle(device.bounding_box, outline="white")
device = get_device()
print(f'device={device}')
while True:
with canvas(device) as draw:
system_infor(device, draw)
print(f'draw={draw}')
time.sleep(5)