mirror of
https://github.com/home-assistant/core.git
synced 2025-08-31 18:31:35 +02:00
Modbus: Do not remove non-duplicate error log. (#150511)
This commit is contained in:
@@ -263,6 +263,7 @@ class ModbusHub:
|
|||||||
self._config_delay = client_config[CONF_DELAY]
|
self._config_delay = client_config[CONF_DELAY]
|
||||||
self._pb_request: dict[str, RunEntry] = {}
|
self._pb_request: dict[str, RunEntry] = {}
|
||||||
self._connect_task: asyncio.Task
|
self._connect_task: asyncio.Task
|
||||||
|
self._last_log_error: str = ""
|
||||||
self._pb_class = {
|
self._pb_class = {
|
||||||
SERIAL: AsyncModbusSerialClient,
|
SERIAL: AsyncModbusSerialClient,
|
||||||
TCP: AsyncModbusTcpClient,
|
TCP: AsyncModbusTcpClient,
|
||||||
@@ -303,13 +304,12 @@ class ModbusHub:
|
|||||||
else:
|
else:
|
||||||
self._msg_wait = 0
|
self._msg_wait = 0
|
||||||
|
|
||||||
def _log_error(self, text: str, error_state: bool = True) -> None:
|
def _log_error(self, text: str) -> None:
|
||||||
|
if text == self._last_log_error:
|
||||||
|
return
|
||||||
|
self._last_log_error = text
|
||||||
log_text = f"Pymodbus: {self.name}: {text}"
|
log_text = f"Pymodbus: {self.name}: {text}"
|
||||||
if self._in_error:
|
|
||||||
_LOGGER.debug(log_text)
|
|
||||||
else:
|
|
||||||
_LOGGER.error(log_text)
|
_LOGGER.error(log_text)
|
||||||
self._in_error = error_state
|
|
||||||
|
|
||||||
async def async_pb_connect(self) -> None:
|
async def async_pb_connect(self) -> None:
|
||||||
"""Connect to device, async."""
|
"""Connect to device, async."""
|
||||||
@@ -318,7 +318,7 @@ class ModbusHub:
|
|||||||
await self._client.connect() # type: ignore[union-attr]
|
await self._client.connect() # type: ignore[union-attr]
|
||||||
except ModbusException as exception_error:
|
except ModbusException as exception_error:
|
||||||
err = f"{self.name} connect failed, retry in pymodbus ({exception_error!s})"
|
err = f"{self.name} connect failed, retry in pymodbus ({exception_error!s})"
|
||||||
self._log_error(err, error_state=False)
|
self._log_error(err)
|
||||||
return
|
return
|
||||||
message = f"modbus {self.name} communication open"
|
message = f"modbus {self.name} communication open"
|
||||||
_LOGGER.info(message)
|
_LOGGER.info(message)
|
||||||
@@ -328,7 +328,7 @@ class ModbusHub:
|
|||||||
try:
|
try:
|
||||||
self._client = self._pb_class[self._config_type](**self._pb_params)
|
self._client = self._pb_class[self._config_type](**self._pb_params)
|
||||||
except ModbusException as exception_error:
|
except ModbusException as exception_error:
|
||||||
self._log_error(str(exception_error), error_state=False)
|
self._log_error(str(exception_error))
|
||||||
return False
|
return False
|
||||||
|
|
||||||
for entry in PB_CALL:
|
for entry in PB_CALL:
|
||||||
|
Reference in New Issue
Block a user