Skip to content

pyasic

nano Models

Avalon Nano 3s (Stock)

  • Shutdowns
  • Power Modes
  • Setpoints
  • Presets

Bases: AvalonMiner, AvalonNano3s

Source code in pyasic/miners/avalonminer/cgminer/nano/nano3.py
class CGMinerAvalonNano3s(AvalonMiner, AvalonNano3s):

    data_locations = AVALON_NANO3S_DATA_LOC

    async def _get_wattage(self, rpc_stats: dict = None) -> Optional[int]:
        if rpc_stats is None:
            try:
                rpc_stats = await self.rpc.stats()
            except APIError:
                pass

        if rpc_stats is not None:
            try:
                unparsed_stats = rpc_stats["STATS"][0]["MM ID0"]
                parsed_stats = self.parse_stats(unparsed_stats)
                return int(parsed_stats["PS"][6])
            except (IndexError, KeyError, ValueError, TypeError):
                pass

    async def _get_hashrate(self, rpc_stats: dict = None) -> Optional[AlgoHashRate]:
        if rpc_stats is None:
            try:
                rpc_stats = await self.rpc.stats()
            except APIError:
                pass

        if rpc_stats is not None:
            try:
                unparsed_stats = rpc_stats["STATS"][0]["MM ID0"]
                parsed_stats = self.parse_stats(unparsed_stats)
                return self.algo.hashrate(
                    rate=float(parsed_stats["GHSspd"][0]), unit=self.algo.unit.GH
                ).into(self.algo.unit.default)
            except (IndexError, KeyError, ValueError, TypeError):
                pass

    async def _get_hashboards(self, rpc_stats: dict = None) -> List[HashBoard]:
        hashboards = await AvalonMiner._get_hashboards(self, rpc_stats)

        if rpc_stats is None:
            try:
                rpc_stats = await self.rpc.stats()
            except APIError:
                pass

        if rpc_stats is not None:

            try:
                unparsed_stats = rpc_stats["STATS"][0]["MM ID0"]
                parsed_stats = self.parse_stats(unparsed_stats)
            except (IndexError, KeyError, ValueError, TypeError):
                return hashboards

            for board in range(len(hashboards)):
                try:
                    board_hr = parsed_stats["GHSspd"][board]
                    hashboards[board].hashrate = self.algo.hashrate(
                        rate=float(board_hr), unit=self.algo.unit.GH
                    ).into(self.algo.unit.default)
                except LookupError:
                    pass

        return hashboards

Avalon Nano 3 (Stock)

  • Shutdowns
  • Power Modes
  • Setpoints
  • Presets

Bases: AvalonMiner, AvalonNano3

Source code in pyasic/miners/avalonminer/cgminer/nano/nano3.py
class CGMinerAvalonNano3(AvalonMiner, AvalonNano3):
    _web_cls = AvalonMinerWebAPI
    web: AvalonMinerWebAPI

    data_locations = AVALON_NANO_DATA_LOC

    async def _get_mac(self, web_minerinfo: dict) -> Optional[dict]:
        if web_minerinfo is None:
            try:
                web_minerinfo = await self.web.minerinfo()
            except APIError:
                pass

        if web_minerinfo is not None:
            try:
                mac = web_minerinfo.get("mac")
                if mac is not None:
                    return mac.upper()
            except (KeyError, ValueError):
                pass