add support for X19 miner errors codes shown on their dashboard

This commit is contained in:
UpstreamData
2022-08-05 10:23:03 -06:00
parent a53e01df6f
commit b81590bd2e
5 changed files with 51 additions and 1 deletions

View File

@@ -15,11 +15,12 @@
from pyasic.miners._backends import BMMiner # noqa - Ignore access to _module
from pyasic.config import MinerConfig
from pyasic.data.error_codes import X19Error
import httpx
import json
import asyncio
from typing import Union
from typing import Union, List
class BMMinerX19(BMMiner):
@@ -131,3 +132,18 @@ class BMMinerX19(BMMiner):
if data.status_code == 200:
return True
return False
async def get_errors(self) -> List[X19Error]:
errors = []
url = f"http://{self.ip}/cgi-bin/summary.cgi"
auth = httpx.DigestAuth("root", "root")
async with httpx.AsyncClient() as client:
data = await client.get(url, auth=auth)
if data:
data = data.json()
if "SUMMARY" in data.keys():
if "status" in data["SUMMARY"][0].keys():
for item in data["SUMMARY"][0]["status"]:
if not item["status"] == "s":
errors.append(X19Error(item["msg"]))
return errors