From 850c57d8721f7039543e95fc8ab990c468c82311 Mon Sep 17 00:00:00 2001 From: Masoko Date: Sun, 23 Mar 2025 18:30:02 +0200 Subject: [PATCH] use psutil for CPU load (#199) --- requirements.txt | 3 ++- src/rpi-cpu2mqtt.py | 12 ++---------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/requirements.txt b/requirements.txt index b8c6fd0..66f6315 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ paho-mqtt==1.6.1 -requests \ No newline at end of file +requests +psutil \ No newline at end of file diff --git a/src/rpi-cpu2mqtt.py b/src/rpi-cpu2mqtt.py index 5840c62..f418583 100644 --- a/src/rpi-cpu2mqtt.py +++ b/src/rpi-cpu2mqtt.py @@ -21,6 +21,7 @@ import uuid import glob import requests import configparser +import psutil #import external sensor lib only if one uses external sensors if config.ext_sensors: # append folder ext_sensor_lib @@ -66,16 +67,7 @@ def check_used_space(path): def check_cpu_load(): - p = subprocess.Popen("uptime", shell=True, stdout=subprocess.PIPE).communicate()[0] - cores = subprocess.Popen("nproc", shell=True, stdout=subprocess.PIPE).communicate()[0] - try: - cpu_load = str(p).split("average:")[1].split(", ")[0].replace(' ', '').replace(',', '.') - cpu_load = float(cpu_load) / int(cores) * 100 - cpu_load = round(float(cpu_load), 1) - except Exception: - cpu_load = None if config.use_availability else 0 - - return cpu_load + return psutil.cpu_percent(interval=1) def check_voltage():