mirror of
https://gitlab.sectorq.eu/jaydee/python.git
synced 2025-12-14 02:34:53 +01:00
bitwarden
This commit is contained in:
251
mqtt_srv.py
251
mqtt_srv.py
@@ -19,7 +19,7 @@ import random
|
|||||||
import requests
|
import requests
|
||||||
#import psutil
|
#import psutil
|
||||||
stats = {}
|
stats = {}
|
||||||
VERSION = "1.0.23"
|
VERSION = "1.0.33"
|
||||||
curos = platform.system()
|
curos = platform.system()
|
||||||
host = platform.node().lower()
|
host = platform.node().lower()
|
||||||
print(host)
|
print(host)
|
||||||
@@ -27,49 +27,43 @@ if curos == "Windows":
|
|||||||
import winreg
|
import winreg
|
||||||
def uptime():
|
def uptime():
|
||||||
|
|
||||||
try:
|
try:
|
||||||
f = open( "/proc/uptime" )
|
f = open( "/proc/uptime" )
|
||||||
contents = f.read().split()
|
contents = f.read().split()
|
||||||
f.close()
|
f.close()
|
||||||
except:
|
except:
|
||||||
return "Cannot open uptime file: /proc/uptime"
|
return "Cannot open uptime file: /proc/uptime"
|
||||||
|
|
||||||
total_seconds = float(contents[0])
|
total_seconds = float(contents[0])
|
||||||
|
|
||||||
# Helper vars:
|
# Helper vars:
|
||||||
MINUTE = 60
|
MINUTE = 60
|
||||||
HOUR = MINUTE * 60
|
HOUR = MINUTE * 60
|
||||||
DAY = HOUR * 24
|
DAY = HOUR * 24
|
||||||
|
|
||||||
# Get the days, hours, etc:
|
# Get the days, hours, etc:
|
||||||
days = int( total_seconds / DAY )
|
days = int( total_seconds / DAY )
|
||||||
hours = int( ( total_seconds % DAY ) / HOUR )
|
hours = int( ( total_seconds % DAY ) / HOUR )
|
||||||
minutes = int( ( total_seconds % HOUR ) / MINUTE )
|
minutes = int( ( total_seconds % HOUR ) / MINUTE )
|
||||||
seconds = int( total_seconds % MINUTE )
|
seconds = int( total_seconds % MINUTE )
|
||||||
|
|
||||||
# Build up the pretty string (like this: "N days, N hours, N minutes, N seconds")
|
# Build up the pretty string (like this: "N days, N hours, N minutes, N seconds")
|
||||||
string = ""
|
string = ""
|
||||||
# if days > 0:
|
# if days > 0:
|
||||||
# string += str(days) + " " + (days == 1 and "d" or "d" ) + ", "
|
# string += str(days) + " " + (days == 1 and "d" or "d" ) + ", "
|
||||||
# if len(string) > 0 or hours > 0:
|
# if len(string) > 0 or hours > 0:
|
||||||
# string += str(hours) + " " + (hours == 1 and "h" or "h" ) + ", "
|
# string += str(hours) + " " + (hours == 1 and "h" or "h" ) + ", "
|
||||||
# if len(string) > 0 or minutes > 0:
|
# if len(string) > 0 or minutes > 0:
|
||||||
# string += str(minutes) + " " + (minutes == 1 and "m" or "m" ) + ", "
|
# string += str(minutes) + " " + (minutes == 1 and "m" or "m" ) + ", "
|
||||||
if days > 0:
|
if days > 0:
|
||||||
string += str(days) + " " + (days == 1 and "d" or "d" ) + ", "
|
string += str(days) + " " + (days == 1 and "d" or "d" ) + ", "
|
||||||
if len(string) > 0 or hours > 0:
|
if len(string) > 0 or hours > 0:
|
||||||
if hours < 10:
|
string += str(hours) + ":"
|
||||||
hours = "0{}".format(hours)
|
if len(string) > 0 or minutes > 0:
|
||||||
string += str(hours) + ":"
|
string += str(minutes) + ":"
|
||||||
if len(string) > 0 or minutes > 0:
|
string += str(seconds)
|
||||||
if minutes < 10:
|
|
||||||
minutes = "0{}".format(minutes)
|
|
||||||
string += str(minutes) + ":"
|
|
||||||
|
|
||||||
if seconds < 10:
|
return string;
|
||||||
seconds = "0{}".format(seconds)
|
|
||||||
string += str(seconds)
|
|
||||||
return string;
|
|
||||||
|
|
||||||
def writeLog(msg, svr="INFO"):
|
def writeLog(msg, svr="INFO"):
|
||||||
ts = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
ts = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||||
@@ -84,27 +78,32 @@ def writeLog(msg, svr="INFO"):
|
|||||||
def check_router():
|
def check_router():
|
||||||
stats["uptime"] = uptime()
|
stats["uptime"] = uptime()
|
||||||
stats["version"] = VERSION
|
stats["version"] = VERSION
|
||||||
|
stats["status"] = "on"
|
||||||
cmnd = "crontab -l"
|
cmnd = "crontab -l"
|
||||||
status, output = subprocess.getstatusoutput(cmnd)
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
|
|
||||||
if "#Skynet_banmalware#" in output:
|
if "#Skynet_banmalware#" in output:
|
||||||
stats["skynet"] = "on"
|
stats["skynet"] = "On"
|
||||||
else:
|
else:
|
||||||
stats["skynet"] = "off"
|
stats["skynet"] = "Off"
|
||||||
if "#Diversion_CountAds#" in output:
|
if "#Diversion_CountAds#" in output:
|
||||||
stats["diversion"] = "on"
|
stats["diversion"] = "On"
|
||||||
else:
|
else:
|
||||||
stats["diversion"] = "off"
|
stats["diversion"] = "Off"
|
||||||
|
|
||||||
|
|
||||||
cmnd = "nvram get vpn_client1_state"
|
cmnd = "nvram get vpn_client1_state"
|
||||||
status, output = subprocess.getstatusoutput(cmnd)
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
writeLog("Openvpn1 Status : " + str(output))
|
writeLog("VpnClient1 Status : " + str(output))
|
||||||
stats["vpnclient1"] = output
|
stats["vpnclient1"] = "On" if output == "2" else "Off"
|
||||||
cmnd = "nvram get vpn_client2_state"
|
cmnd = "nvram get vpn_client2_state"
|
||||||
status, output = subprocess.getstatusoutput(cmnd)
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
writeLog("Openvpn2 Status : " + str(output))
|
writeLog("VpnClient2 Status : " + str(output))
|
||||||
stats["vpnclient2"] = output
|
stats["vpnclient2"] = "On" if output == "2" else "Off"
|
||||||
|
cmnd = "nvram get vpn_server1_state"
|
||||||
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
|
writeLog("VpnServer1 Status : " + str(output))
|
||||||
|
stats["vpnserver1"] = "On" if output == "2" else "Off"
|
||||||
cmnd = "ncat -z 192.168.77.106 25"
|
cmnd = "ncat -z 192.168.77.106 25"
|
||||||
status, output = subprocess.getstatusoutput(cmnd)
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
if status == 0:
|
if status == 0:
|
||||||
@@ -128,7 +127,6 @@ def check_router():
|
|||||||
serv_d[rul[0]] = {"src_port":rul[1],"dest_ip":rul[2],"dest_port":rul[3],"prot":rul[4]}
|
serv_d[rul[0]] = {"src_port":rul[1],"dest_ip":rul[2],"dest_port":rul[3],"prot":rul[4]}
|
||||||
stats["serv_dest"] = rul[2]
|
stats["serv_dest"] = rul[2]
|
||||||
break
|
break
|
||||||
stats["status"] = "on"
|
|
||||||
#stats["serv_dest"] = json.dumps(serv_d)
|
#stats["serv_dest"] = json.dumps(serv_d)
|
||||||
#stats["serv_dest"] = json.dumps(serv_d)
|
#stats["serv_dest"] = json.dumps(serv_d)
|
||||||
#out = subprocess.Popen(cmnd.split())
|
#out = subprocess.Popen(cmnd.split())
|
||||||
@@ -156,7 +154,6 @@ def check_router():
|
|||||||
# if output == "allow":\
|
# if output == "allow":\
|
||||||
writeLog("Payload : " + str(json.dumps(stats)))
|
writeLog("Payload : " + str(json.dumps(stats)))
|
||||||
'''
|
'''
|
||||||
stats["status"] = "on"
|
|
||||||
client.publish("home-assistant/router/hwstats", json.dumps(stats), qos=0, retain=True)
|
client.publish("home-assistant/router/hwstats", json.dumps(stats), qos=0, retain=True)
|
||||||
#client.publish("sectorq/systems/router/stats", payload=json.dumps(stats), qos=0, retain=True)
|
#client.publish("sectorq/systems/router/stats", payload=json.dumps(stats), qos=0, retain=True)
|
||||||
#else:
|
#else:
|
||||||
@@ -178,10 +175,6 @@ else:
|
|||||||
if int(count) >= 2:
|
if int(count) >= 2:
|
||||||
writeLog("script exist")
|
writeLog("script exist")
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Stops duplicate instance from running
|
# Stops duplicate instance from running
|
||||||
|
|
||||||
writeLog(count)
|
writeLog(count)
|
||||||
@@ -228,7 +221,7 @@ for o, a in opts:
|
|||||||
_THR_VAL = sys.argv[3]
|
_THR_VAL = sys.argv[3]
|
||||||
else:
|
else:
|
||||||
_WIZZARD = True
|
_WIZZARD = True
|
||||||
MQTT_HOST = "192.168.77.106"
|
MQTT_HOST = "mqtt.lan"
|
||||||
MQTT_PORT = 1883
|
MQTT_PORT = 1883
|
||||||
|
|
||||||
if _PUBLISH:
|
if _PUBLISH:
|
||||||
@@ -318,15 +311,19 @@ def get_ip():
|
|||||||
finally:
|
finally:
|
||||||
s.close()
|
s.close()
|
||||||
return IP
|
return IP
|
||||||
|
ex = 0
|
||||||
|
while ex == 0:
|
||||||
IP = get_ip()
|
try:
|
||||||
|
IP = get_ip()
|
||||||
|
ex = 1
|
||||||
|
except:
|
||||||
|
time.sleep(5)
|
||||||
|
|
||||||
|
|
||||||
print("OS : " + curos)
|
print("OS : " + curos)
|
||||||
writeLog("OS : " + curos)
|
writeLog("OS : " + curos)
|
||||||
if curos != "Windows":
|
if curos != "Windows":
|
||||||
import autorandr
|
import autorandr
|
||||||
else:
|
else:
|
||||||
import winreg
|
import winreg
|
||||||
|
|
||||||
@@ -337,6 +334,8 @@ elif host == "SERVER":
|
|||||||
mac = str(get_mac_address("enp2s0"))
|
mac = str(get_mac_address("enp2s0"))
|
||||||
elif host == "ASUS" and curos != "Windows":
|
elif host == "ASUS" and curos != "Windows":
|
||||||
mac = str(get_mac_address("enp3s0f1"))
|
mac = str(get_mac_address("enp3s0f1"))
|
||||||
|
elif host == "morefine" and curos != "Windows":
|
||||||
|
mac = str(get_mac_address("eno1"))
|
||||||
else:
|
else:
|
||||||
mac = str(get_mac_address("Ethernet"))
|
mac = str(get_mac_address("Ethernet"))
|
||||||
|
|
||||||
@@ -369,7 +368,7 @@ def on_connect(client, userdata, flags, rc):
|
|||||||
if host.lower() == "nas":
|
if host.lower() == "nas":
|
||||||
print("Getting VM info")
|
print("Getting VM info")
|
||||||
|
|
||||||
cmnd = "/share/ZFS530_DATA/.qpkg/QKVM/usr/bin/virsh list --all"
|
cmnd = "/share/ZFS532_DATA/.qpkg/QKVM/usr/bin/virsh list --all"
|
||||||
print(cmnd)
|
print(cmnd)
|
||||||
status, output = subprocess.getstatusoutput(cmnd)
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
l = 1
|
l = 1
|
||||||
@@ -387,7 +386,7 @@ def on_connect(client, userdata, flags, rc):
|
|||||||
|
|
||||||
for m in VMS:
|
for m in VMS:
|
||||||
|
|
||||||
cmnd = "/share/ZFS530_DATA/.qpkg/QKVM/usr/bin/virsh domstate " + m
|
cmnd = "/share/ZFS532_DATA/.qpkg/QKVM/usr/bin/virsh domstate " + m
|
||||||
#out = subprocess.Popen(cmnd.split())
|
#out = subprocess.Popen(cmnd.split())
|
||||||
print(cmnd)
|
print(cmnd)
|
||||||
status, output = subprocess.getstatusoutput(cmnd)
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
@@ -476,7 +475,8 @@ def on_message(client, userdata, msg):
|
|||||||
|
|
||||||
if myObj["cmd"] == "nas_cmd":
|
if myObj["cmd"] == "nas_cmd":
|
||||||
print("Executing NAS")
|
print("Executing NAS")
|
||||||
cmnd = "/share/ZFS530_DATA/.qpkg/QKVM/usr/bin/virsh domstate " + str(myObj["target"])
|
#cmnd = "/share/ZFS530_DATA/.qpkg/QKVM/usr/bin/virsh domstate " + str(myObj["target"])
|
||||||
|
cmnd = "/share/ZFS532_DATA/.qpkg/QKVM/usr/bin/virsh domstate " + str(myObj["target"])
|
||||||
print(cmnd)
|
print(cmnd)
|
||||||
status, output = subprocess.getstatusoutput(cmnd)
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
print(output)
|
print(output)
|
||||||
@@ -492,7 +492,7 @@ def on_message(client, userdata, msg):
|
|||||||
cmd_type = "shutdown"
|
cmd_type = "shutdown"
|
||||||
|
|
||||||
|
|
||||||
cmnd = "/share/ZFS530_DATA/.qpkg/QKVM/usr/bin/virsh " + cmd_type + " " + str(myObj["target"])
|
cmnd = "/share/ZFS532_DATA/.qpkg/QKVM/usr/bin/virsh " + cmd_type + " " + str(myObj["target"])
|
||||||
subprocess.Popen(cmnd.split())
|
subprocess.Popen(cmnd.split())
|
||||||
print(cmnd)
|
print(cmnd)
|
||||||
if myObj["command"] == "start":
|
if myObj["command"] == "start":
|
||||||
@@ -794,37 +794,38 @@ def on_message(client, userdata, msg):
|
|||||||
mon3 = "DVI-I-2-1"
|
mon3 = "DVI-I-2-1"
|
||||||
mon4 = "eDP-1-1"
|
mon4 = "eDP-1-1"
|
||||||
'''
|
'''
|
||||||
mon1 = "HDMI-1"
|
right = ["HDMI-A-0", "1920x1080"]
|
||||||
mon2 = "HDMI-2"
|
tleft = ["HDMI-A-0", "1920x1080"]
|
||||||
mon3 = "DVI-I-2-1"
|
tright = ["DVI-I-1-1", "1920x1080"]
|
||||||
mon4 = "eDP-1"
|
left = ["DisplayPort-0", "2560x1440"]
|
||||||
|
mid = ["DisplayPort-1", "3440x1440"]
|
||||||
|
|
||||||
|
#xrandr --output DisplayPort-1 --primary --auto --mode 3440x1440 --output HDMI-A-0 --auto --left-of DVI-I-1-1 --mode 1920x1080 --output DisplayPort-0 --auto --left-of DisplayPort-1 --mode 2560x1440 --output DVI-I-1-1 --above DisplayPort-1 --mode 1920x1080
|
||||||
if myObj["target"] == "mid":
|
if myObj["target"] == "mid":
|
||||||
myCmd = "xrandr --output " + mon2 + " --primary --auto --mode 1920x1080 --output " + mon3 + " --off --output " +mon1 + " --off --output " + mon4 + " --off"
|
myCmd = f"xrandr --output {mid[0]} --primary --auto --mode {mid[1]} --output {left[0]} --off --output {tleft[0]} --off --output {tright[0]} --off"
|
||||||
elif myObj["target"] == "left":
|
elif myObj["target"] == "left":
|
||||||
myCmd = "xrandr --output " + mon1 + " --primary --auto --mode 1920x1080 --output " + mon3 + " --off --output " +mon2 + " --off --output " + mon4 + " --off"
|
myCmd = f"xrandr --output {left[0]} --primary --auto --mode {left[1]} --output {mid[0]} --off --output {tleft[0]} --off --output {tright[0]} --off"
|
||||||
|
|
||||||
elif myObj["target"] == "all":
|
elif myObj["target"] == "all":
|
||||||
myCmd = "xrandr --output " + mon2 + " --primary --auto --mode 1920x1080 --output " + mon3 + " --auto --right-of " + mon2 + " --mode 1920x1080 --output " + mon1 + " --auto --left-of " + mon2 + " --mode 1920x1080 --output " + mon4 + " --auto --right-of " + mon2 + " --mode 1920x1080"
|
myCmd = f"xrandr --output {mid[0]} --primary --auto --mode {mid[1]} --pos 0x0 --output {tleft[0]} --auto --pos -1920x-1080 --mode {tleft[1]} --output {left[0]} --auto --left-of {mid[0]} --mode {left[1]} --output {tright[0]} --above {mid[0]} --mode {tright[1]}"
|
||||||
|
#myCmd = f"xrandr --output {mid[0]} --primary --auto --mode {mid[1]} --output {right[0]} --auto --right-of {mid[0]} --mode {right[1]} --output {left[0]} --auto --left-of {mid[0]} --mode {left[1]}"
|
||||||
elif myObj["target"] == "midleft":
|
elif myObj["target"] == "midleft":
|
||||||
myCmd = "xrandr --output " + mon2 + " --primary --auto --mode 1920x1080 --output " + mon3 + " --off --output " + mon1 + " --auto --left-of " + mon2 + " --mode 1920x1080 --output " + mon4 + " --off"
|
myCmd = f"xrandr --output {mid[0]} --primary --auto --mode {mid[1]} --output {tleft[0]} --off --output {left[0]} --auto --left-of {mid[0]} --mode {left[1]} --output {tright[0]} --off"
|
||||||
elif myObj["target"] == "midtop":
|
elif myObj["target"] == "midtop":
|
||||||
myCmd = "xrandr --output " + mon2 + " --primary --auto --mode 1920x1080 --output " + mon3 + " --auto --right-of " + mon2 + " --mode 1920x1080 --output " + mon1 + " --off --output " + mon4 + " --off"
|
myCmd = f"xrandr --output {mid[0]} --primary --auto --mode {mid[1]} --output {tright[0]} --auto --above {mid[0]} --mode {tright[1]} --output {left[0]} --off --output {tleft[0]} --off"
|
||||||
elif myObj["target"] == "midleftbuild":
|
elif myObj["target"] == "midlefttleft":
|
||||||
myCmd = "xrandr --output " + mon2 + " --primary --auto --mode 1920x1080 --output " + mon3 + " --off --output " + mon1 + " --auto --left-of " + mon2 + " --mode 1920x1080 --output " + mon4 + " --auto --right-of " + mon2 + " --mode 1920x1080"
|
myCmd = f"xrandr --output {mid[0]} --primary --auto --mode {mid[1]} --pos 0x0 --output {tright[0]} --off --output {left[0]} --auto --left-of {mid[0]} --mode {left[1]} --output {tleft[0]} --auto --pos -1920x-1080 --mode {tleft[1]}"
|
||||||
elif myObj["target"] == "midbuild":
|
elif myObj["target"] == "lefttlefttright":
|
||||||
myCmd = "xrandr --output " + mon2 + " --primary --auto --mode 1920x1080 --output " + mon3 + " --off --output " + mon1 + " --off --output " + mon4 + " --auto --right-of " + mon2 + " --mode 1920x1080"
|
myCmd = f"xrandr --output {mid[0]} --off --output {tleft[0]} --auto --pos 640x-1080 --mode {tright[1]} --output {left[0]} --primary --auto --mode {left[1]} --pos 0x0 --output {tright[0]} --right-of {tleft[0]} --mode {tright[1]}"
|
||||||
elif myObj["target"] == "midlefttop":
|
elif myObj["target"] == "lefttleft":
|
||||||
myCmd = "xrandr --output " + mon2 + " --primary --auto --mode 1920x1080 --output " + mon3 + " --auto --right-of " + mon2 + " --mode 1920x1080 --output " + mon1 + " --auto --left-of " + mon2 + " --mode 1920x1080 --output " + mon4 + " --off"
|
myCmd = f"xrandr --output {mid[0]} --off --output {tleft[0]} --auto --pos 640x-1080 --mode {tright[1]} --output {left[0]} --primary --auto --mode {left[1]} --pos 0x0 --output {tright[0]} --off"
|
||||||
elif myObj["target"] == "build":
|
|
||||||
myCmd = "xrandr --output " + mon2 + " --off --output " + mon3 + " --off --output " + mon1 + " --off --output " + mon4 + " --auto --mode 1920x1080"
|
|
||||||
else:
|
else:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
writeLog(myCmd)
|
writeLog(myCmd)
|
||||||
if myCmd != "":
|
if myCmd != "":
|
||||||
print(myCmd)
|
print(myCmd)
|
||||||
writeLog("Executing")
|
writeLog("Executing : {myCmd}")
|
||||||
#subprocess.Popen(myCmd.split())
|
#subprocess.Popen(myCmd.split())
|
||||||
status, output = subprocess.getstatusoutput(myCmd)
|
status, output = subprocess.getstatusoutput(myCmd)
|
||||||
writeLog(output)
|
writeLog(output)
|
||||||
@@ -871,8 +872,11 @@ def on_message(client, userdata, msg):
|
|||||||
else:
|
else:
|
||||||
if host == "nas" or host == "octopi":
|
if host == "nas" or host == "octopi":
|
||||||
subprocess.Popen(["/sbin/poweroff"])
|
subprocess.Popen(["/sbin/poweroff"])
|
||||||
elif host == "openmediavault" or host == "omv":
|
elif host == "openmediavault" or host == "omv" or host == "amd":
|
||||||
subprocess.Popen(["poweroff"])
|
subprocess.Popen(["poweroff"])
|
||||||
|
elif host == "amd" or host == "ryzen":
|
||||||
|
subprocess.Popen(["systemctl suspend"])
|
||||||
|
|
||||||
else:
|
else:
|
||||||
#subprocess.Popen(["/bin/systemctl", "suspend", "-i"])
|
#subprocess.Popen(["/bin/systemctl", "suspend", "-i"])
|
||||||
#subprocess.Popen(["sudo", "pm-suspend"])
|
#subprocess.Popen(["sudo", "pm-suspend"])
|
||||||
@@ -928,19 +932,29 @@ def on_message(client, userdata, msg):
|
|||||||
print("not a json!")
|
print("not a json!")
|
||||||
|
|
||||||
client = mqtt.Client()
|
client = mqtt.Client()
|
||||||
<<<<<<< HEAD
|
payload = '{"status": "off"}'
|
||||||
client.username_pw_set("jaydee", password="jaydee1")
|
|
||||||
client.will_set("home-assistant/" + host + "/hwstats", payload='{"status":"off"}', qos=0, retain=True)
|
|
||||||
|
|
||||||
=======
|
|
||||||
payload = '{"status":"off"}'
|
|
||||||
client.username_pw_set("jaydee", password="jaydee1")
|
client.username_pw_set("jaydee", password="jaydee1")
|
||||||
client.will_set("home-assistant/" + host.lower() + "/hwstats", payload=payload, qos=0, retain=True)
|
client.will_set("home-assistant/" + host.lower() + "/hwstats", payload=payload, qos=0, retain=True)
|
||||||
>>>>>>> f8ca3c609387acf650821dc35de80b826724ee5f
|
|
||||||
client.on_connect = on_connect
|
client.on_connect = on_connect
|
||||||
client.on_message = on_message
|
client.on_message = on_message
|
||||||
writeLog(MQTT_HOST)
|
writeLog(MQTT_HOST)
|
||||||
client.connect(MQTT_HOST, MQTT_PORT, 25)
|
connected = False
|
||||||
|
while not connected:
|
||||||
|
try:
|
||||||
|
client.connect(MQTT_HOST, MQTT_PORT, 25)
|
||||||
|
connected = True
|
||||||
|
except:
|
||||||
|
writeLog("Failed to connect repeating...")
|
||||||
|
time.sleep(10)
|
||||||
|
|
||||||
|
|
||||||
|
# client.publish("sectorq/status", payload="{'action':'connect', 'system':'" + host + "', 'ip': '" + IP + "', 'mac':'" + mac + "', 'ver':'?'}", qos=0, retain=False)
|
||||||
|
|
||||||
|
|
||||||
|
# Blocking call that processes network traffic, dispatches callbacks and
|
||||||
|
# handles reconnecting.
|
||||||
|
# Other loop*() functions are available that give a threaded interface and a
|
||||||
|
# manual interface.
|
||||||
|
|
||||||
def checkIfProcessRunning(processName):
|
def checkIfProcessRunning(processName):
|
||||||
'''
|
'''
|
||||||
@@ -996,6 +1010,7 @@ if curos == "Windows":
|
|||||||
try:
|
try:
|
||||||
key = winreg.OpenKeyEx(path, r"SOFTWARE\\FinalWire\\AIDA64\\SensorValues")
|
key = winreg.OpenKeyEx(path, r"SOFTWARE\\FinalWire\\AIDA64\\SensorValues")
|
||||||
results = {}
|
results = {}
|
||||||
|
results["status"] = "on"
|
||||||
for k in aide_refs:
|
for k in aide_refs:
|
||||||
k2 = "Value." + str(k)
|
k2 = "Value." + str(k)
|
||||||
try:
|
try:
|
||||||
@@ -1004,7 +1019,6 @@ if curos == "Windows":
|
|||||||
results[aide_refs[k]] = value[0]
|
results[aide_refs[k]] = value[0]
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
results["status"] = "on"
|
|
||||||
except:
|
except:
|
||||||
print("aida initializing...")
|
print("aida initializing...")
|
||||||
results = {"status":"init"}
|
results = {"status":"init"}
|
||||||
@@ -1021,6 +1035,7 @@ if curos == "Windows":
|
|||||||
print(swap_data)
|
print(swap_data)
|
||||||
print("MEM : {}".format(mem_data.percent))
|
print("MEM : {}".format(mem_data.percent))
|
||||||
print(psutil.getloadavg())
|
print(psutil.getloadavg())
|
||||||
|
#lodctr /R
|
||||||
try:
|
try:
|
||||||
print(psutil.sensors_temperatures())
|
print(psutil.sensors_temperatures())
|
||||||
except:
|
except:
|
||||||
@@ -1029,15 +1044,12 @@ if curos == "Windows":
|
|||||||
print(psutil.sensors_fans())
|
print(psutil.sensors_fans())
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
<<<<<<< HEAD
|
|
||||||
results = {"status":"on", "version":VERSION,"MB_TEMP":"NA", "MEM_UTIL":str(mem_data.percent), "CPU_TEMP":"NA", "FAN_CPU":"NA", "VMEM_UTIL":swap_data.percent, "CPU_UTIL":cpu_usage, "GPU_TEMP":"NA", "GPU_UTIL":"NA"}
|
|
||||||
=======
|
|
||||||
results = {"status":"on","version":VERSION,"MB_TEMP":"NA", "MEM_UTIL":str(mem_data.percent), "CPU_TEMP":"NA", "FAN_CPU":"NA", "VMEM_UTIL":swap_data.percent, "CPU_UTIL":cpu_usage, "GPU_TEMP":"NA", "GPU_UTIL":"NA"}
|
results = {"status":"on","version":VERSION,"MB_TEMP":"NA", "MEM_UTIL":str(mem_data.percent), "CPU_TEMP":"NA", "FAN_CPU":"NA", "VMEM_UTIL":swap_data.percent, "CPU_UTIL":cpu_usage, "GPU_TEMP":"NA", "GPU_UTIL":"NA"}
|
||||||
>>>>>>> fba8088e24f4b4228930b1a72ca37b712d90c824
|
|
||||||
print(json.dumps(results))
|
print(json.dumps(results))
|
||||||
r = json.dumps(results)
|
r = json.dumps(results)
|
||||||
#client.publish("home-assistant/" + host + "/hwstats", payload='{"TPCHDIO":"' + str(results["TPCHDIO"]) + '", "SMEMUTI":"' + str(results["SMEMUTI"]) + '", "TCPU":"' + str(results["TCPU"]) + '", "TGPU1DIO":"' + str(results["TGPU1DIO"]) + '", "SGPU1BIUTI":"' + str(results["SGPU1BIUTI"]) + '", "FCPU":"' + str(results["FCPU"]) + '", "SVIRTMEMUTI":"' + str(results["SVIRTMEMUTI"]) + '", "SCPUUTI":"' + str(results["SCPUUTI"]) + '"}', qos=0, retain=False)
|
#client.publish("home-assistant/" + host + "/hwstats", payload='{"TPCHDIO":"' + str(results["TPCHDIO"]) + '", "SMEMUTI":"' + str(results["SMEMUTI"]) + '", "TCPU":"' + str(results["TCPU"]) + '", "TGPU1DIO":"' + str(results["TGPU1DIO"]) + '", "SGPU1BIUTI":"' + str(results["SGPU1BIUTI"]) + '", "FCPU":"' + str(results["FCPU"]) + '", "SVIRTMEMUTI":"' + str(results["SVIRTMEMUTI"]) + '", "SCPUUTI":"' + str(results["SCPUUTI"]) + '"}', qos=0, retain=False)
|
||||||
client.publish("home-assistant/" + host + "/hwstats", payload=r, qos=0, retain=False)
|
client.publish("home-assistant/" + host + "/hwstats", payload=r, qos=0, retain=False)
|
||||||
|
client.publish("sectorq/systems/" + host.lower() + "/stat", payload="on", qos=0, retain=True)
|
||||||
#print(json.dumps(stats))
|
#print(json.dumps(stats))
|
||||||
#writeLog(json.dumps(stats))
|
#writeLog(json.dumps(stats))
|
||||||
else:
|
else:
|
||||||
@@ -1046,24 +1058,54 @@ else:
|
|||||||
|
|
||||||
NEXT_CHECK = 0
|
NEXT_CHECK = 0
|
||||||
while True:
|
while True:
|
||||||
print(VERSION)
|
#print(VERSION)
|
||||||
time.sleep(5)
|
time.sleep(5)
|
||||||
try:
|
try:
|
||||||
mtime = os.path.getmtime(sys.argv[0])
|
mtime = os.path.getmtime(sys.argv[0])
|
||||||
except OSError:
|
except OSError:
|
||||||
mtime = 0
|
mtime = 0
|
||||||
print(mtime)
|
#print(mtime)
|
||||||
if NEXT_CHECK < int(time.time()):
|
if NEXT_CHECK < int(time.time()):
|
||||||
NEXT_CHECK = int(time.time()) + 20
|
NEXT_CHECK = int(time.time()) + 20
|
||||||
writeLog("Blalala : Next : " + str(NEXT_CHECK))
|
writeLog("Blalala : Next : " + str(NEXT_CHECK))
|
||||||
|
|
||||||
if host.lower() == "asus":
|
if host.lower() == "asus" or host.lower() == "morefine" or host.lower() == "ryzen" or host.lower() == "amd" or host.lower() == "rack":
|
||||||
|
writeLog("Blalala : AAA")
|
||||||
print(psutil.sensors_temperatures())
|
print(psutil.sensors_temperatures())
|
||||||
#print(psutil.sensors_fans())
|
#print(psutil.sensors_fans())
|
||||||
sences = psutil.sensors_temperatures()
|
sences = psutil.sensors_temperatures()
|
||||||
cpu_data = sences["coretemp"][0]
|
print("SENCES")
|
||||||
mb_data = sences["acpitz"][0]
|
print(sences)
|
||||||
fan_data = psutil.sensors_fans()["asus"][0]
|
print("#"*40)
|
||||||
|
try:
|
||||||
|
cpu_data = sences["coretemp"][0]
|
||||||
|
except:
|
||||||
|
try:
|
||||||
|
cpu_data = sences["k10temp"][0]
|
||||||
|
except:
|
||||||
|
cpu_data = "None"
|
||||||
|
writeLog(cpu_data)
|
||||||
|
print("CPUDATA")
|
||||||
|
print(cpu_data)
|
||||||
|
print("#"*40)
|
||||||
|
print("MBDATA")
|
||||||
|
try:
|
||||||
|
mb_data = sences["acpitz"][0]
|
||||||
|
print(mb_data)
|
||||||
|
print(mb_data.current)
|
||||||
|
mb_data = mb_data.current
|
||||||
|
except:
|
||||||
|
mb_data = 0
|
||||||
|
|
||||||
|
|
||||||
|
print("#"*40)
|
||||||
|
|
||||||
|
|
||||||
|
try:
|
||||||
|
print(psutil.sensors_fans())
|
||||||
|
fan_data = psutil.sensors_fans()["asus"][0].current
|
||||||
|
except:
|
||||||
|
fan_data = "None"
|
||||||
mem_data = psutil.virtual_memory()
|
mem_data = psutil.virtual_memory()
|
||||||
swap_data = psutil.swap_memory()
|
swap_data = psutil.swap_memory()
|
||||||
#cpu_usage = psutil.cpu_percent(interval=1)
|
#cpu_usage = psutil.cpu_percent(interval=1)
|
||||||
@@ -1084,12 +1126,9 @@ else:
|
|||||||
#print(str(jn1["coretemp-isa-0000"]["Package id 0"]["temp1_input"]))
|
#print(str(jn1["coretemp-isa-0000"]["Package id 0"]["temp1_input"]))
|
||||||
#print(str(jn1["asus-isa-0000"]["cpu_fan"]["fan1_input"]))
|
#print(str(jn1["asus-isa-0000"]["cpu_fan"]["fan1_input"]))
|
||||||
#client.publish("sectorq/monitor/" + host.lower(), payload="{\"mb_temp\":0,\"mem_usage\":0,\"cpu_temp\":0,\"cpu_usage\":0,\"gpu_temp\":0,\"gpu_usage\":0}", qos=0, retain=False)
|
#client.publish("sectorq/monitor/" + host.lower(), payload="{\"mb_temp\":0,\"mem_usage\":0,\"cpu_temp\":0,\"cpu_usage\":0,\"gpu_temp\":0,\"gpu_usage\":0}", qos=0, retain=False)
|
||||||
<<<<<<< HEAD
|
writeLog('{"status":"on", "version":"' + VERSION + '","TCPU":"NA", "MB_TEMP":' + str(mb_data) + ', "MEM_UTIL":' + str(mem_data.percent) + ', "CPU_TEMP":' + str(cpu_data.current) + ', "GPU_TEMP":0, "GPU_UTIL":0, "FAN_CPU":"' + str(fan_data) + '", "VMEM_UTIL":' + str(swap_data.percent) + ', "CPU_UTIL":' + str(cpu_usage) + '}')
|
||||||
client.publish("home-assistant/" + host + "/hwstats", payload='{"status":"on","version":"' + VERSION + '","MB_TEMP":' + str(mb_data.current) + ', "MEM_UTIL":' + str(mem_data.percent) + ', "CPU_TEMP":' + str(cpu_data.current) + ', "GPU_TEMP":0, "GPU_UTIL":0, "FAN_CPU":' + str(fan_data.current) + ', "VMEM_UTIL":' + str(swap_data.percent) + ', "CPU_UTIL":' + str(cpu_usage) + '}', qos=0, retain=False)
|
client.publish("home-assistant/" + host + "/hwstats", payload='{"status":"on", "version":"' + VERSION + '","TCPU":"NA", "MB_TEMP":' + str(mb_data) + ', "MEM_UTIL":' + str(mem_data.percent) + ', "CPU_TEMP":' + str(cpu_data.current) + ', "GPU_TEMP":0, "GPU_UTIL":0, "FAN_CPU":"' + str(fan_data) + '", "VMEM_UTIL":' + str(swap_data.percent) + ', "CPU_UTIL":' + str(cpu_usage) + '}', qos=0, retain=False)
|
||||||
=======
|
|
||||||
client.publish("home-assistant/" + host + "/hwstats", payload='{"status":"on", "version":"' + VERSION + '","MB_TEMP":' + str(mb_data.current) + ', "MEM_UTIL":' + str(mem_data.percent) + ', "CPU_TEMP":' + str(cpu_data.current) + ', "GPU_TEMP":0, "GPU_UTIL":0, "FAN_CPU":' + str(fan_data.current) + ', "VMEM_UTIL":' + str(swap_data.percent) + ', "CPU_UTIL":' + str(cpu_usage) + '}', qos=0, retain=False)
|
|
||||||
client.publish("sectorq/systems/" + host.lower() + "/stat", payload="on", qos=0, retain=True)
|
client.publish("sectorq/systems/" + host.lower() + "/stat", payload="on", qos=0, retain=True)
|
||||||
>>>>>>> fba8088e24f4b4228930b1a72ca37b712d90c824
|
|
||||||
elif host.lower() == "openmediavault" or host.lower() == "omv":
|
elif host.lower() == "openmediavault" or host.lower() == "omv":
|
||||||
#print(psutil.sensors_temperatures())
|
#print(psutil.sensors_temperatures())
|
||||||
#print(psutil.sensors_fans())
|
#print(psutil.sensors_fans())
|
||||||
@@ -1130,17 +1169,14 @@ else:
|
|||||||
#print(str(jn1["coretemp-isa-0000"]["Package id 0"]["temp1_input"]))
|
#print(str(jn1["coretemp-isa-0000"]["Package id 0"]["temp1_input"]))
|
||||||
#print(str(jn1["asus-isa-0000"]["cpu_fan"]["fan1_input"]))
|
#print(str(jn1["asus-isa-0000"]["cpu_fan"]["fan1_input"]))
|
||||||
#client.publish("sectorq/monitor/" + host.lower(), payload="{\"mb_temp\":0,\"mem_usage\":0,\"cpu_temp\":0,\"cpu_usage\":0,\"gpu_temp\":0,\"gpu_usage\":0}", qos=0, retain=False)
|
#client.publish("sectorq/monitor/" + host.lower(), payload="{\"mb_temp\":0,\"mem_usage\":0,\"cpu_temp\":0,\"cpu_usage\":0,\"gpu_temp\":0,\"gpu_usage\":0}", qos=0, retain=False)
|
||||||
<<<<<<< HEAD
|
|
||||||
client.publish("home-assistant/" + host + "/hwstats", payload='{"status":"on", "version":"' + VERSION + '","reboot":"' + str(reboot_pending) + '", "uptime":"' + str(sys_uptime) + '", "raid_usage": ' + str(disk_usage) + ',"rsync":"' + str(stat_rsync) +'", "MB_TEMP":' + str(mb_data.current) + ', "MEM_UTIL":' + str(mem_data.percent) + ', "CPU_TEMP":' + str(cpu_data.current) + ', "GPU_TEMP":0, "GPU_UTIL":0, "FAN_CPU":0, "VMEM_UTIL":' + str(swap_data.percent) + ', "CPU_UTIL":' + str(cpu_usage) + '}', qos=0, retain=False)
|
client.publish("home-assistant/" + host + "/hwstats", payload='{"status":"on", "version":"' + VERSION + '","reboot":"' + str(reboot_pending) + '", "uptime":"' + str(sys_uptime) + '", "raid_usage": ' + str(disk_usage) + ',"rsync":"' + str(stat_rsync) +'", "MB_TEMP":' + str(mb_data.current) + ', "MEM_UTIL":' + str(mem_data.percent) + ', "CPU_TEMP":' + str(cpu_data.current) + ', "GPU_TEMP":0, "GPU_UTIL":0, "FAN_CPU":0, "VMEM_UTIL":' + str(swap_data.percent) + ', "CPU_UTIL":' + str(cpu_usage) + '}', qos=0, retain=False)
|
||||||
=======
|
writeLog("lalal")
|
||||||
client.publish("home-assistant/" + host + "/hwstats", payload='{"status":"on","version":"' + VERSION + '","reboot":"' + str(reboot_pending) + '", "uptime":"' + str(sys_uptime) + '", "raid_usage": ' + str(disk_usage) + ',"rsync":"' + str(stat_rsync) +'", "MB_TEMP":' + str(mb_data.current) + ', "MEM_UTIL":' + str(mem_data.percent) + ', "CPU_TEMP":' + str(cpu_data.current) + ', "GPU_TEMP":0, "GPU_UTIL":0, "FAN_CPU":0, "VMEM_UTIL":' + str(swap_data.percent) + ', "CPU_UTIL":' + str(cpu_usage) + '}', qos=0, retain=False)
|
|
||||||
>>>>>>> 74b22b8d43db9a5fce3a9a54c22c6f876043206c
|
|
||||||
elif host.lower() == "router":
|
elif host.lower() == "router":
|
||||||
check_router()
|
check_router()
|
||||||
elif host.lower() == "nas":
|
elif host.lower() == "nas":
|
||||||
print("Getting VM info")
|
print("Getting VM info")
|
||||||
|
payload = {"status":"on"}
|
||||||
cmnd = "/share/ZFS530_DATA/.qpkg/QKVM/usr/bin/virsh list --all"
|
cmnd = "/share/ZFS532_DATA/.qpkg/QKVM/usr/bin/virsh list --all"
|
||||||
writeLog(cmnd)
|
writeLog(cmnd)
|
||||||
status, output = subprocess.getstatusoutput(cmnd)
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
l = 1
|
l = 1
|
||||||
@@ -1158,15 +1194,16 @@ else:
|
|||||||
|
|
||||||
for m in VMS:
|
for m in VMS:
|
||||||
|
|
||||||
cmnd = "/share/ZFS530_DATA/.qpkg/QKVM/usr/bin/virsh domstate " + m
|
cmnd = "/share/ZFS532_DATA/.qpkg/QKVM/usr/bin/virsh domstate " + m
|
||||||
#out = subprocess.Popen(cmnd.split())
|
#out = subprocess.Popen(cmnd.split())
|
||||||
writeLog(cmnd)
|
writeLog(cmnd)
|
||||||
status, output = subprocess.getstatusoutput(cmnd)
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
writeLog(output)
|
writeLog(output)
|
||||||
if output.strip() == "running":
|
if output.strip() == "running":
|
||||||
client.publish("sectorq/systems/nas/" + m, payload=1, qos=0, retain=True)
|
payload[m] = 1
|
||||||
else:
|
else:
|
||||||
client.publish("sectorq/systems/nas/" + m, payload=0, qos=0, retain=True)
|
payload[m] = 0
|
||||||
|
client.publish( "home-assistant/" + host + "/hwstats", payload=json.dumps(payload), qos=0, retain=True)
|
||||||
|
|
||||||
|
|
||||||
if FILE_TIMESTAMP != mtime:
|
if FILE_TIMESTAMP != mtime:
|
||||||
|
|||||||
Reference in New Issue
Block a user