mirror of
https://github.com/JonasunderscoreJones/PI-server-rack.git
synced 2025-10-23 09:39:18 +02:00
start of v0.2
This commit is contained in:
parent
03ae07d762
commit
9e84f79584
5 changed files with 75 additions and 441 deletions
111
pc/main.py
111
pc/main.py
|
@ -1,105 +1,6 @@
|
|||
VERSION = "0.1.1"
|
||||
|
||||
from ftplib import FTP
|
||||
from io import BytesIO
|
||||
from time import sleep, time
|
||||
|
||||
launch_time = time()
|
||||
|
||||
print("Starting PI-MC-WATCHER v" + VERSION + " for PC and Mac")
|
||||
print("Initializing...")
|
||||
|
||||
# wehther or not to print the stats to the console
|
||||
print_stats = True
|
||||
|
||||
# The credentials for the ftp server. These must be tweaked.
|
||||
hostname = "172.24.1.193"
|
||||
username = "testuser"
|
||||
password = "uwu"
|
||||
|
||||
# defining the name of the file the stats are saved to
|
||||
filename = "output.txt"
|
||||
|
||||
print("Connecting to FTP server...")
|
||||
|
||||
ftp = FTP(hostname, username, password)
|
||||
ftp.encoding = "utf-8"
|
||||
|
||||
print("Connected!")
|
||||
|
||||
start_time = time()
|
||||
|
||||
print("All setup!")
|
||||
|
||||
# permits user to read console logs from above. Can be removed to accelerate start.
|
||||
sleep(3)
|
||||
|
||||
while True:
|
||||
|
||||
with open(filename, "wb") as file:
|
||||
# use FTP's RETR command to download the file
|
||||
ftp.retrbinary(f"RETR {filename}", file.write)
|
||||
|
||||
file = open(filename, 'r')
|
||||
content = file.read()
|
||||
content = content.split(";")
|
||||
# it is possible for the program to fetch the output text file right inbetween when the program on the Master PI cleared it and before it writes the stats.
|
||||
# This sends an error message in the rare case of this occuring.
|
||||
try:
|
||||
fanmode = content[0]
|
||||
slave_fanmode = content[1]
|
||||
fanspeed = content[2]
|
||||
fanspeed2 = content[3]
|
||||
thermal = content[4]
|
||||
slave_thermal = content[5]
|
||||
cpu_usage = content[6]
|
||||
cpu_freq = content[7]
|
||||
cpu_up = content[8]
|
||||
total_ram = content[9]
|
||||
ram_usage = content[10]
|
||||
ram_free = content[11]
|
||||
ram_percent = content[12]
|
||||
swap_percent = content[13]
|
||||
disk_percent = content[14]
|
||||
|
||||
mc_motd = content[15]
|
||||
mc_version = content[16]
|
||||
mc_players_max = content[17]
|
||||
mc_players_on = content[18]
|
||||
mc_version_brand = content[19]
|
||||
mc_plugins = content[20]
|
||||
mc_playerlist = content[21]
|
||||
except:
|
||||
# The error message to display if the above explained happens
|
||||
print("WARNING: Couldn't read the file's data. If this doesn't happen a lot, just ignore this warning.")
|
||||
|
||||
|
||||
if print_stats:
|
||||
print("---------- Uptime: " + str(cpu_up) + " ----------")
|
||||
# loop_time and stop_time won't be available on the first run as they haven't been measured yet. Therefore this fallback is needed.
|
||||
try:
|
||||
print("Loop time:\t" + str(round(loop_time, 2)) + "\ts")
|
||||
print("CMD Uptime:\t" + str(round(stop_time - launch_time, 2)) + "\ts")
|
||||
except:
|
||||
print("Loop time:\t--.--\ts")
|
||||
print("CMD Uptime:\t--.--\ts")
|
||||
print("CPU")
|
||||
print("\tusage:\t" + str(cpu_usage) + "\t%")
|
||||
print("\tfreq:\t" + str(cpu_freq) + "\tMHz")
|
||||
print("\ttemp:\t" + str(thermal) + "\tC")
|
||||
print("RAM")
|
||||
print("\tusage:\t" + str(ram_percent) + "\t%")
|
||||
print("\tswap :\t" + str(swap_percent) + "\t%")
|
||||
print("Disks")
|
||||
print("\tusage:\t" + str(disk_percent) + "\t%")
|
||||
print("FANMODE")
|
||||
print("\tmain:\t" + str(fanmode) + "\t%")
|
||||
print("\tslave:\t" + str(slave_fanmode) + "\t%")
|
||||
print("\tglobal:\t" + str(fanspeed) + "\t%")
|
||||
print("\t2ndary:\t" + str(fanspeed2) + "\t%")
|
||||
|
||||
sleep(2)
|
||||
|
||||
stop_time = time()
|
||||
loop_time = stop_time - start_time
|
||||
start_time = time()
|
||||
# Purpose:
|
||||
# - When Arduino connected:
|
||||
# - Communicate to Arduino over serial (tweak settings and get system monitor)
|
||||
# - When Internet connected:
|
||||
# - Communicate to RPI 4B over Wifi (tweak settings and get system monitor)
|
||||
# - Neat UI with graphs, settings, etc...
|
Loading…
Add table
Add a link
Reference in a new issue