feature: add support for Vnish S19 Pro Hydro.

This commit is contained in:
Brett Rowan
2024-07-12 09:59:03 -06:00
parent 73031eea65
commit 3ca75729b9
5 changed files with 18 additions and 12 deletions

View File

@@ -24,6 +24,7 @@ from pyasic.miners.device.models import (
S19jPro,
S19NoPIC,
S19Pro,
S19ProHydro,
)
@@ -57,3 +58,7 @@ class VNishS19j(VNish, S19j):
class VNishS19jPro(VNish, S19jPro):
pass
class VNishS19ProHydro(VNish, S19ProHydro):
pass

View File

@@ -22,6 +22,7 @@ from .S19 import (
VNishS19jPro,
VNishS19NoPIC,
VNishS19Pro,
VNishS19ProHydro,
VNishS19XP,
)
from .T19 import VNishT19

View File

@@ -17,11 +17,11 @@ from typing import List, Optional
from pyasic.config import MinerConfig
from pyasic.data import AlgoHashRate, Fan, HashBoard, HashUnit
from pyasic.data.pools import PoolMetrics, PoolUrl
from pyasic.errors import APIError
from pyasic.miners.data import DataFunction, DataLocations, DataOptions, RPCAPICommand
from pyasic.miners.device.firmware import LuxOSFirmware
from pyasic.rpc.luxminer import LUXMinerRPCAPI
from pyasic.data.pools import PoolMetrics, PoolUrl
LUXMINER_DATA_LOC = DataLocations(
**{
@@ -53,7 +53,7 @@ LUXMINER_DATA_LOC = DataLocations(
"_get_uptime", [RPCAPICommand("rpc_stats", "stats")]
),
str(DataOptions.POOLS): DataFunction(
"get_pools", [RPCAPICommand("rpc_pools", "pools")]
"_get_pools", [RPCAPICommand("rpc_pools", "pools")]
),
}
)

View File

@@ -386,6 +386,7 @@ MINER_CLASSES = {
"ANTMINER S19J PRO": VNishS19jPro,
"ANTMINER S19A": VNishS19a,
"ANTMINER S19A PRO": VNishS19aPro,
"ANTMINER S19 PRO HYD.": VNishS19ProHydro,
"ANTMINER T19": VNishT19,
"ANTMINER S21": VNishS21,
},

View File

@@ -15,14 +15,13 @@
# ------------------------------------------------------------------------------
from __future__ import annotations
import hashlib
import json
from pathlib import Path
from typing import Any
import httpx
import aiofiles
import aiohttp
import hashlib
from pathlib import Path
import httpx
from pyasic import settings
from pyasic.errors import APIError
@@ -52,7 +51,7 @@ class ePICWebAPI(BaseWebAPI):
try:
if parameters.get("form") is not None:
form_data = parameters["form"]
form_data.add_field('password', self.pwd)
form_data.add_field("password", self.pwd)
response = await client.post(
f"http://{self.ip}:{self.port}/{command}",
timeout=5,
@@ -149,7 +148,7 @@ class ePICWebAPI(BaseWebAPI):
return await self.send_command("capabilities")
async def system_update(self, file: Path | str, keep_settings: bool = True):
"""Perform a system update by uploading a firmware file and sending a
"""Perform a system update by uploading a firmware file and sending a
command to initiate the update."""
# calculate the SHA256 checksum of the firmware file
@@ -161,8 +160,8 @@ class ePICWebAPI(BaseWebAPI):
# prepare the multipart/form-data request
form_data = aiohttp.FormData()
form_data.add_field('checksum', checksum)
form_data.add_field('keepsettings', str(keep_settings).lower())
form_data.add_field('update.zip', open(file, 'rb'), filename='update.zip')
form_data.add_field("checksum", checksum)
form_data.add_field("keepsettings", str(keep_settings).lower())
form_data.add_field("update.zip", open(file, "rb"), filename="update.zip")
await self.send_command("systemupdate", form=form_data)
await self.send_command("systemupdate", form=form_data)