From 1b5e3093e628ca196c7a963321173a9758d2d504 Mon Sep 17 00:00:00 2001 From: Wilfred Allyn Date: Sun, 15 Dec 2024 06:37:13 -0500 Subject: [PATCH] feature: set power to highest preset <= wattage --- pyasic/miners/backends/vnish.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/pyasic/miners/backends/vnish.py b/pyasic/miners/backends/vnish.py index b57c5187..b78fc14f 100644 --- a/pyasic/miners/backends/vnish.py +++ b/pyasic/miners/backends/vnish.py @@ -276,17 +276,16 @@ class VNish(VNishFirmware, BMMiner): async def set_power_limit(self, wattage: int) -> bool: config = await self.get_config() - tuned_presets = [ + valid_presets = [ preset.power for preset in config.mining_mode.available_presets - if preset.tuned + if preset.tuned and preset.power <= wattage ] + new_wattage = max(valid_presets) - # Can only set power limit to tuned preset - if wattage not in tuned_presets: - return False + # Set power to highest preset <= wattage try: - await self.web.set_power_limit(wattage) + await self.web.set_power_limit(new_wattage) updated_settings = await self.web.settings() except APIError: raise @@ -294,7 +293,7 @@ class VNish(VNishFirmware, BMMiner): logging.warning(f"{self} - Failed to set power limit: {e}") return False - if int(updated_settings["miner"]["overclock"]["preset"]) == wattage: + if int(updated_settings["miner"]["overclock"]["preset"]) == new_wattage: return True else: return False