From f4f404f0c9ee740a44f8d5f6d017a0eb72689e00 Mon Sep 17 00:00:00 2001 From: Hristo Jelev Date: Tue, 28 Apr 2020 23:44:35 +0300 Subject: [PATCH] added memory and swap in % --- rpi-cpu2mqtt.py | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/rpi-cpu2mqtt.py b/rpi-cpu2mqtt.py index 769cd09..4234e43 100644 --- a/rpi-cpu2mqtt.py +++ b/rpi-cpu2mqtt.py @@ -31,7 +31,6 @@ def check_cpu_load(): cores = subprocess.Popen("nproc", shell=True, stdout=subprocess.PIPE).communicate()[0] cpu_load = p.split("average:")[1].split(",")[0].replace(' ', '') cpu_load = float(cpu_load)/int(cores)*100 - return cpu_load def check_voltage(): @@ -40,6 +39,18 @@ def check_voltage(): voltage = voltage.strip()[:-1] return voltage +def check_swap(): + full_cmd = "free -t | awk 'NR == 3 {print $3/$2*100}'" + swap = subprocess.Popen(full_cmd, shell=True, stdout=subprocess.PIPE).communicate()[0] + swap = round(float(swap), 1) + return swap + +def check_memory(): + full_cmd = "free -t | awk 'NR == 2 {print $3/$2*100}'" + memory = subprocess.Popen(full_cmd, shell=True, stdout=subprocess.PIPE).communicate()[0] + memory = round(float(memory), 1) + return memory + def check_cpu_temp(): full_cmd = "/opt/vc/bin/vcgencmd measure_temp" p = subprocess.Popen(full_cmd, shell=True, stdout=subprocess.PIPE).communicate()[0] @@ -51,7 +62,7 @@ def check_sys_clock_speed(): return subprocess.Popen(full_cmd, shell=True, stdout=subprocess.PIPE).communicate()[0] -def publish_to_mqtt (cpu_load, cpu_temp, used_space, voltage, sys_clock_speed): +def publish_to_mqtt (cpu_load, cpu_temp, used_space, voltage, sys_clock_speed, swap, memory): #connect to mqtt server client = paho.Client() client.username_pw_set(mqtt_user, mqtt_password) @@ -66,6 +77,10 @@ def publish_to_mqtt (cpu_load, cpu_temp, used_space, voltage, sys_clock_speed): time.sleep(1) client.publish(mqtt_topic_prefix+"/"+hostname+"/voltage", voltage, qos=1) time.sleep(1) + client.publish(mqtt_topic_prefix+"/"+hostname+"/swap", swap, qos=1) + time.sleep(1) + client.publish(mqtt_topic_prefix+"/"+hostname+"/swap", memory, qos=1) + time.sleep(1) client.publish(mqtt_topic_prefix+"/"+hostname+"/sys_clock_speed", sys_clock_speed, qos=1) #disconect from mqtt server client.disconnect() @@ -77,6 +92,8 @@ if __name__ == '__main__': used_space = check_used_space('/') voltage = check_voltage() sys_clock_speed = check_sys_clock_speed() + swap = check_swap() + memory = check_memory() #Publish messages to MQTT - publish_to_mqtt(cpu_load, cpu_temp, used_space, voltage, sys_clock_speed) + publish_to_mqtt(cpu_load, cpu_temp, used_space, voltage, sys_clock_speed, swap, memory)