From 4f0eb49a02714571b28fbd92d2af8d795a5ba6c1 Mon Sep 17 00:00:00 2001 From: b-rowan Date: Sat, 27 Jan 2024 09:25:20 -0700 Subject: [PATCH] bug: fix some issues with epic send config. --- pyasic/config/mining.py | 2 +- pyasic/config/temperature.py | 4 ++-- pyasic/miners/backends/epic.py | 6 ++---- pyasic/web/epic.py | 12 ++++++------ 4 files changed, 11 insertions(+), 13 deletions(-) diff --git a/pyasic/config/mining.py b/pyasic/config/mining.py index bb380f8e..85b9b493 100644 --- a/pyasic/config/mining.py +++ b/pyasic/config/mining.py @@ -184,7 +184,7 @@ class MiningModePowerTune(MinerConfigValue): return {"mode": {"mode": "custom", "tune": "power", "power": self.power}} def as_epic(self) -> dict: - return {"ptune": {**self.algo.as_epic(), "target": self.power}} + return {"ptune": {"algo": self.algo.as_epic(), "target": self.power}} @dataclass diff --git a/pyasic/config/temperature.py b/pyasic/config/temperature.py index 538c51cf..4f7b7abc 100644 --- a/pyasic/config/temperature.py +++ b/pyasic/config/temperature.py @@ -43,9 +43,9 @@ class TemperatureConfig(MinerConfigValue): def as_epic(self) -> dict: temps_config = {"temps": {}, "fans": {"Auto": {}}} if self.target is not None: - temps_config["fans"]["Target Temperature"] = self.target + temps_config["fans"]["Auto"]["Target Temperature"] = self.target else: - temps_config["fans"]["Target Temperature"] = 60 + temps_config["fans"]["Auto"]["Target Temperature"] = 60 if self.danger is not None: temps_config["temps"]["shutdown"] = self.danger return temps_config diff --git a/pyasic/miners/backends/epic.py b/pyasic/miners/backends/epic.py index 4c0b5b9f..23a396d2 100644 --- a/pyasic/miners/backends/epic.py +++ b/pyasic/miners/backends/epic.py @@ -116,13 +116,11 @@ class ePIC(BaseMiner): if not conf.get("temps", {}) == {}: await self.web.set_shutdown_temp(conf["temps"]["shutdown"]) # Fans + # set with sub-keys instead of conf["fans"] because sometimes both can be set if not conf["fans"].get("Manual", {}) == {}: await self.web.set_fan({"Manual": conf["fans"]["Manual"]}) elif not conf["fans"].get("Auto", {}) == {}: - target_temp = {"Target Temperature": conf["fans"]["Target Temperature"]} - await self.web.set_fan( - {"Auto": {**conf["fans"]["Auto"], **target_temp}} - ) + await self.web.set_fan({"Auto": conf["fans"]["Auto"]}) # Mining Mode -- Need to handle that you may not be able to change while miner is tuning if conf["ptune"].get("enabled", True): diff --git a/pyasic/web/epic.py b/pyasic/web/epic.py index 8a835186..e567914a 100644 --- a/pyasic/web/epic.py +++ b/pyasic/web/epic.py @@ -51,7 +51,7 @@ class ePICWebAPI(BaseWebAPI): f"http://{self.ip}:{self.port}/{command}", timeout=5, json={ - "param": parameters["parameters"], + **parameters, "password": self.pwd, }, ) @@ -95,19 +95,19 @@ class ePICWebAPI(BaseWebAPI): return await self.send_command("reboot", privileged=True) async def set_shutdown_temp(self, params: int) -> dict: - return await self.send_command("shutdowntemp", parameters=params) + return await self.send_command("shutdowntemp", param=params) async def set_fan(self, params: dict) -> dict: - return await self.send_command("fanspeed", parameters=params) + return await self.send_command("fanspeed", param=params) async def set_ptune_enable(self, params: bool) -> dict: - return await self.send_command("perpetualtune", parameters=params) + return await self.send_command("perpetualtune", param=params) async def set_ptune_algo(self, params: dict) -> dict: - return await self.send_command("perpetualtune/algo", parameters=params) + return await self.send_command("perpetualtune/algo", param=params) async def set_pools(self, params: dict) -> dict: - return await self.send_command("coin", parameters=params) + return await self.send_command("coin", param=params) async def pause_mining(self) -> dict: return await self.send_command("miner", param="Stop")