feature: check if atm enabled before settting power

This commit is contained in:
Wilfred Allyn
2025-01-07 10:23:42 -05:00
committed by Brett Rowan
parent d148ccfe5f
commit 2ec8054d24

View File

@@ -160,6 +160,13 @@ class LUXMiner(LuxOSFirmware):
return False 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: async def set_power_limit(self, wattage: int) -> bool:
config = await self.get_config() config = await self.get_config()
valid_presets = { valid_presets = {
@@ -169,10 +176,17 @@ class LUXMiner(LuxOSFirmware):
} }
# Set power to highest preset <= wattage # 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) new_preset = max(valid_presets, key=valid_presets.get)
re_enable_atm = False
try: try:
if await self.atm_enabled():
re_enable_atm = True
await self.rpc.atmset("enabled=false")
result = await self.rpc.profileset(new_preset) result = await self.rpc.profileset(new_preset)
if re_enable_atm:
await self.rpc.atmset("enabled=true")
except APIError: except APIError:
raise raise
except Exception as e: except Exception as e: