Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 15 additions & 7 deletions pyasic/miners/backends/vnish.py
Original file line number Diff line number Diff line change
Expand Up @@ -310,16 +310,24 @@ async def _get_errors( # type: ignore[override]
async def get_config(self) -> MinerConfig:
try:
web_settings = await self.web.settings()
web_presets_dict = await self.web.autotune_presets()
web_presets = (
web_presets_dict.get("presets", []) if web_presets_dict else []
web_presets_response = await self.web.autotune_presets()
if isinstance(web_presets_response, dict):
web_presets = web_presets_response.get("presets", [])
elif isinstance(web_presets_response, list):
web_presets = web_presets_response
else:
web_presets = []
_perf_summary_raw = await self.web.perf_summary()
web_perf_summary = (
_perf_summary_raw if isinstance(_perf_summary_raw, dict) else {}
)
self.config = MinerConfig.from_vnish(
web_settings, web_presets, web_perf_summary
)
web_perf_summary = (await self.web.perf_summary()) or {}
except APIError:
return self.config or MinerConfig()
self.config = MinerConfig.from_vnish(
web_settings, web_presets, web_perf_summary
)
except Exception:
return self.config or MinerConfig()
return self.config

async def set_power_limit(self, wattage: int) -> bool:
Expand Down
6 changes: 3 additions & 3 deletions pyasic/miners/factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -936,7 +936,7 @@ def _parse_web_type(web_text: str, web_resp: httpx.Response) -> MinerTypes | Non
return None

async def _get_miner_socket(self, ip: str) -> MinerTypes | None:
commands = ["version", "devdetails"]
commands = ["version", "devdetails", "stats"]
tasks = [asyncio.create_task(self._socket_ping(ip, cmd)) for cmd in commands]

data = await concurrent_get_first_result(
Expand Down Expand Up @@ -1014,6 +1014,8 @@ def _parse_socket_type(data: str) -> MinerTypes | None:
return MinerTypes.MARATHON
if "RWGLR" in upper_data:
return MinerTypes.MSKMINER
if "VNISH" in upper_data:
return MinerTypes.VNISH
if "ANTMINER" in upper_data and "DEVDETAILS" not in upper_data:
return MinerTypes.ANTMINER
if (
Expand All @@ -1028,8 +1030,6 @@ def _parse_socket_type(data: str) -> MinerTypes | None:
return MinerTypes.AVALONMINER
if "GCMINER" in upper_data or "FLUXOS" in upper_data:
return MinerTypes.AURADINE
if "VNISH" in upper_data:
return MinerTypes.VNISH
return None

async def send_web_command(
Expand Down