Skip to content

Commit 1877ce9

Browse files
authored
Dev v.1.1.9 (#199)
Fixes for Home Assistant 2025.9: * Refactor Modbus communication to use safe method for reading and writing registers
1 parent 1aa633d commit 1877ce9

File tree

4 files changed

+13
-7
lines changed

4 files changed

+13
-7
lines changed

.vscode/settings.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,7 @@
1313
"--ignore=Reference/core-dev",
1414
"--ignore=Reference/pymodbus",
1515
"--init-hook=import sys; sys.path.append('Reference/core-dev')",
16-
]
16+
],
17+
"python-envs.defaultEnvManager": "ms-python.python:system",
18+
"python-envs.pythonProjects": []
1719
}

custom_components/sigen/config_flow.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
async_get as async_get_entity_registry,
2929
async_entries_for_device,
3030
)
31-
from .modbus import _suppress_pymodbus_logging
31+
from .modbus import _suppress_pymodbus_logging, _call_modbus_method_safe
3232
from .const import (
3333
DOMAIN,
3434
DEFAULT_PORT,
@@ -538,10 +538,11 @@ async def _async_try_read_register(self, client: AsyncModbusTcpClient, slave_id:
538538

539539
_LOGGER.debug("Modbus connected to %s:%s. Checking device type...", host, port)
540540

541-
result = await client.read_input_registers(
541+
result = await _call_modbus_method_safe(
542+
client.read_input_registers,
542543
address=register_address,
543544
count=1,
544-
slave=slave_id
545+
slave=slave_id,
545546
)
546547
if result and not result.isError():
547548
_LOGGER.debug("Modbus read successful for register %s on %s:%s, slave %s.",

custom_components/sigen/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@
2121
"loggers": ["custom_components.sigen"],
2222
"quality_scale": "custom",
2323
"requirements": ["pymodbus>=3.8.3"],
24-
"version": "1.1.8"
24+
"version": "1.1.9"
2525
}

custom_components/sigen/modbus.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -749,8 +749,11 @@ async def async_write_registers(
749749
"Trying write_registers at original address %s with values %s for slave %s",
750750
address, values, slave_id
751751
)
752-
result = await client.write_registers(
753-
address=address, values=values, slave=slave_id
752+
result = await _call_modbus_method_safe(
753+
client.write_registers,
754+
address=address,
755+
values=values,
756+
slave=slave_id,
754757
)
755758
if result.isError():
756759
_LOGGER.warning("Modbus write_registers error for %s:%s@%s (address %s): %s. Marking connection as closed.", key[0], key[1], slave_id, address, result)

0 commit comments

Comments
 (0)