From 6f4302ff7026fec143c2fd6c2cf05dcfcc73896c Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 4 Jun 2021 10:02:42 -0700 Subject: [PATCH] Hot fix version of Apply modbus interval patch (#51487) --- homeassistant/components/modbus/__init__.py | 20 +++++++++++--------- homeassistant/components/modbus/const.py | 1 - 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/homeassistant/components/modbus/__init__.py b/homeassistant/components/modbus/__init__.py index d1c3c1a0c8a..e27549df169 100644 --- a/homeassistant/components/modbus/__init__.py +++ b/homeassistant/components/modbus/__init__.py @@ -99,7 +99,6 @@ from .const import ( DEFAULT_SCAN_INTERVAL, DEFAULT_STRUCTURE_PREFIX, DEFAULT_TEMP_UNIT, - MINIMUM_SCAN_INTERVAL, MODBUS_DOMAIN as DOMAIN, PLATFORMS, ) @@ -139,27 +138,30 @@ def control_scan_interval(config: dict) -> dict: for entry in hub[conf_key]: scan_interval = entry.get(CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL) - if scan_interval < MINIMUM_SCAN_INTERVAL: - if scan_interval == 0: - continue + if scan_interval == 0: + continue + if scan_interval < 5: _LOGGER.warning( - "%s %s scan_interval(%d) is adjusted to minimum(%d)", + "%s %s scan_interval(%d) is lower than 5 seconds, " + "which may cause Home Assistant stability issues", component, entry.get(CONF_NAME), scan_interval, - MINIMUM_SCAN_INTERVAL, ) - scan_interval = MINIMUM_SCAN_INTERVAL entry[CONF_SCAN_INTERVAL] = scan_interval minimum_scan_interval = min(scan_interval, minimum_scan_interval) - if CONF_TIMEOUT in hub and hub[CONF_TIMEOUT] > minimum_scan_interval - 1: + if ( + CONF_TIMEOUT in hub + and hub[CONF_TIMEOUT] > minimum_scan_interval - 1 + and minimum_scan_interval > 1 + ): _LOGGER.warning( "Modbus %s timeout(%d) is adjusted(%d) due to scan_interval", hub.get(CONF_NAME, ""), hub[CONF_TIMEOUT], minimum_scan_interval - 1, ) - hub[CONF_TIMEOUT] = minimum_scan_interval - 1 + hub[CONF_TIMEOUT] = minimum_scan_interval - 1 return config diff --git a/homeassistant/components/modbus/const.py b/homeassistant/components/modbus/const.py index dfec0dbb50a..cfda4a3863a 100644 --- a/homeassistant/components/modbus/const.py +++ b/homeassistant/components/modbus/const.py @@ -90,7 +90,6 @@ SERVICE_WRITE_REGISTER = "write_register" # integration names DEFAULT_HUB = "modbus_hub" -MINIMUM_SCAN_INTERVAL = 5 # seconds DEFAULT_SCAN_INTERVAL = 15 # seconds DEFAULT_SLAVE = 1 DEFAULT_STRUCTURE_PREFIX = ">f"