add temperature graph to miner page
This commit is contained in:
@@ -27,7 +27,7 @@ async def miner_websocket(websocket: WebSocket, miner_ip):
|
||||
)
|
||||
|
||||
data = await asyncio.wait_for(
|
||||
cur_miner.api.multicommand("summary", "fans", "stats"),
|
||||
cur_miner.api.multicommand("summary", "fans", "stats", "devs", "temps"),
|
||||
miner_data_timeout
|
||||
)
|
||||
miner_model = await cur_miner.get_model()
|
||||
@@ -47,6 +47,35 @@ async def miner_websocket(websocket: WebSocket, miner_ip):
|
||||
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": []}
|
||||
@@ -79,10 +108,15 @@ async def miner_websocket(websocket: WebSocket, miner_ip):
|
||||
while len(fan_speeds) < 4:
|
||||
fan_speeds.append(0)
|
||||
|
||||
if len(miner_temp_list) == 0:
|
||||
miner_temps_list = [0]
|
||||
|
||||
data = {"hashrate": hashrate,
|
||||
"fans": fan_speeds,
|
||||
"temp": round(sum(miner_temp_list)/len(miner_temp_list), 2),
|
||||
"datetime": datetime.datetime.now().isoformat(),
|
||||
"model": miner_model}
|
||||
print(data)
|
||||
await websocket.send_json(data)
|
||||
await asyncio.sleep(settings["graph_data_sleep_time"])
|
||||
except asyncio.exceptions.TimeoutError:
|
||||
|
||||
@@ -112,8 +112,12 @@ ws.onmessage = function(event) {
|
||||
datetime = luxon.DateTime.fromISO(new_data["datetime"]).toLocal();
|
||||
if (minerDataChart.data.labels.length > 50) minerDataChart.data.labels.shift();
|
||||
if (minerDataChart.data.datasets[0].data.length > 50) minerDataChart.data.datasets[0].data.shift();
|
||||
if (minerTempChart.data.labels.length > 50) minerTempChart.data.labels.shift();
|
||||
if (minerTempChart.data.datasets[0].data.length > 50) minerTempChart.data.datasets[0].data.shift();
|
||||
minerDataChart.data.labels.push(datetime.toLocaleString(luxon.DateTime.TIME_WITH_SECONDS));
|
||||
minerDataChart.data.datasets[0].data.push(new_data["hashrate"].toFixed(2));
|
||||
minerTempChart.data.labels.push(datetime.toLocaleString(luxon.DateTime.TIME_WITH_SECONDS));
|
||||
minerTempChart.data.datasets[0].data.push(new_data["temp"].toFixed(2));
|
||||
fan1Chart.data.datasets[0].data = [new_data["fans"][0], 6000-new_data["fans"][0]]
|
||||
fan2Chart.data.datasets[0].data = [new_data["fans"][1], 6000-new_data["fans"][1]]
|
||||
fan3Chart.data.datasets[0].data = [new_data["fans"][2], 6000-new_data["fans"][2]]
|
||||
@@ -127,6 +131,7 @@ ws.onmessage = function(event) {
|
||||
fan3Chart.update();
|
||||
fan4Chart.update();
|
||||
minerDataChart.update();
|
||||
minerTempChart.update();
|
||||
var miner_hr = document.getElementById("minerHashrate")
|
||||
miner_hr.innerHTML = new_data["hashrate"].toFixed(2) + " TH/s"
|
||||
var miner_model = document.getElementById("minerModel")
|
||||
|
||||
Reference in New Issue
Block a user