improved X19 miner scan speed and implemented miner data in miners
This commit is contained in:
@@ -1,8 +1,13 @@
|
|||||||
|
import ipaddress
|
||||||
|
import logging
|
||||||
|
|
||||||
|
|
||||||
from API.bmminer import BMMinerAPI
|
from API.bmminer import BMMinerAPI
|
||||||
from miners import BaseMiner
|
from miners import BaseMiner
|
||||||
import logging
|
|
||||||
|
from data import MinerData
|
||||||
|
|
||||||
from settings import MINER_FACTORY_GET_VERSION_RETRIES as DATA_RETRIES
|
from settings import MINER_FACTORY_GET_VERSION_RETRIES as DATA_RETRIES
|
||||||
import ipaddress
|
|
||||||
|
|
||||||
|
|
||||||
class BMMiner(BaseMiner):
|
class BMMiner(BaseMiner):
|
||||||
@@ -122,36 +127,17 @@ class BMMiner(BaseMiner):
|
|||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
async def get_data(self):
|
async def get_data(self) -> MinerData:
|
||||||
data = {
|
data = MinerData(ip=str(self.ip), ideal_chips=self.nominal_chips * 3)
|
||||||
"IP": str(self.ip),
|
|
||||||
"Model": "Unknown",
|
|
||||||
"Hostname": "Unknown",
|
|
||||||
"Hashrate": 0,
|
|
||||||
"Temp": 0,
|
|
||||||
"Pool User": "Unknown",
|
|
||||||
"Wattage": 0,
|
|
||||||
"Total": 0,
|
|
||||||
"Ideal": self.nominal_chips * 3,
|
|
||||||
"Left Board": 0,
|
|
||||||
"Center Board": 0,
|
|
||||||
"Right Board": 0,
|
|
||||||
"Nominal": False,
|
|
||||||
"Split": "0",
|
|
||||||
"Pool 1": "Unknown",
|
|
||||||
"Pool 1 User": "Unknown",
|
|
||||||
"Pool 2": "",
|
|
||||||
"Pool 2 User": "",
|
|
||||||
}
|
|
||||||
|
|
||||||
model = await self.get_model()
|
model = await self.get_model()
|
||||||
hostname = await self.get_hostname()
|
hostname = await self.get_hostname()
|
||||||
|
|
||||||
if model:
|
if model:
|
||||||
data["Model"] = model
|
data.model = model
|
||||||
|
|
||||||
if hostname:
|
if hostname:
|
||||||
data["Hostname"] = hostname
|
data.hostname = hostname
|
||||||
|
|
||||||
miner_data = None
|
miner_data = None
|
||||||
for i in range(DATA_RETRIES):
|
for i in range(DATA_RETRIES):
|
||||||
@@ -172,19 +158,15 @@ class BMMiner(BaseMiner):
|
|||||||
if len(hr) > 0:
|
if len(hr) > 0:
|
||||||
hr = hr[0].get("GHS av")
|
hr = hr[0].get("GHS av")
|
||||||
if hr:
|
if hr:
|
||||||
data["Hashrate"] = round(hr / 1000, 2)
|
data.hashrate = round(hr / 1000, 2)
|
||||||
|
|
||||||
if stats:
|
if stats:
|
||||||
boards = stats.get("STATS")
|
boards = stats.get("STATS")
|
||||||
if boards:
|
if boards:
|
||||||
if len(boards) > 0:
|
if len(boards) > 0:
|
||||||
data["Left Board"] = boards[1].get("chain_acn1")
|
data.left_chips = boards[1].get("chain_acn1")
|
||||||
data["Center Board"] = boards[1].get("chain_acn2")
|
data.center_chips = boards[1].get("chain_acn2")
|
||||||
data["Right Board"] = boards[1].get("chain_acn3")
|
data.right_chips = boards[1].get("chain_acn3")
|
||||||
data["Total"] = boards[1].get("total_acn")
|
|
||||||
|
|
||||||
if data["Total"] == data["Ideal"]:
|
|
||||||
data["Nominal"] = True
|
|
||||||
|
|
||||||
if stats:
|
if stats:
|
||||||
temp = stats.get("STATS")
|
temp = stats.get("STATS")
|
||||||
@@ -193,7 +175,7 @@ class BMMiner(BaseMiner):
|
|||||||
for item in ["temp2", "temp1", "temp3"]:
|
for item in ["temp2", "temp1", "temp3"]:
|
||||||
temperature = temp[1].get(item)
|
temperature = temp[1].get(item)
|
||||||
if temperature and not temperature == 0.0:
|
if temperature and not temperature == 0.0:
|
||||||
data["Temp"] = round(temperature)
|
data.temperature = round(temperature)
|
||||||
|
|
||||||
if pools:
|
if pools:
|
||||||
pool_1 = None
|
pool_1 = None
|
||||||
@@ -225,23 +207,22 @@ class BMMiner(BaseMiner):
|
|||||||
pool_1.replace("stratum+tcp://", "")
|
pool_1.replace("stratum+tcp://", "")
|
||||||
if pool_1.startswith("stratum2+tcp://"):
|
if pool_1.startswith("stratum2+tcp://"):
|
||||||
pool_1.replace("stratum2+tcp://", "")
|
pool_1.replace("stratum2+tcp://", "")
|
||||||
data["Pool 1"] = pool_1
|
data.pool_1_url = pool_1
|
||||||
|
|
||||||
if pool_1_user:
|
if pool_1_user:
|
||||||
data["Pool 1 User"] = pool_1_user
|
data.pool_1_user = pool_1_user
|
||||||
data["Pool User"] = pool_1_user
|
|
||||||
|
|
||||||
if pool_2:
|
if pool_2:
|
||||||
if pool_2.startswith("stratum+tcp://"):
|
if pool_2.startswith("stratum+tcp://"):
|
||||||
pool_2.replace("stratum+tcp://", "")
|
pool_2.replace("stratum+tcp://", "")
|
||||||
if pool_2.startswith("stratum2+tcp://"):
|
if pool_2.startswith("stratum2+tcp://"):
|
||||||
pool_2.replace("stratum2+tcp://", "")
|
pool_2.replace("stratum2+tcp://", "")
|
||||||
data["Pool 2"] = pool_2
|
data.pool_2_url = pool_2
|
||||||
|
|
||||||
if pool_2_user:
|
if pool_2_user:
|
||||||
data["Pool 2 User"] = pool_2_user
|
data.pool_2_user = pool_2_user
|
||||||
|
|
||||||
if quota:
|
if quota:
|
||||||
data["Split"] = str(quota)
|
data.pool_split = str(quota)
|
||||||
|
|
||||||
return data
|
return data
|
||||||
|
|||||||
@@ -1,10 +1,17 @@
|
|||||||
import ipaddress
|
import ipaddress
|
||||||
|
import logging
|
||||||
|
|
||||||
|
|
||||||
|
import toml
|
||||||
|
|
||||||
|
|
||||||
from miners import BaseMiner
|
from miners import BaseMiner
|
||||||
from API.bosminer import BOSMinerAPI
|
from API.bosminer import BOSMinerAPI
|
||||||
import toml
|
|
||||||
|
from data import MinerData
|
||||||
|
|
||||||
from config.bos import bos_config_convert, general_config_convert_bos
|
from config.bos import bos_config_convert, general_config_convert_bos
|
||||||
import logging
|
|
||||||
from settings import MINER_FACTORY_GET_VERSION_RETRIES as DATA_RETRIES
|
from settings import MINER_FACTORY_GET_VERSION_RETRIES as DATA_RETRIES
|
||||||
|
|
||||||
|
|
||||||
@@ -241,35 +248,16 @@ class BOSMiner(BaseMiner):
|
|||||||
if not bad > 0:
|
if not bad > 0:
|
||||||
return str(self.ip)
|
return str(self.ip)
|
||||||
|
|
||||||
async def get_data(self):
|
async def get_data(self) -> MinerData:
|
||||||
data = {
|
data = MinerData(ip=str(self.ip), ideal_chips=self.nominal_chips * 3)
|
||||||
"IP": str(self.ip),
|
|
||||||
"Model": "Unknown",
|
|
||||||
"Hostname": "Unknown",
|
|
||||||
"Hashrate": 0,
|
|
||||||
"Temp": 0,
|
|
||||||
"Pool User": "Unknown",
|
|
||||||
"Wattage": 0,
|
|
||||||
"Total": 0,
|
|
||||||
"Ideal": self.nominal_chips * 3,
|
|
||||||
"Left Board": 0,
|
|
||||||
"Center Board": 0,
|
|
||||||
"Right Board": 0,
|
|
||||||
"Nominal": False,
|
|
||||||
"Split": "0",
|
|
||||||
"Pool 1": "Unknown",
|
|
||||||
"Pool 1 User": "Unknown",
|
|
||||||
"Pool 2": "",
|
|
||||||
"Pool 2 User": "",
|
|
||||||
}
|
|
||||||
model = await self.get_model()
|
model = await self.get_model()
|
||||||
hostname = await self.get_hostname()
|
hostname = await self.get_hostname()
|
||||||
|
|
||||||
if model:
|
if model:
|
||||||
data["Model"] = model
|
data.model = model
|
||||||
|
|
||||||
if hostname:
|
if hostname:
|
||||||
data["Hostname"] = hostname
|
data.hostname = hostname
|
||||||
|
|
||||||
miner_data = None
|
miner_data = None
|
||||||
for i in range(DATA_RETRIES):
|
for i in range(DATA_RETRIES):
|
||||||
@@ -292,7 +280,7 @@ class BOSMiner(BaseMiner):
|
|||||||
if len(hr) > 0:
|
if len(hr) > 0:
|
||||||
hr = hr[0].get("MHS av")
|
hr = hr[0].get("MHS av")
|
||||||
if hr:
|
if hr:
|
||||||
data["Hashrate"] = round(hr / 1000000, 2)
|
data.hashrate = round(hr / 1000000, 2)
|
||||||
|
|
||||||
if temps:
|
if temps:
|
||||||
temp = temps.get("TEMPS")
|
temp = temps.get("TEMPS")
|
||||||
@@ -300,7 +288,7 @@ class BOSMiner(BaseMiner):
|
|||||||
if len(temp) > 0:
|
if len(temp) > 0:
|
||||||
chip_temp = temp[0].get("Chip")
|
chip_temp = temp[0].get("Chip")
|
||||||
if chip_temp:
|
if chip_temp:
|
||||||
data["Temp"] = round(chip_temp)
|
data.temperature = round(chip_temp)
|
||||||
|
|
||||||
if pools:
|
if pools:
|
||||||
pool_1 = None
|
pool_1 = None
|
||||||
@@ -330,22 +318,21 @@ class BOSMiner(BaseMiner):
|
|||||||
if pool_1:
|
if pool_1:
|
||||||
pool_1 = pool_1.replace("stratum+tcp://", "")
|
pool_1 = pool_1.replace("stratum+tcp://", "")
|
||||||
pool_1 = pool_1.replace("stratum2+tcp://", "")
|
pool_1 = pool_1.replace("stratum2+tcp://", "")
|
||||||
data["Pool 1"] = pool_1
|
data.pool_1_url = pool_1
|
||||||
|
|
||||||
if pool_1_user:
|
if pool_1_user:
|
||||||
data["Pool 1 User"] = pool_1_user
|
data.pool_1_user = pool_1_user
|
||||||
data["Pool User"] = pool_1_user
|
|
||||||
|
|
||||||
if pool_2:
|
if pool_2:
|
||||||
pool_2 = pool_2.replace("stratum+tcp://", "")
|
pool_2 = pool_2.replace("stratum+tcp://", "")
|
||||||
pool_2 = pool_2.replace("stratum2+tcp://", "")
|
pool_2 = pool_2.replace("stratum2+tcp://", "")
|
||||||
data["Pool 2"] = pool_2
|
data.pool_2_url = pool_2
|
||||||
|
|
||||||
if pool_2_user:
|
if pool_2_user:
|
||||||
data["Pool 2 User"] = pool_2_user
|
data.pool_2_user = pool_2_user
|
||||||
|
|
||||||
if quota:
|
if quota:
|
||||||
data["Split"] = str(quota)
|
data.pool_split = str(quota)
|
||||||
|
|
||||||
if tunerstatus:
|
if tunerstatus:
|
||||||
tuner = tunerstatus.get("TUNERSTATUS")
|
tuner = tunerstatus.get("TUNERSTATUS")
|
||||||
@@ -353,22 +340,18 @@ class BOSMiner(BaseMiner):
|
|||||||
if len(tuner) > 0:
|
if len(tuner) > 0:
|
||||||
wattage = tuner[0].get("PowerLimit")
|
wattage = tuner[0].get("PowerLimit")
|
||||||
if wattage:
|
if wattage:
|
||||||
data["Wattage"] = wattage
|
data.wattage = wattage
|
||||||
|
|
||||||
if devdetails:
|
if devdetails:
|
||||||
boards = devdetails.get("DEVDETAILS")
|
boards = devdetails.get("DEVDETAILS")
|
||||||
if boards:
|
if boards:
|
||||||
if len(boards) > 0:
|
if len(boards) > 0:
|
||||||
board_map = {0: "Left Board", 1: "Center Board", 2: "Right Board"}
|
board_map = {0: "left_chips", 1: "center_chips", 2: "right_chips"}
|
||||||
offset = boards[0]["ID"]
|
offset = boards[0]["ID"]
|
||||||
for board in boards:
|
for board in boards:
|
||||||
id = board["ID"] - offset
|
id = board["ID"] - offset
|
||||||
chips = board["Chips"]
|
chips = board["Chips"]
|
||||||
data["Total"] += chips
|
setattr(data, board_map[id], chips)
|
||||||
data[board_map[id]] = chips
|
|
||||||
|
|
||||||
if data["Total"] == data["Ideal"]:
|
|
||||||
data["Nominal"] = True
|
|
||||||
|
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,14 @@
|
|||||||
|
import ipaddress
|
||||||
|
import logging
|
||||||
|
|
||||||
|
|
||||||
from API.btminer import BTMinerAPI
|
from API.btminer import BTMinerAPI
|
||||||
from miners import BaseMiner
|
from miners import BaseMiner
|
||||||
from API import APIError
|
from API import APIError
|
||||||
import logging
|
|
||||||
|
from data import MinerData
|
||||||
|
|
||||||
from settings import MINER_FACTORY_GET_VERSION_RETRIES as DATA_RETRIES
|
from settings import MINER_FACTORY_GET_VERSION_RETRIES as DATA_RETRIES
|
||||||
import ipaddress
|
|
||||||
|
|
||||||
|
|
||||||
class BTMiner(BaseMiner):
|
class BTMiner(BaseMiner):
|
||||||
@@ -83,26 +88,7 @@ class BTMiner(BaseMiner):
|
|||||||
return str(mac).upper()
|
return str(mac).upper()
|
||||||
|
|
||||||
async def get_data(self):
|
async def get_data(self):
|
||||||
data = {
|
data = MinerData(ip=str(self.ip), ideal_chips=self.nominal_chips * 3)
|
||||||
"IP": str(self.ip),
|
|
||||||
"Model": "Unknown",
|
|
||||||
"Hostname": "Unknown",
|
|
||||||
"Hashrate": 0,
|
|
||||||
"Temp": 0,
|
|
||||||
"Pool User": "Unknown",
|
|
||||||
"Wattage": 0,
|
|
||||||
"Total": 0,
|
|
||||||
"Ideal": self.nominal_chips * 3,
|
|
||||||
"Left Board": 0,
|
|
||||||
"Center Board": 0,
|
|
||||||
"Right Board": 0,
|
|
||||||
"Nominal": False,
|
|
||||||
"Split": "0",
|
|
||||||
"Pool 1": "Unknown",
|
|
||||||
"Pool 1 User": "Unknown",
|
|
||||||
"Pool 2": "",
|
|
||||||
"Pool 2 User": "",
|
|
||||||
}
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
model = await self.get_model()
|
model = await self.get_model()
|
||||||
@@ -110,15 +96,15 @@ class BTMiner(BaseMiner):
|
|||||||
except APIError:
|
except APIError:
|
||||||
logging.warning(f"Failed to get hostname and model: {self}")
|
logging.warning(f"Failed to get hostname and model: {self}")
|
||||||
model = None
|
model = None
|
||||||
data["Model"] = "Whatsminer"
|
data.model = "Whatsminer"
|
||||||
hostname = None
|
hostname = None
|
||||||
data["Hostname"] = "Whatsminer"
|
data.hostname = "Whatsminer"
|
||||||
|
|
||||||
if model:
|
if model:
|
||||||
data["Model"] = model
|
data.model = model
|
||||||
|
|
||||||
if hostname:
|
if hostname:
|
||||||
data["Hostname"] = hostname
|
data.hostname = hostname
|
||||||
miner_data = None
|
miner_data = None
|
||||||
for i in range(DATA_RETRIES):
|
for i in range(DATA_RETRIES):
|
||||||
try:
|
try:
|
||||||
@@ -141,11 +127,11 @@ class BTMiner(BaseMiner):
|
|||||||
if len(summary_data) > 0:
|
if len(summary_data) > 0:
|
||||||
hr = summary_data[0].get("MHS av")
|
hr = summary_data[0].get("MHS av")
|
||||||
if hr:
|
if hr:
|
||||||
data["Hashrate"] = round(hr / 1000000, 2)
|
data.hashrate = round(hr / 1000000, 2)
|
||||||
|
|
||||||
wattage = summary_data[0].get("Power")
|
wattage = summary_data[0].get("Power")
|
||||||
if wattage:
|
if wattage:
|
||||||
data["Wattage"] = round(wattage)
|
data.wattage = round(wattage)
|
||||||
|
|
||||||
if devs:
|
if devs:
|
||||||
temp_data = devs.get("DEVS")
|
temp_data = devs.get("DEVS")
|
||||||
@@ -153,14 +139,14 @@ class BTMiner(BaseMiner):
|
|||||||
for board in temp_data:
|
for board in temp_data:
|
||||||
temp = board.get("Chip Temp Avg")
|
temp = board.get("Chip Temp Avg")
|
||||||
if temp and not temp == 0.0:
|
if temp and not temp == 0.0:
|
||||||
data["Temp"] = round(temp)
|
data.temperature = round(temp)
|
||||||
break
|
break
|
||||||
|
|
||||||
if devs:
|
if devs:
|
||||||
boards = devs.get("DEVS")
|
boards = devs.get("DEVS")
|
||||||
if boards:
|
if boards:
|
||||||
if len(boards) > 0:
|
if len(boards) > 0:
|
||||||
board_map = {0: "Left Board", 1: "Center Board", 2: "Right Board"}
|
board_map = {0: "left_chips", 1: "center_chips", 2: "right_chips"}
|
||||||
if "ID" in boards[0].keys():
|
if "ID" in boards[0].keys():
|
||||||
id_key = "ID"
|
id_key = "ID"
|
||||||
else:
|
else:
|
||||||
@@ -169,11 +155,7 @@ class BTMiner(BaseMiner):
|
|||||||
for board in boards:
|
for board in boards:
|
||||||
id = board[id_key] - offset
|
id = board[id_key] - offset
|
||||||
chips = board["Effective Chips"]
|
chips = board["Effective Chips"]
|
||||||
data["Total"] += chips
|
setattr(data, board_map[id], chips)
|
||||||
data[board_map[id]] = chips
|
|
||||||
|
|
||||||
if data["Total"] == data["Ideal"]:
|
|
||||||
data["Nominal"] = True
|
|
||||||
|
|
||||||
if pools:
|
if pools:
|
||||||
pool_1 = None
|
pool_1 = None
|
||||||
@@ -205,23 +187,22 @@ class BTMiner(BaseMiner):
|
|||||||
pool_1.replace("stratum+tcp://", "")
|
pool_1.replace("stratum+tcp://", "")
|
||||||
if pool_1.startswith("stratum2+tcp://"):
|
if pool_1.startswith("stratum2+tcp://"):
|
||||||
pool_1.replace("stratum2+tcp://", "")
|
pool_1.replace("stratum2+tcp://", "")
|
||||||
data["Pool 1"] = pool_1
|
data.pool_1_url = pool_1
|
||||||
|
|
||||||
if pool_1_user:
|
if pool_1_user:
|
||||||
data["Pool 1 User"] = pool_1_user
|
data.pool_1_user = pool_1_user
|
||||||
data["Pool User"] = pool_1_user
|
|
||||||
|
|
||||||
if pool_2:
|
if pool_2:
|
||||||
if pool_2.startswith("stratum+tcp://"):
|
if pool_2.startswith("stratum+tcp://"):
|
||||||
pool_2.replace("stratum+tcp://", "")
|
pool_2.replace("stratum+tcp://", "")
|
||||||
if pool_2.startswith("stratum2+tcp://"):
|
if pool_2.startswith("stratum2+tcp://"):
|
||||||
pool_2.replace("stratum2+tcp://", "")
|
pool_2.replace("stratum2+tcp://", "")
|
||||||
data["Pool 2"] = pool_2
|
data.pool_2_url = pool_2
|
||||||
|
|
||||||
if pool_2_user:
|
if pool_2_user:
|
||||||
data["Pool 2 User"] = pool_2_user
|
data.pool_2_user = pool_2_user
|
||||||
|
|
||||||
if quota:
|
if quota:
|
||||||
data["Split"] = str(quota)
|
data.pool_split = str(quota)
|
||||||
|
|
||||||
return data
|
return data
|
||||||
|
|||||||
@@ -1,9 +1,14 @@
|
|||||||
from miners import BaseMiner
|
|
||||||
from API.cgminer import CGMinerAPI
|
|
||||||
from API import APIError
|
|
||||||
from settings import MINER_FACTORY_GET_VERSION_RETRIES as DATA_RETRIES
|
|
||||||
import logging
|
|
||||||
import ipaddress
|
import ipaddress
|
||||||
|
import logging
|
||||||
|
|
||||||
|
|
||||||
|
from API.cgminer import CGMinerAPI
|
||||||
|
from miners import BaseMiner
|
||||||
|
from API import APIError
|
||||||
|
|
||||||
|
from data import MinerData
|
||||||
|
|
||||||
|
from settings import MINER_FACTORY_GET_VERSION_RETRIES as DATA_RETRIES
|
||||||
|
|
||||||
|
|
||||||
class CGMiner(BaseMiner):
|
class CGMiner(BaseMiner):
|
||||||
@@ -103,29 +108,16 @@ class CGMiner(BaseMiner):
|
|||||||
print(str(self.config))
|
print(str(self.config))
|
||||||
|
|
||||||
async def get_data(self):
|
async def get_data(self):
|
||||||
data = {
|
data = MinerData(ip=str(self.ip), ideal_chips=self.nominal_chips * 3)
|
||||||
"IP": str(self.ip),
|
|
||||||
"Model": "Unknown",
|
|
||||||
"Hostname": "Unknown",
|
|
||||||
"Hashrate": 0,
|
|
||||||
"Temp": 0,
|
|
||||||
"Pool User": "Unknown",
|
|
||||||
"Wattage": 0,
|
|
||||||
"Split": 0,
|
|
||||||
"Pool 1": "Unknown",
|
|
||||||
"Pool 1 User": "Unknown",
|
|
||||||
"Pool 2": "",
|
|
||||||
"Pool 2 User": "",
|
|
||||||
}
|
|
||||||
|
|
||||||
model = await self.get_model()
|
model = await self.get_model()
|
||||||
hostname = await self.get_hostname()
|
hostname = await self.get_hostname()
|
||||||
|
|
||||||
if model:
|
if model:
|
||||||
data["Model"] = model
|
data.model = model
|
||||||
|
|
||||||
if hostname:
|
if hostname:
|
||||||
data["Hostname"] = hostname
|
data.hostname = hostname
|
||||||
miner_data = None
|
miner_data = None
|
||||||
for i in range(DATA_RETRIES):
|
for i in range(DATA_RETRIES):
|
||||||
miner_data = await self.api.multicommand("summary", "pools", "stats")
|
miner_data = await self.api.multicommand("summary", "pools", "stats")
|
||||||
@@ -145,7 +137,7 @@ class CGMiner(BaseMiner):
|
|||||||
if len(hr) > 0:
|
if len(hr) > 0:
|
||||||
hr = hr[0].get("GHS av")
|
hr = hr[0].get("GHS av")
|
||||||
if hr:
|
if hr:
|
||||||
data["Hashrate"] = round(hr / 1000, 2)
|
data.hashrate = round(hr / 1000, 2)
|
||||||
|
|
||||||
if stats:
|
if stats:
|
||||||
temp = stats.get("STATS")
|
temp = stats.get("STATS")
|
||||||
@@ -154,7 +146,7 @@ class CGMiner(BaseMiner):
|
|||||||
for item in ["temp2", "temp1", "temp3"]:
|
for item in ["temp2", "temp1", "temp3"]:
|
||||||
temperature = temp[1].get(item)
|
temperature = temp[1].get(item)
|
||||||
if temperature and not temperature == 0.0:
|
if temperature and not temperature == 0.0:
|
||||||
data["Temp"] = round(temperature)
|
data.temperature = round(temperature)
|
||||||
|
|
||||||
if pools:
|
if pools:
|
||||||
pool_1 = None
|
pool_1 = None
|
||||||
@@ -186,23 +178,22 @@ class CGMiner(BaseMiner):
|
|||||||
pool_1.replace("stratum+tcp://", "")
|
pool_1.replace("stratum+tcp://", "")
|
||||||
if pool_1.startswith("stratum2+tcp://"):
|
if pool_1.startswith("stratum2+tcp://"):
|
||||||
pool_1.replace("stratum2+tcp://", "")
|
pool_1.replace("stratum2+tcp://", "")
|
||||||
data["Pool 1"] = pool_1
|
data.pool_1_url = pool_1
|
||||||
|
|
||||||
if pool_1_user:
|
if pool_1_user:
|
||||||
data["Pool 1 User"] = pool_1_user
|
data.pool_1_user = pool_1_user
|
||||||
data["Pool User"] = pool_1_user
|
|
||||||
|
|
||||||
if pool_2:
|
if pool_2:
|
||||||
if pool_2.startswith("stratum+tcp://"):
|
if pool_2.startswith("stratum+tcp://"):
|
||||||
pool_2.replace("stratum+tcp://", "")
|
pool_2.replace("stratum+tcp://", "")
|
||||||
if pool_2.startswith("stratum2+tcp://"):
|
if pool_2.startswith("stratum2+tcp://"):
|
||||||
pool_2.replace("stratum2+tcp://", "")
|
pool_2.replace("stratum2+tcp://", "")
|
||||||
data["Pool 2"] = pool_2
|
data.pool_2_url = pool_2
|
||||||
|
|
||||||
if pool_2_user:
|
if pool_2_user:
|
||||||
data["Pool 2 User"] = pool_2_user
|
data.pool_2_user = pool_2_user
|
||||||
|
|
||||||
if quota:
|
if quota:
|
||||||
data["Split"] = str(quota)
|
data.pool_split = str(quota)
|
||||||
|
|
||||||
return data
|
return data
|
||||||
|
|||||||
@@ -6,3 +6,4 @@ class M31SPlus(BaseMiner):
|
|||||||
super().__init__()
|
super().__init__()
|
||||||
self.ip = ip
|
self.ip = ip
|
||||||
self.model = "M31S+"
|
self.model = "M31S+"
|
||||||
|
self.nominal_chips = 78
|
||||||
|
|||||||
@@ -6,3 +6,6 @@ class BMMinerS19(BMMiner, S19):
|
|||||||
def __init__(self, ip: str) -> None:
|
def __init__(self, ip: str) -> None:
|
||||||
super().__init__(ip)
|
super().__init__(ip)
|
||||||
self.ip = ip
|
self.ip = ip
|
||||||
|
|
||||||
|
async def get_hostname(self) -> str:
|
||||||
|
return "?"
|
||||||
|
|||||||
@@ -6,3 +6,6 @@ class BMMinerS19Pro(BMMiner, S19Pro):
|
|||||||
def __init__(self, ip: str) -> None:
|
def __init__(self, ip: str) -> None:
|
||||||
super().__init__(ip)
|
super().__init__(ip)
|
||||||
self.ip = ip
|
self.ip = ip
|
||||||
|
|
||||||
|
async def get_hostname(self) -> str:
|
||||||
|
return "?"
|
||||||
|
|||||||
@@ -6,3 +6,6 @@ class BMMinerS19a(BMMiner, S19a):
|
|||||||
def __init__(self, ip: str) -> None:
|
def __init__(self, ip: str) -> None:
|
||||||
super().__init__(ip)
|
super().__init__(ip)
|
||||||
self.ip = ip
|
self.ip = ip
|
||||||
|
|
||||||
|
async def get_hostname(self) -> str:
|
||||||
|
return "?"
|
||||||
|
|||||||
@@ -6,3 +6,6 @@ class BMMinerS19j(BMMiner, S19j):
|
|||||||
def __init__(self, ip: str) -> None:
|
def __init__(self, ip: str) -> None:
|
||||||
super().__init__(ip)
|
super().__init__(ip)
|
||||||
self.ip = ip
|
self.ip = ip
|
||||||
|
|
||||||
|
async def get_hostname(self) -> str:
|
||||||
|
return "?"
|
||||||
|
|||||||
@@ -6,3 +6,6 @@ class BMMinerS19jPro(BMMiner, S19jPro):
|
|||||||
def __init__(self, ip: str) -> None:
|
def __init__(self, ip: str) -> None:
|
||||||
super().__init__(ip)
|
super().__init__(ip)
|
||||||
self.ip = ip
|
self.ip = ip
|
||||||
|
|
||||||
|
async def get_hostname(self) -> str:
|
||||||
|
return "?"
|
||||||
|
|||||||
@@ -6,3 +6,6 @@ class BMMinerT19(BMMiner, T19):
|
|||||||
def __init__(self, ip: str) -> None:
|
def __init__(self, ip: str) -> None:
|
||||||
super().__init__(ip)
|
super().__init__(ip)
|
||||||
self.ip = ip
|
self.ip = ip
|
||||||
|
|
||||||
|
async def get_hostname(self) -> str:
|
||||||
|
return "?"
|
||||||
|
|||||||
@@ -6,3 +6,6 @@ class CGMinerS19(CGMiner, S19):
|
|||||||
def __init__(self, ip: str) -> None:
|
def __init__(self, ip: str) -> None:
|
||||||
super().__init__(ip)
|
super().__init__(ip)
|
||||||
self.ip = ip
|
self.ip = ip
|
||||||
|
|
||||||
|
async def get_hostname(self) -> str:
|
||||||
|
return "?"
|
||||||
|
|||||||
@@ -6,3 +6,6 @@ class CGMinerS19Pro(CGMiner, S19Pro):
|
|||||||
def __init__(self, ip: str) -> None:
|
def __init__(self, ip: str) -> None:
|
||||||
super().__init__(ip)
|
super().__init__(ip)
|
||||||
self.ip = ip
|
self.ip = ip
|
||||||
|
|
||||||
|
async def get_hostname(self) -> str:
|
||||||
|
return "?"
|
||||||
|
|||||||
@@ -6,3 +6,6 @@ class CGMinerS19j(CGMiner, S19j):
|
|||||||
def __init__(self, ip: str) -> None:
|
def __init__(self, ip: str) -> None:
|
||||||
super().__init__(ip)
|
super().__init__(ip)
|
||||||
self.ip = ip
|
self.ip = ip
|
||||||
|
|
||||||
|
async def get_hostname(self) -> str:
|
||||||
|
return "?"
|
||||||
|
|||||||
@@ -6,3 +6,6 @@ class CGMinerS19jPro(CGMiner, S19jPro):
|
|||||||
def __init__(self, ip: str) -> None:
|
def __init__(self, ip: str) -> None:
|
||||||
super().__init__(ip)
|
super().__init__(ip)
|
||||||
self.ip = ip
|
self.ip = ip
|
||||||
|
|
||||||
|
async def get_hostname(self) -> str:
|
||||||
|
return "?"
|
||||||
|
|||||||
@@ -6,3 +6,6 @@ class CGMinerT19(CGMiner, T19):
|
|||||||
def __init__(self, ip: str) -> None:
|
def __init__(self, ip: str) -> None:
|
||||||
super().__init__(ip)
|
super().__init__(ip)
|
||||||
self.ip = ip
|
self.ip = ip
|
||||||
|
|
||||||
|
async def get_hostname(self) -> str:
|
||||||
|
return "?"
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ TABLE_HEADERS = {
|
|||||||
"Hostname",
|
"Hostname",
|
||||||
"Hashrate",
|
"Hashrate",
|
||||||
"Temp",
|
"Temp",
|
||||||
"Pool User",
|
"Pool 1 User",
|
||||||
"Wattage",
|
"Wattage",
|
||||||
],
|
],
|
||||||
"BOARDS": [
|
"BOARDS": [
|
||||||
|
|||||||
@@ -8,6 +8,25 @@ from tools.cfg_util.tables import clear_tables, TableManager
|
|||||||
|
|
||||||
progress_bar_len = 0
|
progress_bar_len = 0
|
||||||
|
|
||||||
|
DATA_HEADER_MAP = {
|
||||||
|
"ip": "IP",
|
||||||
|
"model": "Model",
|
||||||
|
"hostname": "Hostname",
|
||||||
|
"hashrate": "Hashrate",
|
||||||
|
"temperature": "Temp",
|
||||||
|
"wattage": "Wattage",
|
||||||
|
"ideal_chips": "Ideal",
|
||||||
|
"left_chips": "Left Board",
|
||||||
|
"center_chips": "Center Board",
|
||||||
|
"right_chips": "Right Board",
|
||||||
|
"total_chips": "Total",
|
||||||
|
"nominal": "Nominal",
|
||||||
|
"pool_split": "Split",
|
||||||
|
"pool_1_url": "Pool 1",
|
||||||
|
"pool_1_user": "Pool 1 User",
|
||||||
|
"pool_2_url": "Pool 2",
|
||||||
|
"pool_2_user": "Pool 2 User",
|
||||||
|
}
|
||||||
|
|
||||||
DEFAULT_DATA = set()
|
DEFAULT_DATA = set()
|
||||||
|
|
||||||
@@ -95,4 +114,8 @@ async def _get_miner_data(miner):
|
|||||||
|
|
||||||
|
|
||||||
async def _get_data(miner):
|
async def _get_data(miner):
|
||||||
return await miner.get_data()
|
_data = (await miner.get_data()).asdict()
|
||||||
|
data = {}
|
||||||
|
for item in _data.keys():
|
||||||
|
data[DATA_HEADER_MAP[item]] = _data[item]
|
||||||
|
return data
|
||||||
|
|||||||
Reference in New Issue
Block a user