feature: add support for Vnish S19 Pro Hydro.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -22,6 +22,7 @@ from .S19 import (
|
||||
VNishS19jPro,
|
||||
VNishS19NoPIC,
|
||||
VNishS19Pro,
|
||||
VNishS19ProHydro,
|
||||
VNishS19XP,
|
||||
)
|
||||
from .T19 import VNishT19
|
||||
|
||||
@@ -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")]
|
||||
),
|
||||
}
|
||||
)
|
||||
|
||||
@@ -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,
|
||||
},
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user