Compare commits

...

4 Commits

Author SHA1 Message Date
UpstreamData
2734caa9da added (BOS) tag to braiins miners scanned 2022-01-07 15:33:40 -07:00
UpstreamData
d9ecdfc9d7 fixe a bug with older versions of braiins sometimes being buggy with versioning 2022-01-07 15:25:11 -07:00
UpstreamData
fa88bea376 switched over to GH/s av and MH/s av for hashrate 2022-01-06 14:44:26 -08:00
UpstreamData
25803b856d fixed an issue with getting model causing an error because of whatsminers 2022-01-07 13:45:23 -07:00
4 changed files with 24 additions and 17 deletions

View File

@@ -3,7 +3,7 @@ import ipaddress
import time
import warnings
from API import APIError, APIWarning
from API import APIError
from cfg_util.func.parse_data import safe_parse_api_data
from cfg_util.func.ui import update_ui_with_data, update_prog_bar, set_progress_bar_len
from cfg_util.layout import window
@@ -129,7 +129,7 @@ async def get_data(ip_list: list):
progress_bar_len += 1
asyncio.create_task(update_prog_bar(progress_bar_len))
hashrate_list = [float(item[3].replace(" TH/s", "")) for item in window["ip_table"].Values if not item[3] == '']
hashrate_list = [float(item[3].replace(" TH/s", "")) if not item[3] == '' else 0 for item in window["ip_table"].Values]
total_hr = round(sum(hashrate_list), 2)
window["hr_total"].update(f"{total_hr} TH/s")
@@ -200,11 +200,11 @@ async def get_formatted_data(ip: ipaddress.ip_address):
if "Temperature" in miner_data['summary'][0]['SUMMARY'][0].keys():
if not round(miner_data['summary'][0]['SUMMARY'][0]["Temperature"]) == 0:
temps = miner_data['summary'][0]['SUMMARY'][0]["Temperature"]
if 'MHS 5s' in miner_data['summary'][0]['SUMMARY'][0].keys():
th5s = round(await safe_parse_api_data(miner_data, 'summary', 0, 'SUMMARY', 0, 'MHS 5s') / 1000000, 2)
elif 'GHS 5s' in miner_data['summary'][0]['SUMMARY'][0].keys():
if not miner_data['summary'][0]['SUMMARY'][0]['GHS 5s'] == "":
th5s = round(float(await safe_parse_api_data(miner_data, 'summary', 0, 'SUMMARY', 0, 'GHS 5s')) / 1000,
if 'MHS av' in miner_data['summary'][0]['SUMMARY'][0].keys():
th5s = round(await safe_parse_api_data(miner_data, 'summary', 0, 'SUMMARY', 0, 'MHS av') / 1000000, 2)
elif 'GHS av' in miner_data['summary'][0]['SUMMARY'][0].keys():
if not miner_data['summary'][0]['SUMMARY'][0]['GHS av'] == "":
th5s = round(float(await safe_parse_api_data(miner_data, 'summary', 0, 'SUMMARY', 0, 'GHS av')) / 1000,
2)
else:
th5s = 0

View File

@@ -89,11 +89,11 @@ class BOSminer(BaseMiner):
async def get_model(self):
if self.model:
return self.model
return self.model + " (BOS)"
version_data = await self.api.devdetails()
if version_data:
self.model = version_data["DEVDETAILS"][0]["Model"].replace("Antminer ", "")
return self.model
return self.model + " (BOS)"
return None
async def send_config(self, yaml_config) -> None:

View File

@@ -66,7 +66,7 @@ class MinerFactory:
break
if model:
if "Antminer" in model:
if model == "Antminer S9":
if "Antminer S9" in model:
if "BOSMiner" in api:
miner = BOSMinerS9(str(ip))
elif "CGMiner" in api:
@@ -107,14 +107,21 @@ class MinerFactory:
try:
data = await self._send_api_command(str(ip), "devdetails")
if data.get("STATUS"):
if data["STATUS"][0].get("STATUS") not in ["I", "S"]:
if not isinstance(data["STATUS"], str):
if data["STATUS"][0].get("STATUS") not in ["I", "S"]:
try:
data = await self._send_api_command(str(ip), "version")
model = data["VERSION"][0]["Type"]
except:
print(f"Get Model Exception: {ip}")
else:
model = data["DEVDETAILS"][0]["Model"]
else:
try:
data = await self._send_api_command(str(ip), "version")
model = data["VERSION"][0]["Type"]
except:
print(f"Get Model Exception: {ip}")
else:
model = data["DEVDETAILS"][0]["Model"]
if model:
return model
except OSError as e:
@@ -190,11 +197,11 @@ class MinerFactory:
data = await self._send_api_command(str(ip), "version")
if data.get("STATUS") and not data.get("STATUS") == "E":
if data["STATUS"][0].get("STATUS") in ["I", "S"]:
if "BMMiner" in data["VERSION"][0].keys():
if any("BMMiner" in string for string in data["VERSION"][0].keys()):
api = "BMMiner"
elif "CGMiner" in data["VERSION"][0].keys():
elif any("CGMiner" in string for string in data["VERSION"][0].keys()):
api = "CGMiner"
elif "BOSminer" in data["VERSION"][0].keys() or "BOSminer+" in data["VERSION"][0].keys():
elif any("BOSminer" in string for string in data["VERSION"][0].keys()):
api = "BOSMiner"
elif data.get("Description") and "whatsminer" in data.get("Description"):
api = "BTMiner"

View File

@@ -10,7 +10,7 @@ class UnknownMiner(BaseMiner):
def __repr__(self) -> str:
return f"Unknown: {str(self.ip)}"
def get_model(self):
async def get_model(self):
return "Unknown"
async def send_config(self, _):