From 0f324177cb7c8fdb1e53391a4d64fe79867e0642 Mon Sep 17 00:00:00 2001 From: UpstreamData Date: Wed, 2 Mar 2022 15:15:20 -0700 Subject: [PATCH] added fan data for braiins OS --- tools/web_monitor/app.py | 18 +++++++++++++++- tools/web_monitor/templates/miner.html | 30 ++++++++++++++++++-------- 2 files changed, 38 insertions(+), 10 deletions(-) diff --git a/tools/web_monitor/app.py b/tools/web_monitor/app.py index 2b8c2ac0..51700976 100644 --- a/tools/web_monitor/app.py +++ b/tools/web_monitor/app.py @@ -46,7 +46,14 @@ async def miner_websocket(websocket: WebSocket, miner_ip): while True: try: cur_miner = await asyncio.wait_for(miner_factory.get_miner(str(miner_ip)), 5) - miner_summary = await asyncio.wait_for(cur_miner.api.summary(), 5) + + data = await asyncio.wait_for(cur_miner.api.multicommand("summary", "fans"), 5) + + miner_summary = data["summary"][0] + miner_fans = None + if "fans" in data.keys(): + miner_fans = data["fans"][0] + if 'MHS av' in miner_summary['SUMMARY'][0].keys(): hashrate = format( round(miner_summary['SUMMARY'][0]['MHS av'] / 1000000, @@ -57,7 +64,16 @@ async def miner_websocket(websocket: WebSocket, miner_ip): ".2f") else: hashrate = 0 + + fan_speeds = [] + + if miner_fans: + for fan in miner_fans["FANS"]: + fan_speeds.append(fan["RPM"]) + + data = {"hashrate": hashrate, + "fans": fan_speeds, "datetime": datetime.datetime.now().isoformat()} await websocket.send_json(data) await asyncio.sleep(5) diff --git a/tools/web_monitor/templates/miner.html b/tools/web_monitor/templates/miner.html index a00b652f..d2cf9ee1 100644 --- a/tools/web_monitor/templates/miner.html +++ b/tools/web_monitor/templates/miner.html @@ -20,13 +20,13 @@
-
Fan 1
+
Fan 1
-
Fan 2
+
Fan 2
-
Fan 3
+
Fan 3
-
Fan 4
+
Fan 4
@@ -58,6 +58,18 @@ ws.onmessage = function(event) { if (minerDataChart.data.datasets[0].data.length > 50) minerDataChart.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"]); + 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]] + fan4Chart.data.datasets[0].data = [new_data["fans"][3], 6000-new_data["fans"][3]] + document.getElementById("fan1").innerHTML = "Fan 1: " + new_data["fans"][0] + document.getElementById("fan2").innerHTML = "Fan 2: " + new_data["fans"][1] + document.getElementById("fan3").innerHTML = "Fan 3: " + new_data["fans"][2] + document.getElementById("fan4").innerHTML = "Fan 4: " + new_data["fans"][3] + fan1Chart.update(); + fan2Chart.update(); + fan3Chart.update(); + fan4Chart.update(); minerDataChart.update(); }; }; @@ -144,7 +156,7 @@ var options_fans = { var fanCtx = document.getElementById("fan-chart-1").getContext("2d"); var fanWidth = document.getElementById("fan-chart-1").width; -var fanChartGradient = fanCtx.createLinearGradient(0, 0, fanWidth, -(1/2)*fanWidth) +var fanChartGradient = fanCtx.createLinearGradient(0, 0, fanWidth, -fanWidth) fanChartGradient.addColorStop(0, '#D0368A'); fanChartGradient.addColorStop(1, '#708AD4'); @@ -155,7 +167,7 @@ var fan1Chart = new Chart(document.getElementById("fan-chart-1"), { labels: ["Fan 1"], datasets: [ { - data: [100, 100], + data: [0, 6000], // add colors backgroundColor: [ fanChartGradient, @@ -172,7 +184,7 @@ var fan2Chart = new Chart(document.getElementById("fan-chart-2"), { labels: ["Fan 2"], datasets: [ { - data: [300, 100], + data: [0, 6000], // add colors backgroundColor: [ fanChartGradient, @@ -189,7 +201,7 @@ var fan3Chart = new Chart(document.getElementById("fan-chart-3"), { labels: ["Fan 3"], datasets: [ { - data: [200, 100], + data: [0, 6000], // add colors backgroundColor: [ fanChartGradient, @@ -206,7 +218,7 @@ var fan4Chart = new Chart(document.getElementById("fan-chart-4"), { labels: ["Fan 4"], datasets: [ { - data: [500, 100], + data: [0, 6000], // add colors backgroundColor: [ fanChartGradient,