you can read all info over API directly from rigs and then do as you pleased..
req_dict = {"id":0,"jsonrpc":"2.0","method":"miner_getstat2"}
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.settimeout(g_timeout_s)
s.connect((ip_address, server_port))
req_byte = json.dumps(req_dict, separators=(',', ':')).encode('ascii')+b'\n'
s.send(req_byte)
resp_byte = s.recv(1024)
s.close()
resp_text = json.loads(resp_byte.decode('ASCII'))
except:
#print (f"{rig_name:s}: no response within {int(timeout_s):d}sec period")
print (f"{rig_name:s}: not responding")
return 0
I use it to monitor bad shares/gpu too
Excellent.. I've just got to wrap my head around how best to implement the calls and if possible figure out how to automate based on some kind of triggers.
**if possible **
Constantly monitor pool ping latency times and then if fall outside agreed spec then switch up pools -- That's basically my challenge.
Thanks for excellent pointer tho much appreciated !
--edit
found good read over on it here..
https://bitcointalk.org/index.php?topic=1925063.0Fleshed out example here:
https://github.com/felixbrucker/miner-manager/blob/master/api/controllers/miningController.js#L723