refactor: remove parameters from get_{x} functions and move them to _get_{x}(**params). Add miner.fw_str, and miner.raw_model. Remove model from get_data exclude. Swap fan_count to expected_fans.
This commit is contained in:
@@ -35,74 +35,73 @@ from pyasic.miners.base import (
|
|||||||
BTMINER_DATA_LOC = DataLocations(
|
BTMINER_DATA_LOC = DataLocations(
|
||||||
**{
|
**{
|
||||||
str(DataOptions.MAC): DataFunction(
|
str(DataOptions.MAC): DataFunction(
|
||||||
"get_mac",
|
"_get_mac",
|
||||||
[
|
[
|
||||||
RPCAPICommand("api_summary", "summary"),
|
RPCAPICommand("api_summary", "summary"),
|
||||||
RPCAPICommand("api_get_miner_info", "get_miner_info"),
|
RPCAPICommand("api_get_miner_info", "get_miner_info"),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
str(DataOptions.MODEL): DataFunction("get_model"),
|
|
||||||
str(DataOptions.API_VERSION): DataFunction(
|
str(DataOptions.API_VERSION): DataFunction(
|
||||||
"get_api_ver", [RPCAPICommand("api_get_version", "get_version")]
|
"_get_api_ver", [RPCAPICommand("api_get_version", "get_version")]
|
||||||
),
|
),
|
||||||
str(DataOptions.FW_VERSION): DataFunction(
|
str(DataOptions.FW_VERSION): DataFunction(
|
||||||
"get_fw_ver",
|
"_get_fw_ver",
|
||||||
[
|
[
|
||||||
RPCAPICommand("api_get_version", "get_version"),
|
RPCAPICommand("api_get_version", "get_version"),
|
||||||
RPCAPICommand("api_summary", "summary"),
|
RPCAPICommand("api_summary", "summary"),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
str(DataOptions.HOSTNAME): DataFunction(
|
str(DataOptions.HOSTNAME): DataFunction(
|
||||||
"get_hostname", [RPCAPICommand("api_get_miner_info", "get_miner_info")]
|
"_get_hostname", [RPCAPICommand("api_get_miner_info", "get_miner_info")]
|
||||||
),
|
),
|
||||||
str(DataOptions.HASHRATE): DataFunction(
|
str(DataOptions.HASHRATE): DataFunction(
|
||||||
"get_hashrate", [RPCAPICommand("api_summary", "summary")]
|
"_get_hashrate", [RPCAPICommand("api_summary", "summary")]
|
||||||
),
|
),
|
||||||
str(DataOptions.EXPECTED_HASHRATE): DataFunction(
|
str(DataOptions.EXPECTED_HASHRATE): DataFunction(
|
||||||
"get_expected_hashrate", [RPCAPICommand("api_summary", "summary")]
|
"_get_expected_hashrate", [RPCAPICommand("api_summary", "summary")]
|
||||||
),
|
),
|
||||||
str(DataOptions.HASHBOARDS): DataFunction(
|
str(DataOptions.HASHBOARDS): DataFunction(
|
||||||
"get_hashboards", [RPCAPICommand("api_devs", "devs")]
|
"_get_hashboards", [RPCAPICommand("api_devs", "devs")]
|
||||||
),
|
),
|
||||||
str(DataOptions.ENVIRONMENT_TEMP): DataFunction(
|
str(DataOptions.ENVIRONMENT_TEMP): DataFunction(
|
||||||
"get_env_temp", [RPCAPICommand("api_summary", "summary")]
|
"_get_env_temp", [RPCAPICommand("api_summary", "summary")]
|
||||||
),
|
),
|
||||||
str(DataOptions.WATTAGE): DataFunction(
|
str(DataOptions.WATTAGE): DataFunction(
|
||||||
"get_wattage", [RPCAPICommand("api_summary", "summary")]
|
"_get_wattage", [RPCAPICommand("api_summary", "summary")]
|
||||||
),
|
),
|
||||||
str(DataOptions.WATTAGE_LIMIT): DataFunction(
|
str(DataOptions.WATTAGE_LIMIT): DataFunction(
|
||||||
"get_wattage_limit", [RPCAPICommand("api_summary", "summary")]
|
"_get_wattage_limit", [RPCAPICommand("api_summary", "summary")]
|
||||||
),
|
),
|
||||||
str(DataOptions.FANS): DataFunction(
|
str(DataOptions.FANS): DataFunction(
|
||||||
"get_fans",
|
"_get_fans",
|
||||||
[
|
[
|
||||||
RPCAPICommand("api_summary", "summary"),
|
RPCAPICommand("api_summary", "summary"),
|
||||||
RPCAPICommand("api_get_psu", "get_psu"),
|
RPCAPICommand("api_get_psu", "get_psu"),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
str(DataOptions.FAN_PSU): DataFunction(
|
str(DataOptions.FAN_PSU): DataFunction(
|
||||||
"get_fan_psu",
|
"_get_fan_psu",
|
||||||
[
|
[
|
||||||
RPCAPICommand("api_summary", "summary"),
|
RPCAPICommand("api_summary", "summary"),
|
||||||
RPCAPICommand("api_get_psu", "get_psu"),
|
RPCAPICommand("api_get_psu", "get_psu"),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
str(DataOptions.ERRORS): DataFunction(
|
str(DataOptions.ERRORS): DataFunction(
|
||||||
"get_errors",
|
"_get_errors",
|
||||||
[
|
[
|
||||||
RPCAPICommand("api_get_error_code", "get_error_code"),
|
RPCAPICommand("api_get_error_code", "get_error_code"),
|
||||||
RPCAPICommand("api_summary", "summary"),
|
RPCAPICommand("api_summary", "summary"),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
str(DataOptions.FAULT_LIGHT): DataFunction(
|
str(DataOptions.FAULT_LIGHT): DataFunction(
|
||||||
"get_fault_light",
|
"_get_fault_light",
|
||||||
[RPCAPICommand("api_get_miner_info", "get_miner_info")],
|
[RPCAPICommand("api_get_miner_info", "get_miner_info")],
|
||||||
),
|
),
|
||||||
str(DataOptions.IS_MINING): DataFunction(
|
str(DataOptions.IS_MINING): DataFunction(
|
||||||
"is_mining", [RPCAPICommand("api_status", "status")]
|
"_is_mining", [RPCAPICommand("api_status", "status")]
|
||||||
),
|
),
|
||||||
str(DataOptions.UPTIME): DataFunction(
|
str(DataOptions.UPTIME): DataFunction(
|
||||||
"get_uptime", [RPCAPICommand("api_summary", "summary")]
|
"_get_uptime", [RPCAPICommand("api_summary", "summary")]
|
||||||
),
|
),
|
||||||
str(DataOptions.CONFIG): DataFunction("get_config"),
|
str(DataOptions.CONFIG): DataFunction("get_config"),
|
||||||
}
|
}
|
||||||
@@ -243,7 +242,7 @@ class BTMiner(BaseMiner):
|
|||||||
else:
|
else:
|
||||||
cfg = MinerConfig()
|
cfg = MinerConfig()
|
||||||
|
|
||||||
is_mining = await self.is_mining(status)
|
is_mining = await self._is_mining(status)
|
||||||
if not is_mining:
|
if not is_mining:
|
||||||
cfg.mining_mode = MiningModeConfig.sleep()
|
cfg.mining_mode = MiningModeConfig.sleep()
|
||||||
return cfg
|
return cfg
|
||||||
@@ -287,7 +286,7 @@ class BTMiner(BaseMiner):
|
|||||||
### DATA GATHERING FUNCTIONS (get_{some_data}) ###
|
### DATA GATHERING FUNCTIONS (get_{some_data}) ###
|
||||||
##################################################
|
##################################################
|
||||||
|
|
||||||
async def get_mac(
|
async def _get_mac(
|
||||||
self, api_summary: dict = None, api_get_miner_info: dict = None
|
self, api_summary: dict = None, api_get_miner_info: dict = None
|
||||||
) -> Optional[str]:
|
) -> Optional[str]:
|
||||||
if not api_get_miner_info:
|
if not api_get_miner_info:
|
||||||
@@ -316,21 +315,7 @@ class BTMiner(BaseMiner):
|
|||||||
except (KeyError, IndexError):
|
except (KeyError, IndexError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
async def get_version(
|
async def _get_api_ver(self, api_get_version: dict = None) -> Optional[str]:
|
||||||
self, api_get_version: dict = None, api_summary: dict = None
|
|
||||||
) -> Tuple[Optional[str], Optional[str]]:
|
|
||||||
miner_version = namedtuple("MinerVersion", "api_ver fw_ver")
|
|
||||||
api_ver = await self.get_api_ver(api_get_version=api_get_version)
|
|
||||||
fw_ver = await self.get_fw_ver(
|
|
||||||
api_get_version=api_get_version, api_summary=api_summary
|
|
||||||
)
|
|
||||||
return miner_version(api_ver, fw_ver)
|
|
||||||
|
|
||||||
async def get_api_ver(self, api_get_version: dict = None) -> Optional[str]:
|
|
||||||
# Check to see if the version info is already cached
|
|
||||||
if self.api_ver:
|
|
||||||
return self.api_ver
|
|
||||||
|
|
||||||
if not api_get_version:
|
if not api_get_version:
|
||||||
try:
|
try:
|
||||||
api_get_version = await self.api.get_version()
|
api_get_version = await self.api.get_version()
|
||||||
@@ -353,13 +338,9 @@ class BTMiner(BaseMiner):
|
|||||||
|
|
||||||
return self.api_ver
|
return self.api_ver
|
||||||
|
|
||||||
async def get_fw_ver(
|
async def _get_fw_ver(
|
||||||
self, api_get_version: dict = None, api_summary: dict = None
|
self, api_get_version: dict = None, api_summary: dict = None
|
||||||
) -> Optional[str]:
|
) -> Optional[str]:
|
||||||
# Check to see if the version info is already cached
|
|
||||||
if self.fw_ver:
|
|
||||||
return self.fw_ver
|
|
||||||
|
|
||||||
if not api_get_version:
|
if not api_get_version:
|
||||||
try:
|
try:
|
||||||
api_get_version = await self.api.get_version()
|
api_get_version = await self.api.get_version()
|
||||||
@@ -392,7 +373,7 @@ class BTMiner(BaseMiner):
|
|||||||
|
|
||||||
return self.fw_ver
|
return self.fw_ver
|
||||||
|
|
||||||
async def get_hostname(self, api_get_miner_info: dict = None) -> Optional[str]:
|
async def _get_hostname(self, api_get_miner_info: dict = None) -> Optional[str]:
|
||||||
hostname = None
|
hostname = None
|
||||||
if not api_get_miner_info:
|
if not api_get_miner_info:
|
||||||
try:
|
try:
|
||||||
@@ -408,7 +389,7 @@ class BTMiner(BaseMiner):
|
|||||||
|
|
||||||
return hostname
|
return hostname
|
||||||
|
|
||||||
async def get_hashrate(self, api_summary: dict = None) -> Optional[float]:
|
async def _get_hashrate(self, api_summary: dict = None) -> Optional[float]:
|
||||||
# get hr from API
|
# get hr from API
|
||||||
if not api_summary:
|
if not api_summary:
|
||||||
try:
|
try:
|
||||||
@@ -422,7 +403,7 @@ class BTMiner(BaseMiner):
|
|||||||
except (KeyError, IndexError):
|
except (KeyError, IndexError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
async def get_hashboards(self, api_devs: dict = None) -> List[HashBoard]:
|
async def _get_hashboards(self, api_devs: dict = None) -> List[HashBoard]:
|
||||||
hashboards = [
|
hashboards = [
|
||||||
HashBoard(slot=i, expected_chips=self.expected_chips)
|
HashBoard(slot=i, expected_chips=self.expected_chips)
|
||||||
for i in range(self.expected_hashboards)
|
for i in range(self.expected_hashboards)
|
||||||
@@ -457,7 +438,7 @@ class BTMiner(BaseMiner):
|
|||||||
|
|
||||||
return hashboards
|
return hashboards
|
||||||
|
|
||||||
async def get_env_temp(self, api_summary: dict = None) -> Optional[float]:
|
async def _get_env_temp(self, api_summary: dict = None) -> Optional[float]:
|
||||||
if not api_summary:
|
if not api_summary:
|
||||||
try:
|
try:
|
||||||
api_summary = await self.api.summary()
|
api_summary = await self.api.summary()
|
||||||
@@ -470,7 +451,7 @@ class BTMiner(BaseMiner):
|
|||||||
except (KeyError, IndexError):
|
except (KeyError, IndexError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
async def get_wattage(self, api_summary: dict = None) -> Optional[int]:
|
async def _get_wattage(self, api_summary: dict = None) -> Optional[int]:
|
||||||
if not api_summary:
|
if not api_summary:
|
||||||
try:
|
try:
|
||||||
api_summary = await self.api.summary()
|
api_summary = await self.api.summary()
|
||||||
@@ -484,7 +465,7 @@ class BTMiner(BaseMiner):
|
|||||||
except (KeyError, IndexError):
|
except (KeyError, IndexError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
async def get_wattage_limit(self, api_summary: dict = None) -> Optional[int]:
|
async def _get_wattage_limit(self, api_summary: dict = None) -> Optional[int]:
|
||||||
if not api_summary:
|
if not api_summary:
|
||||||
try:
|
try:
|
||||||
api_summary = await self.api.summary()
|
api_summary = await self.api.summary()
|
||||||
@@ -497,7 +478,7 @@ class BTMiner(BaseMiner):
|
|||||||
except (KeyError, IndexError):
|
except (KeyError, IndexError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
async def get_fans(
|
async def _get_fans(
|
||||||
self, api_summary: dict = None, api_get_psu: dict = None
|
self, api_summary: dict = None, api_get_psu: dict = None
|
||||||
) -> List[Fan]:
|
) -> List[Fan]:
|
||||||
if not api_summary:
|
if not api_summary:
|
||||||
@@ -506,10 +487,10 @@ class BTMiner(BaseMiner):
|
|||||||
except APIError:
|
except APIError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
fans = [Fan() for _ in range(self.fan_count)]
|
fans = [Fan() for _ in range(self.expected_fans)]
|
||||||
if api_summary:
|
if api_summary:
|
||||||
try:
|
try:
|
||||||
if self.fan_count > 0:
|
if self.expected_fans > 0:
|
||||||
fans = [
|
fans = [
|
||||||
Fan(api_summary["SUMMARY"][0].get("Fan Speed In", 0)),
|
Fan(api_summary["SUMMARY"][0].get("Fan Speed In", 0)),
|
||||||
Fan(api_summary["SUMMARY"][0].get("Fan Speed Out", 0)),
|
Fan(api_summary["SUMMARY"][0].get("Fan Speed Out", 0)),
|
||||||
@@ -519,7 +500,7 @@ class BTMiner(BaseMiner):
|
|||||||
|
|
||||||
return fans
|
return fans
|
||||||
|
|
||||||
async def get_fan_psu(
|
async def _get_fan_psu(
|
||||||
self, api_summary: dict = None, api_get_psu: dict = None
|
self, api_summary: dict = None, api_get_psu: dict = None
|
||||||
) -> Optional[int]:
|
) -> Optional[int]:
|
||||||
if not api_summary:
|
if not api_summary:
|
||||||
@@ -546,7 +527,7 @@ class BTMiner(BaseMiner):
|
|||||||
except (KeyError, TypeError):
|
except (KeyError, TypeError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
async def get_errors(
|
async def _get_errors(
|
||||||
self, api_summary: dict = None, api_get_error_code: dict = None
|
self, api_summary: dict = None, api_get_error_code: dict = None
|
||||||
) -> List[MinerErrorData]:
|
) -> List[MinerErrorData]:
|
||||||
errors = []
|
errors = []
|
||||||
@@ -581,7 +562,7 @@ class BTMiner(BaseMiner):
|
|||||||
|
|
||||||
return errors
|
return errors
|
||||||
|
|
||||||
async def get_expected_hashrate(self, api_summary: dict = None):
|
async def _get_expected_hashrate(self, api_summary: dict = None):
|
||||||
if not api_summary:
|
if not api_summary:
|
||||||
try:
|
try:
|
||||||
api_summary = await self.api.summary()
|
api_summary = await self.api.summary()
|
||||||
@@ -596,7 +577,7 @@ class BTMiner(BaseMiner):
|
|||||||
except (KeyError, IndexError):
|
except (KeyError, IndexError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
async def get_fault_light(self, api_get_miner_info: dict = None) -> bool:
|
async def _get_fault_light(self, api_get_miner_info: dict = None) -> bool:
|
||||||
if not api_get_miner_info:
|
if not api_get_miner_info:
|
||||||
try:
|
try:
|
||||||
api_get_miner_info = await self.api.get_miner_info()
|
api_get_miner_info = await self.api.get_miner_info()
|
||||||
@@ -634,7 +615,7 @@ class BTMiner(BaseMiner):
|
|||||||
async def set_hostname(self, hostname: str):
|
async def set_hostname(self, hostname: str):
|
||||||
await self.api.set_hostname(hostname)
|
await self.api.set_hostname(hostname)
|
||||||
|
|
||||||
async def is_mining(self, api_status: dict = None) -> Optional[bool]:
|
async def _is_mining(self, api_status: dict = None) -> Optional[bool]:
|
||||||
if not api_status:
|
if not api_status:
|
||||||
try:
|
try:
|
||||||
api_status = await self.api.status()
|
api_status = await self.api.status()
|
||||||
@@ -653,7 +634,7 @@ class BTMiner(BaseMiner):
|
|||||||
except LookupError:
|
except LookupError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
async def get_uptime(self, api_summary: dict = None) -> Optional[int]:
|
async def _get_uptime(self, api_summary: dict = None) -> Optional[int]:
|
||||||
if not api_summary:
|
if not api_summary:
|
||||||
try:
|
try:
|
||||||
api_summary = await self.api.summary()
|
api_summary = await self.api.summary()
|
||||||
|
|||||||
@@ -28,42 +28,41 @@ from pyasic.miners.base import DataFunction, DataLocations, DataOptions, RPCAPIC
|
|||||||
AVALON_DATA_LOC = DataLocations(
|
AVALON_DATA_LOC = DataLocations(
|
||||||
**{
|
**{
|
||||||
str(DataOptions.MAC): DataFunction(
|
str(DataOptions.MAC): DataFunction(
|
||||||
"get_mac", [RPCAPICommand("api_version", "version")]
|
"_get_mac", [RPCAPICommand("api_version", "version")]
|
||||||
),
|
),
|
||||||
str(DataOptions.MODEL): DataFunction("get_model"),
|
|
||||||
str(DataOptions.API_VERSION): DataFunction(
|
str(DataOptions.API_VERSION): DataFunction(
|
||||||
"get_api_ver", [RPCAPICommand("api_version", "version")]
|
"_get_api_ver", [RPCAPICommand("api_version", "version")]
|
||||||
),
|
),
|
||||||
str(DataOptions.FW_VERSION): DataFunction(
|
str(DataOptions.FW_VERSION): DataFunction(
|
||||||
"get_fw_ver", [RPCAPICommand("api_version", "version")]
|
"_get_fw_ver", [RPCAPICommand("api_version", "version")]
|
||||||
),
|
),
|
||||||
str(DataOptions.HOSTNAME): DataFunction("get_hostname"),
|
str(DataOptions.HOSTNAME): DataFunction("_get_hostname"),
|
||||||
str(DataOptions.HASHRATE): DataFunction(
|
str(DataOptions.HASHRATE): DataFunction(
|
||||||
"get_hashrate", [RPCAPICommand("api_devs", "devs")]
|
"_get_hashrate", [RPCAPICommand("api_devs", "devs")]
|
||||||
),
|
),
|
||||||
str(DataOptions.EXPECTED_HASHRATE): DataFunction(
|
str(DataOptions.EXPECTED_HASHRATE): DataFunction(
|
||||||
"get_expected_hashrate", [RPCAPICommand("api_stats", "stats")]
|
"_get_expected_hashrate", [RPCAPICommand("api_stats", "stats")]
|
||||||
),
|
),
|
||||||
str(DataOptions.HASHBOARDS): DataFunction(
|
str(DataOptions.HASHBOARDS): DataFunction(
|
||||||
"get_hashboards", [RPCAPICommand("api_stats", "stats")]
|
"_get_hashboards", [RPCAPICommand("api_stats", "stats")]
|
||||||
),
|
),
|
||||||
str(DataOptions.ENVIRONMENT_TEMP): DataFunction(
|
str(DataOptions.ENVIRONMENT_TEMP): DataFunction(
|
||||||
"get_env_temp", [RPCAPICommand("api_stats", "stats")]
|
"_get_env_temp", [RPCAPICommand("api_stats", "stats")]
|
||||||
),
|
),
|
||||||
str(DataOptions.WATTAGE): DataFunction("get_wattage"),
|
str(DataOptions.WATTAGE): DataFunction("_get_wattage"),
|
||||||
str(DataOptions.WATTAGE_LIMIT): DataFunction(
|
str(DataOptions.WATTAGE_LIMIT): DataFunction(
|
||||||
"get_wattage_limit", [RPCAPICommand("api_stats", "stats")]
|
"_get_wattage_limit", [RPCAPICommand("api_stats", "stats")]
|
||||||
),
|
),
|
||||||
str(DataOptions.FANS): DataFunction(
|
str(DataOptions.FANS): DataFunction(
|
||||||
"get_fans", [RPCAPICommand("api_stats", "stats")]
|
"_get_fans", [RPCAPICommand("api_stats", "stats")]
|
||||||
),
|
),
|
||||||
str(DataOptions.FAN_PSU): DataFunction("get_fan_psu"),
|
str(DataOptions.FAN_PSU): DataFunction("_get_fan_psu"),
|
||||||
str(DataOptions.ERRORS): DataFunction("get_errors"),
|
str(DataOptions.ERRORS): DataFunction("_get_errors"),
|
||||||
str(DataOptions.FAULT_LIGHT): DataFunction(
|
str(DataOptions.FAULT_LIGHT): DataFunction(
|
||||||
"get_fault_light", [RPCAPICommand("api_stats", "stats")]
|
"_get_fault_light", [RPCAPICommand("api_stats", "stats")]
|
||||||
),
|
),
|
||||||
str(DataOptions.IS_MINING): DataFunction("is_mining"),
|
str(DataOptions.IS_MINING): DataFunction("_is_mining"),
|
||||||
str(DataOptions.UPTIME): DataFunction("get_uptime"),
|
str(DataOptions.UPTIME): DataFunction("_get_uptime"),
|
||||||
str(DataOptions.CONFIG): DataFunction("get_config"),
|
str(DataOptions.CONFIG): DataFunction("get_config"),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -174,7 +173,7 @@ class CGMinerAvalon(CGMiner):
|
|||||||
### DATA GATHERING FUNCTIONS (get_{some_data}) ###
|
### DATA GATHERING FUNCTIONS (get_{some_data}) ###
|
||||||
##################################################
|
##################################################
|
||||||
|
|
||||||
async def get_mac(self, api_version: dict = None) -> Optional[str]:
|
async def _get_mac(self, api_version: dict = None) -> Optional[str]:
|
||||||
if not api_version:
|
if not api_version:
|
||||||
try:
|
try:
|
||||||
api_version = await self.api.version()
|
api_version = await self.api.version()
|
||||||
@@ -192,7 +191,7 @@ class CGMinerAvalon(CGMiner):
|
|||||||
except (KeyError, ValueError):
|
except (KeyError, ValueError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
async def get_hostname(self) -> Optional[str]:
|
async def _get_hostname(self) -> Optional[str]:
|
||||||
return None
|
return None
|
||||||
# if not mac:
|
# if not mac:
|
||||||
# mac = await self.get_mac()
|
# mac = await self.get_mac()
|
||||||
@@ -200,7 +199,7 @@ class CGMinerAvalon(CGMiner):
|
|||||||
# if mac:
|
# if mac:
|
||||||
# return f"Avalon{mac.replace(':', '')[-6:]}"
|
# return f"Avalon{mac.replace(':', '')[-6:]}"
|
||||||
|
|
||||||
async def get_hashrate(self, api_devs: dict = None) -> Optional[float]:
|
async def _get_hashrate(self, api_devs: dict = None) -> Optional[float]:
|
||||||
if not api_devs:
|
if not api_devs:
|
||||||
try:
|
try:
|
||||||
api_devs = await self.api.devs()
|
api_devs = await self.api.devs()
|
||||||
@@ -213,7 +212,7 @@ class CGMinerAvalon(CGMiner):
|
|||||||
except (KeyError, IndexError, ValueError, TypeError):
|
except (KeyError, IndexError, ValueError, TypeError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
async def get_hashboards(self, api_stats: dict = None) -> List[HashBoard]:
|
async def _get_hashboards(self, api_stats: dict = None) -> List[HashBoard]:
|
||||||
hashboards = [
|
hashboards = [
|
||||||
HashBoard(slot=i, expected_chips=self.expected_chips)
|
HashBoard(slot=i, expected_chips=self.expected_chips)
|
||||||
for i in range(self.expected_hashboards)
|
for i in range(self.expected_hashboards)
|
||||||
@@ -261,7 +260,7 @@ class CGMinerAvalon(CGMiner):
|
|||||||
|
|
||||||
return hashboards
|
return hashboards
|
||||||
|
|
||||||
async def get_expected_hashrate(self, api_stats: dict = None) -> Optional[float]:
|
async def _get_expected_hashrate(self, api_stats: dict = None) -> Optional[float]:
|
||||||
if not api_stats:
|
if not api_stats:
|
||||||
try:
|
try:
|
||||||
api_stats = await self.api.stats()
|
api_stats = await self.api.stats()
|
||||||
@@ -276,7 +275,7 @@ class CGMinerAvalon(CGMiner):
|
|||||||
except (IndexError, KeyError, ValueError, TypeError):
|
except (IndexError, KeyError, ValueError, TypeError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
async def get_env_temp(self, api_stats: dict = None) -> Optional[float]:
|
async def _get_env_temp(self, api_stats: dict = None) -> Optional[float]:
|
||||||
if not api_stats:
|
if not api_stats:
|
||||||
try:
|
try:
|
||||||
api_stats = await self.api.stats()
|
api_stats = await self.api.stats()
|
||||||
@@ -291,10 +290,10 @@ class CGMinerAvalon(CGMiner):
|
|||||||
except (IndexError, KeyError, ValueError, TypeError):
|
except (IndexError, KeyError, ValueError, TypeError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
async def get_wattage(self) -> Optional[int]:
|
async def _get_wattage(self) -> Optional[int]:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
async def get_wattage_limit(self, api_stats: dict = None) -> Optional[int]:
|
async def _get_wattage_limit(self, api_stats: dict = None) -> Optional[int]:
|
||||||
if not api_stats:
|
if not api_stats:
|
||||||
try:
|
try:
|
||||||
api_stats = await self.api.stats()
|
api_stats = await self.api.stats()
|
||||||
@@ -309,14 +308,14 @@ class CGMinerAvalon(CGMiner):
|
|||||||
except (IndexError, KeyError, ValueError, TypeError):
|
except (IndexError, KeyError, ValueError, TypeError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
async def get_fans(self, api_stats: dict = None) -> List[Fan]:
|
async def _get_fans(self, api_stats: dict = None) -> List[Fan]:
|
||||||
if not api_stats:
|
if not api_stats:
|
||||||
try:
|
try:
|
||||||
api_stats = await self.api.stats()
|
api_stats = await self.api.stats()
|
||||||
except APIError:
|
except APIError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
fans_data = [Fan() for _ in range(self.fan_count)]
|
fans_data = [Fan() for _ in range(self.expected_fans)]
|
||||||
if api_stats:
|
if api_stats:
|
||||||
try:
|
try:
|
||||||
unparsed_stats = api_stats["STATS"][0]["MM ID0"]
|
unparsed_stats = api_stats["STATS"][0]["MM ID0"]
|
||||||
@@ -324,17 +323,17 @@ class CGMinerAvalon(CGMiner):
|
|||||||
except LookupError:
|
except LookupError:
|
||||||
return fans_data
|
return fans_data
|
||||||
|
|
||||||
for fan in range(self.fan_count):
|
for fan in range(self.expected_fans):
|
||||||
try:
|
try:
|
||||||
fans_data[fan].speed = int(parsed_stats[f"Fan{fan + 1}"])
|
fans_data[fan].speed = int(parsed_stats[f"Fan{fan + 1}"])
|
||||||
except (IndexError, KeyError, ValueError, TypeError):
|
except (IndexError, KeyError, ValueError, TypeError):
|
||||||
pass
|
pass
|
||||||
return fans_data
|
return fans_data
|
||||||
|
|
||||||
async def get_errors(self) -> List[MinerErrorData]:
|
async def _get_errors(self) -> List[MinerErrorData]:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
async def get_fault_light(self, api_stats: dict = None) -> bool: # noqa
|
async def _get_fault_light(self, api_stats: dict = None) -> bool: # noqa
|
||||||
if self.light:
|
if self.light:
|
||||||
return self.light
|
return self.light
|
||||||
if not api_stats:
|
if not api_stats:
|
||||||
@@ -363,7 +362,7 @@ class CGMinerAvalon(CGMiner):
|
|||||||
pass
|
pass
|
||||||
return False
|
return False
|
||||||
|
|
||||||
async def is_mining(self, *args, **kwargs) -> Optional[bool]:
|
async def _is_mining(self, *args, **kwargs) -> Optional[bool]:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
async def get_uptime(self) -> Optional[int]:
|
async def get_uptime(self) -> Optional[int]:
|
||||||
|
|||||||
@@ -68,14 +68,10 @@ class Hiveon(BMMiner):
|
|||||||
self.pwd = "admin"
|
self.pwd = "admin"
|
||||||
# static data
|
# static data
|
||||||
self.api_type = "Hiveon"
|
self.api_type = "Hiveon"
|
||||||
|
self.fw_str = "Hive"
|
||||||
# data gathering locations
|
# data gathering locations
|
||||||
self.data_locations = HIVEON_DATA_LOC
|
self.data_locations = HIVEON_DATA_LOC
|
||||||
|
|
||||||
async def get_model(self) -> Optional[str]:
|
|
||||||
if self.model is not None:
|
|
||||||
return self.model + " (Hiveon)"
|
|
||||||
return "? (Hiveon)"
|
|
||||||
|
|
||||||
async def get_hashboards(self, api_stats: dict = None) -> List[HashBoard]:
|
async def get_hashboards(self, api_stats: dict = None) -> List[HashBoard]:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user