feature: add innosilicon support for new HashBoard format.
This commit is contained in:
@@ -17,7 +17,7 @@ from pyasic.miners._types import InnosiliconT3HPlus # noqa - Ignore access to _
|
|||||||
from pyasic.data import MinerData
|
from pyasic.data import MinerData
|
||||||
from pyasic.data.error_codes import InnosiliconError, MinerErrorData
|
from pyasic.data.error_codes import InnosiliconError, MinerErrorData
|
||||||
from pyasic.settings import PyasicSettings
|
from pyasic.settings import PyasicSettings
|
||||||
from pyasic.config import MinerConfig
|
from pyasic.config import MinerConfig, HashBoard
|
||||||
from pyasic.errors import APIError
|
from pyasic.errors import APIError
|
||||||
|
|
||||||
import httpx
|
import httpx
|
||||||
@@ -158,7 +158,11 @@ class CGMinerInnosiliconT3HPlus(CGMiner, InnosiliconT3HPlus):
|
|||||||
return errors
|
return errors
|
||||||
|
|
||||||
async def get_data(self) -> MinerData:
|
async def get_data(self) -> MinerData:
|
||||||
data = MinerData(ip=str(self.ip), ideal_chips=self.nominal_chips * 3)
|
data = MinerData(
|
||||||
|
ip=str(self.ip),
|
||||||
|
ideal_chips=self.nominal_chips * self.ideal_hashboards,
|
||||||
|
ideal_hashboards=self.ideal_hashboards,
|
||||||
|
)
|
||||||
|
|
||||||
board_offset = -1
|
board_offset = -1
|
||||||
fan_offset = -1
|
fan_offset = -1
|
||||||
@@ -215,32 +219,22 @@ class CGMinerInnosiliconT3HPlus(CGMiner, InnosiliconT3HPlus):
|
|||||||
if stats:
|
if stats:
|
||||||
stats = stats[0]
|
stats = stats[0]
|
||||||
if stats.get("STATS"):
|
if stats.get("STATS"):
|
||||||
board_map = {0: "left", 1: "center", 2: "right"}
|
|
||||||
for idx, board in enumerate(stats["STATS"]):
|
for idx, board in enumerate(stats["STATS"]):
|
||||||
chips = board.get("Num active chips")
|
temp_board = HashBoard(
|
||||||
if chips:
|
slot=idx,
|
||||||
setattr(data, f"{board_map[idx]}_chips", chips)
|
chip_temp=round(board.get("Temp")),
|
||||||
temp = board.get("Temp")
|
chips=board.get("Num active chips"),
|
||||||
if temp:
|
missing=False if board.get("Num active chips") > 0 else True,
|
||||||
setattr(data, f"{board_map[idx]}_board_chip_temp", temp)
|
expected_chips=self.nominal_chips,
|
||||||
|
)
|
||||||
|
data.hashboards.append(temp_board)
|
||||||
|
|
||||||
if all_data:
|
if all_data:
|
||||||
if all_data.get("chain"):
|
if all_data.get("chain"):
|
||||||
board_map = {0: "left", 1: "center", 2: "right"}
|
|
||||||
for idx, board in enumerate(all_data["chain"]):
|
for idx, board in enumerate(all_data["chain"]):
|
||||||
temp = board.get("Temp max")
|
data.hashboards[idx].temp = round(board.get("Temp min"))
|
||||||
if temp:
|
data.hashboards[idx].hashrate = round(board.get("Hash Rate H") / 1000000000000, 2)
|
||||||
setattr(data, f"{board_map[idx]}_board_chip_temp", temp)
|
|
||||||
temp_board = board.get("Temp min")
|
|
||||||
if temp_board:
|
|
||||||
setattr(data, f"{board_map[idx]}_board_temp", temp_board)
|
|
||||||
hr = board.get("Hash Rate H")
|
|
||||||
if hr:
|
|
||||||
setattr(
|
|
||||||
data,
|
|
||||||
f"{board_map[idx]}_board_hashrate",
|
|
||||||
round(hr / 1000000000000, 2),
|
|
||||||
)
|
|
||||||
if all_data.get("fansSpeed"):
|
if all_data.get("fansSpeed"):
|
||||||
speed = round((all_data["fansSpeed"] * 6000) / 100)
|
speed = round((all_data["fansSpeed"] * 6000) / 100)
|
||||||
for fan in range(self.fan_count):
|
for fan in range(self.fan_count):
|
||||||
|
|||||||
Reference in New Issue
Block a user