added fan and hashrate data for S19s and Whatsminers
This commit is contained in:
@@ -47,21 +47,42 @@ async def miner_websocket(websocket: WebSocket, miner_ip):
|
|||||||
try:
|
try:
|
||||||
cur_miner = await asyncio.wait_for(miner_factory.get_miner(str(miner_ip)), 5)
|
cur_miner = await asyncio.wait_for(miner_factory.get_miner(str(miner_ip)), 5)
|
||||||
|
|
||||||
data = await asyncio.wait_for(cur_miner.api.multicommand("summary", "fans"), 5)
|
data = await asyncio.wait_for(cur_miner.api.multicommand("summary", "fans", "stats"), 5)
|
||||||
|
|
||||||
miner_summary = data["summary"][0]
|
miner_summary = None
|
||||||
|
miner_stats = None
|
||||||
miner_fans = None
|
miner_fans = None
|
||||||
|
if "summary" in data.keys():
|
||||||
|
miner_summary = data["summary"][0]
|
||||||
|
elif "SUMMARY" in data.keys():
|
||||||
|
miner_summary = data
|
||||||
|
miner_fans = {"FANS": []}
|
||||||
|
for item in ["Fan Speed In", "Fan Speed Out"]:
|
||||||
|
if item in miner_summary["SUMMARY"][0].keys():
|
||||||
|
miner_fans["FANS"].append({"RPM": miner_summary["SUMMARY"][0][item]})
|
||||||
|
|
||||||
if "fans" in data.keys():
|
if "fans" in data.keys():
|
||||||
miner_fans = data["fans"][0]
|
miner_fans = data["fans"][0]
|
||||||
|
|
||||||
if 'MHS av' in miner_summary['SUMMARY'][0].keys():
|
if "stats" in data.keys():
|
||||||
hashrate = format(
|
miner_stats = data["stats"][0]
|
||||||
round(miner_summary['SUMMARY'][0]['MHS av'] / 1000000,
|
miner_fans = {"FANS": []}
|
||||||
2), ".2f")
|
for item in ["fan1", "fan2", "fan3", "fan4"]:
|
||||||
elif 'GHS av' in miner_summary['summary'][0]['SUMMARY'][0].keys():
|
if item in miner_stats["STATS"][1].keys():
|
||||||
hashrate = format(
|
miner_fans["FANS"].append({"RPM": miner_stats["STATS"][1][item]})
|
||||||
round(miner_summary['SUMMARY'][0]['GHS av'] / 1000, 2),
|
|
||||||
".2f")
|
|
||||||
|
if miner_summary:
|
||||||
|
if 'MHS av' in miner_summary['SUMMARY'][0].keys():
|
||||||
|
hashrate = format(
|
||||||
|
round(miner_summary['SUMMARY'][0]['MHS av'] / 1000000,
|
||||||
|
2), ".2f")
|
||||||
|
elif 'GHS av' in miner_summary['SUMMARY'][0].keys():
|
||||||
|
hashrate = format(
|
||||||
|
round(miner_summary['SUMMARY'][0]['GHS av'] / 1000, 2),
|
||||||
|
".2f")
|
||||||
|
else:
|
||||||
|
hashrate = 0
|
||||||
else:
|
else:
|
||||||
hashrate = 0
|
hashrate = 0
|
||||||
|
|
||||||
@@ -71,6 +92,9 @@ async def miner_websocket(websocket: WebSocket, miner_ip):
|
|||||||
for fan in miner_fans["FANS"]:
|
for fan in miner_fans["FANS"]:
|
||||||
fan_speeds.append(fan["RPM"])
|
fan_speeds.append(fan["RPM"])
|
||||||
|
|
||||||
|
while len(fan_speeds) < 5:
|
||||||
|
fan_speeds.append(0)
|
||||||
|
|
||||||
|
|
||||||
data = {"hashrate": hashrate,
|
data = {"hashrate": hashrate,
|
||||||
"fans": fan_speeds,
|
"fans": fan_speeds,
|
||||||
@@ -81,7 +105,8 @@ async def miner_websocket(websocket: WebSocket, miner_ip):
|
|||||||
data = {"error": "The miner is not responding."}
|
data = {"error": "The miner is not responding."}
|
||||||
await websocket.send_json(data)
|
await websocket.send_json(data)
|
||||||
await asyncio.sleep(.5)
|
await asyncio.sleep(.5)
|
||||||
except KeyError:
|
except KeyError as e:
|
||||||
|
print(e)
|
||||||
data = {"error": "The miner returned incorrect data."}
|
data = {"error": "The miner returned incorrect data."}
|
||||||
await websocket.send_json(data)
|
await websocket.send_json(data)
|
||||||
await asyncio.sleep(.5)
|
await asyncio.sleep(.5)
|
||||||
|
|||||||
Reference in New Issue
Block a user