Skip to content
This repository was archived by the owner on Jul 6, 2026. It is now read-only.

Commit 68299fa

Browse files
Avalon Nano3s Fixes (#374)
* Avalon Nano3s Fixes * Fix to handle both cases * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 1466039 commit 68299fa

2 files changed

Lines changed: 15 additions & 14 deletions

File tree

pyasic/miners/avalonminer/cgminer/nano/nano3.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,7 @@ async def _get_wattage(self, rpc_estats: dict = None) -> Optional[int]:
178178

179179
if rpc_estats is not None:
180180
try:
181-
unparsed_estats = rpc_estats["STATS"][0]["MM ID0"]
182-
parsed_estats = self.parse_estats(unparsed_estats)
181+
parsed_estats = self.parse_estats(rpc_estats)["STATS"][0]["MM ID0"]
183182
return int(parsed_estats["PS"][6])
184183
except (IndexError, KeyError, ValueError, TypeError):
185184
pass
@@ -193,8 +192,7 @@ async def _get_hashrate(self, rpc_estats: dict = None) -> Optional[AlgoHashRate]
193192

194193
if rpc_estats is not None:
195194
try:
196-
unparsed_estats = rpc_estats["STATS"][0]["MM ID0"]
197-
parsed_estats = self.parse_estats(unparsed_estats)
195+
parsed_estats = self.parse_estats(rpc_estats)["STATS"][0]["MM ID0"]
198196
return self.algo.hashrate(
199197
rate=float(parsed_estats["GHSspd"]), unit=self.algo.unit.GH
200198
).into(self.algo.unit.default)
@@ -212,14 +210,13 @@ async def _get_hashboards(self, rpc_estats: dict = None) -> List[HashBoard]:
212210

213211
if rpc_estats is not None:
214212
try:
215-
unparsed_estats = rpc_estats["STATS"][0]["MM ID0"]
216-
parsed_estats = self.parse_estats(unparsed_estats)
213+
parsed_estats = self.parse_estats(rpc_estats)["STATS"][0]["MM ID0"]
217214
except (IndexError, KeyError, ValueError, TypeError):
218215
return hashboards
219216

220217
for board in range(len(hashboards)):
221218
try:
222-
board_hr = parsed_estats["GHSspd"][board]
219+
board_hr = parsed_estats["GHSspd"]
223220
hashboards[board].hashrate = self.algo.hashrate(
224221
rate=float(board_hr), unit=self.algo.unit.GH
225222
).into(self.algo.unit.default)

pyasic/miners/backends/avalonminer.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -305,10 +305,12 @@ async def _get_hashboards(self, rpc_estats: dict = None) -> List[HashBoard]:
305305
hashboards[board].chip_temp = int(
306306
parsed_estats["STATS"][0]["MM ID0"]["MTmax"][board]
307307
)
308-
except LookupError:
308+
except (LookupError, TypeError):
309309
try:
310310
hashboards[board].chip_temp = int(
311-
parsed_estats["STATS"][0]["MM ID0"]["Tmax"]
311+
parsed_estats["STATS"][0]["MM ID0"].get(
312+
"Tmax", parsed_estats["STATS"][0]["MM ID0"]["TMax"]
313+
)
312314
)
313315
except LookupError:
314316
pass
@@ -317,10 +319,12 @@ async def _get_hashboards(self, rpc_estats: dict = None) -> List[HashBoard]:
317319
hashboards[board].temp = int(
318320
parsed_estats["STATS"][0]["MM ID0"]["MTmax"][board]
319321
)
320-
except LookupError:
322+
except (LookupError, TypeError):
321323
try:
322324
hashboards[board].temp = int(
323-
parsed_estats["STATS"][0]["MM ID0"]["Tavg"]
325+
parsed_estats["STATS"][0]["MM ID0"].get(
326+
"Tavg", parsed_estats["STATS"][0]["MM ID0"]["TAvg"]
327+
)
324328
)
325329
except LookupError:
326330
pass
@@ -329,7 +333,7 @@ async def _get_hashboards(self, rpc_estats: dict = None) -> List[HashBoard]:
329333
hashboards[board].inlet_temp = int(
330334
parsed_estats["STATS"][0]["MM ID0"]["MTavg"][board]
331335
)
332-
except LookupError:
336+
except (LookupError, TypeError):
333337
try:
334338
hashboards[board].inlet_temp = int(
335339
parsed_estats["STATS"][0]["MM ID0"]["HBITemp"]
@@ -341,7 +345,7 @@ async def _get_hashboards(self, rpc_estats: dict = None) -> List[HashBoard]:
341345
hashboards[board].outlet_temp = int(
342346
parsed_estats["STATS"][0]["MM ID0"]["MTmax"][board]
343347
)
344-
except LookupError:
348+
except (LookupError, TypeError):
345349
try:
346350
hashboards[board].outlet_temp = int(
347351
parsed_estats["STATS"][0]["MM ID0"]["HBOTemp"]
@@ -356,7 +360,7 @@ async def _get_hashboards(self, rpc_estats: dict = None) -> List[HashBoard]:
356360
hashboards[board].chips = len(
357361
[item for item in chip_data if not item == "0"]
358362
)
359-
except LookupError:
363+
except (LookupError, TypeError):
360364
try:
361365
chip_data = parsed_estats["STATS"][0]["HBinfo"][f"HB{board}"][
362366
f"PVT_T{board}"

0 commit comments

Comments
 (0)