parent
488d78571e
commit
b11539fb04
|
@ -310,6 +310,13 @@ class ModbusHub:
|
||||||
_LOGGER.error(log_text)
|
_LOGGER.error(log_text)
|
||||||
self._in_error = error_state
|
self._in_error = error_state
|
||||||
|
|
||||||
|
async def async_pymodbus_connect(self) -> None:
|
||||||
|
"""Connect to device, async."""
|
||||||
|
async with self._lock:
|
||||||
|
if not await self.hass.async_add_executor_job(self._pymodbus_connect):
|
||||||
|
err = f"{self.name} connect failed, retry in pymodbus"
|
||||||
|
self._log_error(err, error_state=False)
|
||||||
|
|
||||||
async def async_setup(self) -> bool:
|
async def async_setup(self) -> bool:
|
||||||
"""Set up pymodbus client."""
|
"""Set up pymodbus client."""
|
||||||
try:
|
try:
|
||||||
|
@ -322,11 +329,9 @@ class ModbusHub:
|
||||||
func = getattr(self._client, entry.func_name)
|
func = getattr(self._client, entry.func_name)
|
||||||
self._pb_call[entry.call_type] = RunEntry(entry.attr, func)
|
self._pb_call[entry.call_type] = RunEntry(entry.attr, func)
|
||||||
|
|
||||||
async with self._lock:
|
self.hass.async_create_background_task(
|
||||||
if not await self.hass.async_add_executor_job(self._pymodbus_connect):
|
self.async_pymodbus_connect(), "modbus-connect"
|
||||||
err = f"{self.name} connect failed, retry in pymodbus"
|
)
|
||||||
self._log_error(err, error_state=False)
|
|
||||||
return False
|
|
||||||
|
|
||||||
# Start counting down to allow modbus requests.
|
# Start counting down to allow modbus requests.
|
||||||
if self._config_delay:
|
if self._config_delay:
|
||||||
|
|
|
@ -704,7 +704,7 @@ async def test_pymodbus_connect_fail(
|
||||||
caplog.set_level(logging.WARNING)
|
caplog.set_level(logging.WARNING)
|
||||||
ExceptionMessage = "test connect exception"
|
ExceptionMessage = "test connect exception"
|
||||||
mock_pymodbus.connect.side_effect = ModbusException(ExceptionMessage)
|
mock_pymodbus.connect.side_effect = ModbusException(ExceptionMessage)
|
||||||
assert await async_setup_component(hass, DOMAIN, config) is False
|
assert await async_setup_component(hass, DOMAIN, config) is True
|
||||||
assert ExceptionMessage in caplog.text
|
assert ExceptionMessage in caplog.text
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue