Compare commits
4 Commits
cfg_util-u
...
cfg_util-b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2734caa9da | ||
|
|
d9ecdfc9d7 | ||
|
|
fa88bea376 | ||
|
|
25803b856d |
@@ -3,7 +3,7 @@ import ipaddress
|
|||||||
import time
|
import time
|
||||||
import warnings
|
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.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.func.ui import update_ui_with_data, update_prog_bar, set_progress_bar_len
|
||||||
from cfg_util.layout import window
|
from cfg_util.layout import window
|
||||||
@@ -129,7 +129,7 @@ async def get_data(ip_list: list):
|
|||||||
progress_bar_len += 1
|
progress_bar_len += 1
|
||||||
asyncio.create_task(update_prog_bar(progress_bar_len))
|
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)
|
total_hr = round(sum(hashrate_list), 2)
|
||||||
window["hr_total"].update(f"{total_hr} TH/s")
|
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 "Temperature" in miner_data['summary'][0]['SUMMARY'][0].keys():
|
||||||
if not round(miner_data['summary'][0]['SUMMARY'][0]["Temperature"]) == 0:
|
if not round(miner_data['summary'][0]['SUMMARY'][0]["Temperature"]) == 0:
|
||||||
temps = miner_data['summary'][0]['SUMMARY'][0]["Temperature"]
|
temps = miner_data['summary'][0]['SUMMARY'][0]["Temperature"]
|
||||||
if 'MHS 5s' in miner_data['summary'][0]['SUMMARY'][0].keys():
|
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 5s') / 1000000, 2)
|
th5s = round(await safe_parse_api_data(miner_data, 'summary', 0, 'SUMMARY', 0, 'MHS av') / 1000000, 2)
|
||||||
elif 'GHS 5s' in miner_data['summary'][0]['SUMMARY'][0].keys():
|
elif 'GHS av' in miner_data['summary'][0]['SUMMARY'][0].keys():
|
||||||
if not miner_data['summary'][0]['SUMMARY'][0]['GHS 5s'] == "":
|
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 5s')) / 1000,
|
th5s = round(float(await safe_parse_api_data(miner_data, 'summary', 0, 'SUMMARY', 0, 'GHS av')) / 1000,
|
||||||
2)
|
2)
|
||||||
else:
|
else:
|
||||||
th5s = 0
|
th5s = 0
|
||||||
|
|||||||
@@ -89,11 +89,11 @@ class BOSminer(BaseMiner):
|
|||||||
|
|
||||||
async def get_model(self):
|
async def get_model(self):
|
||||||
if self.model:
|
if self.model:
|
||||||
return self.model
|
return self.model + " (BOS)"
|
||||||
version_data = await self.api.devdetails()
|
version_data = await self.api.devdetails()
|
||||||
if version_data:
|
if version_data:
|
||||||
self.model = version_data["DEVDETAILS"][0]["Model"].replace("Antminer ", "")
|
self.model = version_data["DEVDETAILS"][0]["Model"].replace("Antminer ", "")
|
||||||
return self.model
|
return self.model + " (BOS)"
|
||||||
return None
|
return None
|
||||||
|
|
||||||
async def send_config(self, yaml_config) -> None:
|
async def send_config(self, yaml_config) -> None:
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ class MinerFactory:
|
|||||||
break
|
break
|
||||||
if model:
|
if model:
|
||||||
if "Antminer" in model:
|
if "Antminer" in model:
|
||||||
if model == "Antminer S9":
|
if "Antminer S9" in model:
|
||||||
if "BOSMiner" in api:
|
if "BOSMiner" in api:
|
||||||
miner = BOSMinerS9(str(ip))
|
miner = BOSMinerS9(str(ip))
|
||||||
elif "CGMiner" in api:
|
elif "CGMiner" in api:
|
||||||
@@ -107,14 +107,21 @@ class MinerFactory:
|
|||||||
try:
|
try:
|
||||||
data = await self._send_api_command(str(ip), "devdetails")
|
data = await self._send_api_command(str(ip), "devdetails")
|
||||||
if data.get("STATUS"):
|
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:
|
try:
|
||||||
data = await self._send_api_command(str(ip), "version")
|
data = await self._send_api_command(str(ip), "version")
|
||||||
model = data["VERSION"][0]["Type"]
|
model = data["VERSION"][0]["Type"]
|
||||||
except:
|
except:
|
||||||
print(f"Get Model Exception: {ip}")
|
print(f"Get Model Exception: {ip}")
|
||||||
else:
|
|
||||||
model = data["DEVDETAILS"][0]["Model"]
|
|
||||||
if model:
|
if model:
|
||||||
return model
|
return model
|
||||||
except OSError as e:
|
except OSError as e:
|
||||||
@@ -190,11 +197,11 @@ class MinerFactory:
|
|||||||
data = await self._send_api_command(str(ip), "version")
|
data = await self._send_api_command(str(ip), "version")
|
||||||
if data.get("STATUS") and not data.get("STATUS") == "E":
|
if data.get("STATUS") and not data.get("STATUS") == "E":
|
||||||
if data["STATUS"][0].get("STATUS") in ["I", "S"]:
|
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"
|
api = "BMMiner"
|
||||||
elif "CGMiner" in data["VERSION"][0].keys():
|
elif any("CGMiner" in string for string in data["VERSION"][0].keys()):
|
||||||
api = "CGMiner"
|
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"
|
api = "BOSMiner"
|
||||||
elif data.get("Description") and "whatsminer" in data.get("Description"):
|
elif data.get("Description") and "whatsminer" in data.get("Description"):
|
||||||
api = "BTMiner"
|
api = "BTMiner"
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ class UnknownMiner(BaseMiner):
|
|||||||
def __repr__(self) -> str:
|
def __repr__(self) -> str:
|
||||||
return f"Unknown: {str(self.ip)}"
|
return f"Unknown: {str(self.ip)}"
|
||||||
|
|
||||||
def get_model(self):
|
async def get_model(self):
|
||||||
return "Unknown"
|
return "Unknown"
|
||||||
|
|
||||||
async def send_config(self, _):
|
async def send_config(self, _):
|
||||||
|
|||||||
Reference in New Issue
Block a user