diff --git a/custom_components/nicehash/__init__.py b/custom_components/nicehash/__init__.py index 0c9e016..3390fb7 100644 --- a/custom_components/nicehash/__init__.py +++ b/custom_components/nicehash/__init__.py @@ -18,6 +18,7 @@ from .const import ( CONF_API_SECRET, CONF_CURRENCY, CONF_ORGANIZATION_ID, + CONF_BALANCES_ENABLED, CONF_RIGS_ENABLED, CONF_DEVICES_ENABLED, CONF_PAYOUTS_ENABLED, @@ -42,6 +43,7 @@ CONFIG_SCHEMA = vol.Schema( vol.Required(CONF_API_KEY): cv.string, vol.Required(CONF_API_SECRET): cv.string, vol.Required(CONF_CURRENCY, default=CURRENCY_USD): cv.string, + vol.Required(CONF_BALANCES_ENABLED, default=False): cv.boolean, vol.Required(CONF_RIGS_ENABLED, default=False): cv.boolean, vol.Required(CONF_DEVICES_ENABLED, default=False): cv.boolean, vol.Required(CONF_PAYOUTS_ENABLED, default=False): cv.boolean, @@ -65,6 +67,7 @@ async def async_setup(hass: HomeAssistant, config: Config): api_secret = nicehash_config.get(CONF_API_SECRET) # Options currency = nicehash_config.get(CONF_CURRENCY).upper() + balances_enabled = nicehash_config.get(CONF_BALANCES_ENABLED) rigs_enabled = nicehash_config.get(CONF_RIGS_ENABLED) devices_enabled = nicehash_config.get(CONF_DEVICES_ENABLED) payouts_enabled = nicehash_config.get(CONF_PAYOUTS_ENABLED) @@ -74,19 +77,21 @@ async def async_setup(hass: HomeAssistant, config: Config): hass.data[DOMAIN]["organization_id"] = organization_id hass.data[DOMAIN]["client"] = client hass.data[DOMAIN]["currency"] = currency + hass.data[DOMAIN]["balances_enabled"] = balances_enabled hass.data[DOMAIN]["rigs_enabled"] = rigs_enabled hass.data[DOMAIN]["devices_enabled"] = devices_enabled hass.data[DOMAIN]["payouts_enabled"] = payouts_enabled # Accounts - accounts_coordinator = AccountsDataUpdateCoordinator(hass, client) - await accounts_coordinator.async_refresh() + if balances_enabled: + accounts_coordinator = AccountsDataUpdateCoordinator(hass, client) + await accounts_coordinator.async_refresh() - if not accounts_coordinator.last_update_success: - _LOGGER.error("Unable to get NiceHash accounts") - raise PlatformNotReady + if not accounts_coordinator.last_update_success: + _LOGGER.error("Unable to get NiceHash accounts") + raise PlatformNotReady - hass.data[DOMAIN]["accounts_coordinator"] = accounts_coordinator + hass.data[DOMAIN]["accounts_coordinator"] = accounts_coordinator # Payouts if payouts_enabled: diff --git a/custom_components/nicehash/const.py b/custom_components/nicehash/const.py index ef41b81..c64d29c 100644 --- a/custom_components/nicehash/const.py +++ b/custom_components/nicehash/const.py @@ -30,6 +30,7 @@ CONF_API_KEY = "api_key" CONF_API_SECRET = "api_secret" CONF_ORGANIZATION_ID = "organization_id" CONF_CURRENCY = "currency" +CONF_BALANCES_ENABLED = "balances" CONF_RIGS_ENABLED = "rigs" CONF_DEVICES_ENABLED = "devices" CONF_PAYOUTS_ENABLED = "payouts" diff --git a/custom_components/nicehash/sensor.py b/custom_components/nicehash/sensor.py index 38e8173..9607aca 100644 --- a/custom_components/nicehash/sensor.py +++ b/custom_components/nicehash/sensor.py @@ -58,16 +58,18 @@ async def async_setup_platform( client = data.get("client") # Options currency = data.get("currency") + balances_enabled = data.get("balances_enabled") payouts_enabled = data.get("payouts_enabled") rigs_enabled = data.get("rigs_enabled") devices_enabled = data.get("devices_enabled") - # Add account balance sensors - accounts_coordinator = data.get("accounts_coordinator") - balance_sensors = create_balance_sensors( - organization_id, currency, accounts_coordinator - ) - async_add_entities(balance_sensors, True) + # Account balance sensors + if balances_enabled: + accounts_coordinator = data.get("accounts_coordinator") + balance_sensors = create_balance_sensors( + organization_id, currency, accounts_coordinator + ) + async_add_entities(balance_sensors, True) # Payout sensors if payouts_enabled: