diff --git a/pyasic/API/btminer.py b/pyasic/API/btminer.py index e52fdbc6..f3e45183 100644 --- a/pyasic/API/btminer.py +++ b/pyasic/API/btminer.py @@ -240,7 +240,6 @@ class BTMinerAPI(BaseMinerAPI): command = {"cmd": command, **kwargs} token_data = await self.get_token() - print(token_data) enc_command = create_privileged_cmd(token_data, command) logging.debug(f"{self} - (Send Privileged Command) - Sending") diff --git a/pyasic/miners/_backends/btminer.py b/pyasic/miners/_backends/btminer.py index de168327..db57cf34 100644 --- a/pyasic/miners/_backends/btminer.py +++ b/pyasic/miners/_backends/btminer.py @@ -223,7 +223,7 @@ class BTMiner(BaseMiner): return None async def get_version( - self, api_version: dict = None + self, api_version: dict = None, api_summary: dict = None ) -> Tuple[Optional[str], Optional[str]]: # check if version is cached miner_version = namedtuple("MinerVersion", "api_ver fw_ver") @@ -240,11 +240,31 @@ class BTMiner(BaseMiner): if api_version: if "Code" in api_version.keys(): if api_version["Code"] == 131: - self.api_ver = api_version["Msg"]["api_ver"].replace( - "whatsminer v", "" - ) - self.fw_ver = api_version["Msg"]["fw_ver"] - self.api.api_ver = self.api_ver + try: + api_ver = api_version["Msg"] + if not isinstance(api_ver, str): + api_ver = api_ver["api_ver"] + self.api_ver = api_ver.replace( + "whatsminer v", "" + ) + self.fw_ver = api_version["Msg"]["fw_ver"] + except (KeyError, TypeError): + pass + else: + self.api.api_ver = self.api_ver + return miner_version(self.api_ver, self.fw_ver) + + if not api_summary: + try: + api_summary = await self.api.summary() + except APIError: + pass + + if api_summary: + try: + self.fw_ver = api_summary["SUMMARY"][0]["Firmware Version"].replace("'", "") + except (KeyError, IndexError): + pass return miner_version(self.api_ver, self.fw_ver)