improved bmminer with a fan and board offset
This commit is contained in:
@@ -130,9 +130,8 @@ class BMMiner(BaseMiner):
|
|||||||
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 * 3)
|
||||||
|
|
||||||
offset = 1
|
board_offset = 1
|
||||||
if self.model == "S9":
|
fan_offset = 1
|
||||||
offset = 6
|
|
||||||
|
|
||||||
model = await self.get_model()
|
model = await self.get_model()
|
||||||
hostname = await self.get_hostname()
|
hostname = await self.get_hostname()
|
||||||
@@ -168,27 +167,33 @@ class BMMiner(BaseMiner):
|
|||||||
boards = stats.get("STATS")
|
boards = stats.get("STATS")
|
||||||
if boards:
|
if boards:
|
||||||
if len(boards) > 0:
|
if len(boards) > 0:
|
||||||
data.left_chips = boards[1].get(f"chain_acn{offset}")
|
for board_num in range(16):
|
||||||
data.center_chips = boards[1].get(f"chain_acn{offset+1}")
|
if (
|
||||||
data.right_chips = boards[1].get(f"chain_acn{offset+2}")
|
not boards[1].get(f"chain_acn{board_num+1}") == 0
|
||||||
|
and board_offset == 1
|
||||||
|
):
|
||||||
|
board_offset = board_num + 1
|
||||||
|
|
||||||
|
data.left_chips = boards[1].get(f"chain_acn{board_offset}")
|
||||||
|
data.center_chips = boards[1].get(f"chain_acn{board_offset+1}")
|
||||||
|
data.right_chips = boards[1].get(f"chain_acn{board_offset+2}")
|
||||||
|
|
||||||
if stats:
|
if stats:
|
||||||
temp = stats.get("STATS")
|
temp = stats.get("STATS")
|
||||||
if temp:
|
if temp:
|
||||||
if len(temp) > 1:
|
if len(temp) > 1:
|
||||||
if self.model == "S9":
|
for fan_num in range(8):
|
||||||
data.fan_1 = temp[1].get("fan5")
|
if not temp[1].get(f"fan{fan_num+1}") == 0 and fan_offset == 1:
|
||||||
data.fan_2 = temp[1].get("fan6")
|
fan_offset = fan_num + 1
|
||||||
else:
|
for fan in range(self.fan_count):
|
||||||
data.fan_1 = temp[1].get("fan1")
|
setattr(
|
||||||
data.fan_2 = temp[1].get("fan2")
|
data, f"fan_{fan + 1}", temp[1].get(f"fan{fan_offset+fan}")
|
||||||
data.fan_3 = temp[1].get("fan3")
|
)
|
||||||
data.fan_4 = temp[1].get("fan4")
|
|
||||||
|
|
||||||
board_map = {0: "left_board", 1: "center_board", 2: "right_board"}
|
board_map = {0: "left_board", 1: "center_board", 2: "right_board"}
|
||||||
for item in range(3):
|
for item in range(3):
|
||||||
board_temp = temp[1].get(f"temp{item + offset}")
|
board_temp = temp[1].get(f"temp{item + board_offset}")
|
||||||
chip_temp = temp[1].get(f"temp2_{item + offset}")
|
chip_temp = temp[1].get(f"temp2_{item + board_offset}")
|
||||||
setattr(data, f"{board_map[item]}_chip_temp", chip_temp)
|
setattr(data, f"{board_map[item]}_chip_temp", chip_temp)
|
||||||
setattr(data, f"{board_map[item]}_temp", board_temp)
|
setattr(data, f"{board_map[item]}_temp", board_temp)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user