change hashrate data to 1m as it seems more consistent, and add get_data to web monitor
This commit is contained in:
@@ -156,7 +156,7 @@ class BMMiner(BaseMiner):
|
|||||||
hr = summary.get("SUMMARY")
|
hr = summary.get("SUMMARY")
|
||||||
if hr:
|
if hr:
|
||||||
if len(hr) > 0:
|
if len(hr) > 0:
|
||||||
hr = hr[0].get("GHS av")
|
hr = hr[0].get("GHS 1m")
|
||||||
if hr:
|
if hr:
|
||||||
data.hashrate = round(hr / 1000, 2)
|
data.hashrate = round(hr / 1000, 2)
|
||||||
|
|
||||||
|
|||||||
@@ -279,7 +279,7 @@ class BOSMiner(BaseMiner):
|
|||||||
hr = summary.get("SUMMARY")
|
hr = summary.get("SUMMARY")
|
||||||
if hr:
|
if hr:
|
||||||
if len(hr) > 0:
|
if len(hr) > 0:
|
||||||
hr = hr[0].get("MHS av")
|
hr = hr[0].get("MHS 1m")
|
||||||
if hr:
|
if hr:
|
||||||
data.hashrate = round(hr / 1000000, 2)
|
data.hashrate = round(hr / 1000000, 2)
|
||||||
|
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ class BTMiner(BaseMiner):
|
|||||||
summary_data = summary.get("SUMMARY")
|
summary_data = summary.get("SUMMARY")
|
||||||
if summary_data:
|
if summary_data:
|
||||||
if len(summary_data) > 0:
|
if len(summary_data) > 0:
|
||||||
hr = summary_data[0].get("MHS av")
|
hr = summary_data[0].get("MHS 1m")
|
||||||
if hr:
|
if hr:
|
||||||
data.hashrate = round(hr / 1000000, 2)
|
data.hashrate = round(hr / 1000000, 2)
|
||||||
|
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ class CGMiner(BaseMiner):
|
|||||||
hr = summary.get("SUMMARY")
|
hr = summary.get("SUMMARY")
|
||||||
if hr:
|
if hr:
|
||||||
if len(hr) > 0:
|
if len(hr) > 0:
|
||||||
hr = hr[0].get("GHS av")
|
hr = hr[0].get("GHS 1m")
|
||||||
if hr:
|
if hr:
|
||||||
data.hashrate = round(hr / 1000, 2)
|
data.hashrate = round(hr / 1000, 2)
|
||||||
|
|
||||||
|
|||||||
@@ -24,132 +24,22 @@ async def miner_websocket(websocket: WebSocket, miner_ip):
|
|||||||
cur_miner = await asyncio.wait_for(
|
cur_miner = await asyncio.wait_for(
|
||||||
MinerFactory().get_miner(str(miner_ip)), miner_identify_timeout
|
MinerFactory().get_miner(str(miner_ip)), miner_identify_timeout
|
||||||
)
|
)
|
||||||
|
|
||||||
data = await asyncio.wait_for(
|
data = await asyncio.wait_for(
|
||||||
cur_miner.api.multicommand(
|
cur_miner.get_data(), miner_identify_timeout
|
||||||
"summary", "fans", "stats", "devs", "temps"
|
|
||||||
),
|
|
||||||
miner_data_timeout,
|
|
||||||
)
|
)
|
||||||
miner_model = await cur_miner.get_model()
|
|
||||||
|
|
||||||
miner_summary = None
|
fan_speeds = [
|
||||||
miner_fans = None
|
fan if not fan == -1 else 0
|
||||||
if "summary" in data.keys():
|
for fan in [data.fan_1, data.fan_2, data.fan_3, data.fan_4]
|
||||||
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():
|
|
||||||
miner_fans = data["fans"][0]
|
|
||||||
|
|
||||||
miner_temp_list = []
|
|
||||||
if "temps" in data.keys():
|
|
||||||
miner_temps = data["temps"][0]
|
|
||||||
for board in miner_temps["TEMPS"]:
|
|
||||||
if board["Chip"] is not None and not board["Chip"] == 0.0:
|
|
||||||
miner_temp_list.append(board["Chip"])
|
|
||||||
|
|
||||||
if "devs" in data.keys() and not len(miner_temp_list) > 0:
|
|
||||||
if not data["devs"][0].get("DEVS") == []:
|
|
||||||
if "Chip Temp Avg" in data["devs"][0]["DEVS"][0].keys():
|
|
||||||
for board in data["devs"][0]["DEVS"]:
|
|
||||||
if (
|
|
||||||
board["Chip Temp Avg"] is not None
|
|
||||||
and not board["Chip Temp Avg"] == 0.0
|
|
||||||
):
|
|
||||||
miner_temp_list.append(board["Chip Temp Avg"])
|
|
||||||
|
|
||||||
if "stats" in data.keys() and not len(miner_temp_list) > 0:
|
|
||||||
if not data["stats"][0]["STATS"] == []:
|
|
||||||
for temp in ["temp2", "temp1", "temp3"]:
|
|
||||||
if temp in data["stats"][0]["STATS"][1].keys():
|
|
||||||
if (
|
|
||||||
data["stats"][0]["STATS"][1][temp] is not None
|
|
||||||
and not data["stats"][0]["STATS"][1][temp] == 0.0
|
|
||||||
):
|
|
||||||
miner_temp_list.append(
|
|
||||||
data["stats"][0]["STATS"][1][temp]
|
|
||||||
)
|
|
||||||
data["stats"][0]["STATS"][0].keys()
|
|
||||||
if any(
|
|
||||||
"MM ID" in string
|
|
||||||
for string in data["stats"][0]["STATS"][0].keys()
|
|
||||||
):
|
|
||||||
temp_all = []
|
|
||||||
for key in [
|
|
||||||
string
|
|
||||||
for string in data["stats"][0]["STATS"][0].keys()
|
|
||||||
if "MM ID" in string
|
|
||||||
]:
|
|
||||||
for value in [
|
|
||||||
string
|
|
||||||
for string in data["stats"][0]["STATS"][0][key].split(
|
|
||||||
" "
|
|
||||||
)
|
|
||||||
if "TMax" in string
|
|
||||||
]:
|
|
||||||
temp_all.append(
|
|
||||||
int(value.split("[")[1].replace("]", ""))
|
|
||||||
)
|
|
||||||
miner_temp_list.append(round(sum(temp_all) / len(temp_all)))
|
|
||||||
|
|
||||||
if "stats" in data.keys() and not miner_fans:
|
|
||||||
miner_stats = data["stats"][0]
|
|
||||||
miner_fans = {"FANS": []}
|
|
||||||
for item in ["fan1", "fan2", "fan3", "fan4"]:
|
|
||||||
if item in miner_stats["STATS"][1].keys():
|
|
||||||
miner_fans["FANS"].append(
|
|
||||||
{"RPM": miner_stats["STATS"][1][item]}
|
|
||||||
)
|
|
||||||
|
|
||||||
if miner_summary:
|
|
||||||
if "MHS av" in miner_summary["SUMMARY"][0].keys():
|
|
||||||
hashrate = float(
|
|
||||||
format(
|
|
||||||
round(
|
|
||||||
miner_summary["SUMMARY"][0]["MHS av"] / 1000000, 2
|
|
||||||
),
|
|
||||||
".2f",
|
|
||||||
)
|
|
||||||
)
|
|
||||||
elif "GHS av" in miner_summary["SUMMARY"][0].keys():
|
|
||||||
hashrate = float(
|
|
||||||
format(
|
|
||||||
round(miner_summary["SUMMARY"][0]["GHS av"] / 1000, 2),
|
|
||||||
".2f",
|
|
||||||
)
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
hashrate = 0
|
|
||||||
else:
|
|
||||||
hashrate = 0
|
|
||||||
|
|
||||||
fan_speeds = []
|
|
||||||
if miner_fans:
|
|
||||||
for fan in miner_fans["FANS"]:
|
|
||||||
fan_speeds.append(fan["RPM"])
|
|
||||||
|
|
||||||
while len(fan_speeds) < 4:
|
|
||||||
fan_speeds.append(0)
|
|
||||||
|
|
||||||
if len(miner_temp_list) == 0:
|
|
||||||
miner_temp_list = [0]
|
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
"hashrate": hashrate,
|
"hashrate": data.hashrate,
|
||||||
"fans": fan_speeds,
|
"fans": fan_speeds,
|
||||||
"temp": round(sum(miner_temp_list) / len(miner_temp_list), 2),
|
"temp": data.temperature_avg,
|
||||||
"datetime": datetime.datetime.now().isoformat(),
|
"datetime": datetime.datetime.now().isoformat(),
|
||||||
"model": miner_model,
|
"model": data.model,
|
||||||
}
|
}
|
||||||
print(data)
|
|
||||||
await websocket.send_json(data)
|
await websocket.send_json(data)
|
||||||
await asyncio.sleep(settings["graph_data_sleep_time"])
|
await asyncio.sleep(settings["graph_data_sleep_time"])
|
||||||
except asyncio.exceptions.TimeoutError:
|
except asyncio.exceptions.TimeoutError:
|
||||||
|
|||||||
Reference in New Issue
Block a user