From 2ec8054d24d5f356100eb5f5c8107fe40dc5189d Mon Sep 17 00:00:00 2001 From: Wilfred Allyn Date: Tue, 7 Jan 2025 10:23:42 -0500 Subject: [PATCH] feature: check if atm enabled before settting power --- pyasic/miners/backends/luxminer.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pyasic/miners/backends/luxminer.py b/pyasic/miners/backends/luxminer.py index c6997854..315fcc3f 100644 --- a/pyasic/miners/backends/luxminer.py +++ b/pyasic/miners/backends/luxminer.py @@ -160,6 +160,13 @@ class LUXMiner(LuxOSFirmware): return False + async def atm_enabled(self) -> Optional[bool]: + try: + result = await self.rpc.atm() + return result["ATM"][0]["Enabled"] + except (APIError, LookupError): + pass + async def set_power_limit(self, wattage: int) -> bool: config = await self.get_config() valid_presets = { @@ -169,10 +176,17 @@ class LUXMiner(LuxOSFirmware): } # Set power to highest preset <= wattage + # If ATM enabled, must disable it before setting power limit new_preset = max(valid_presets, key=valid_presets.get) + re_enable_atm = False try: + if await self.atm_enabled(): + re_enable_atm = True + await self.rpc.atmset("enabled=false") result = await self.rpc.profileset(new_preset) + if re_enable_atm: + await self.rpc.atmset("enabled=true") except APIError: raise except Exception as e: