Use "device_id" instead of "slave" in modbus integration (#150200)

This commit is contained in:
Alexandre CUER
2025-08-10 09:31:26 +02:00
committed by GitHub
parent 2c36a74da5
commit 5262cca8e6
4 changed files with 11 additions and 8 deletions

View File

@@ -97,6 +97,7 @@ CONF_VIRTUAL_COUNT = "virtual_count"
CONF_WRITE_TYPE = "write_type" CONF_WRITE_TYPE = "write_type"
CONF_ZERO_SUPPRESS = "zero_suppress" CONF_ZERO_SUPPRESS = "zero_suppress"
DEVICE_ID = "device_id"
RTUOVERTCP = "rtuovertcp" RTUOVERTCP = "rtuovertcp"
SERIAL = "serial" SERIAL = "serial"
TCP = "tcp" TCP = "tcp"

View File

@@ -57,6 +57,7 @@ from .const import (
CONF_PARITY, CONF_PARITY,
CONF_STOPBITS, CONF_STOPBITS,
DEFAULT_HUB, DEFAULT_HUB,
DEVICE_ID,
MODBUS_DOMAIN as DOMAIN, MODBUS_DOMAIN as DOMAIN,
PLATFORMS, PLATFORMS,
RTUOVERTCP, RTUOVERTCP,
@@ -380,7 +381,7 @@ class ModbusHub:
) -> ModbusPDU | None: ) -> ModbusPDU | None:
"""Call sync. pymodbus.""" """Call sync. pymodbus."""
kwargs: dict[str, Any] = ( kwargs: dict[str, Any] = (
{ATTR_SLAVE: slave} if slave is not None else {ATTR_SLAVE: 1} {DEVICE_ID: slave} if slave is not None else {DEVICE_ID: 1}
) )
entry = self._pb_request[use_call] entry = self._pb_request[use_call]

View File

@@ -467,7 +467,7 @@ async def test_hvac_onoff_values(hass: HomeAssistant, mock_modbus) -> None:
) )
await hass.async_block_till_done() await hass.async_block_till_done()
mock_modbus.write_register.assert_called_with(11, value=0xAA, slave=10) mock_modbus.write_register.assert_called_with(11, value=0xAA, device_id=10)
await hass.services.async_call( await hass.services.async_call(
CLIMATE_DOMAIN, CLIMATE_DOMAIN,
@@ -477,7 +477,7 @@ async def test_hvac_onoff_values(hass: HomeAssistant, mock_modbus) -> None:
) )
await hass.async_block_till_done() await hass.async_block_till_done()
mock_modbus.write_register.assert_called_with(11, value=0xFF, slave=10) mock_modbus.write_register.assert_called_with(11, value=0xFF, device_id=10)
@pytest.mark.parametrize( @pytest.mark.parametrize(
@@ -506,7 +506,7 @@ async def test_hvac_onoff_coil(hass: HomeAssistant, mock_modbus) -> None:
) )
await hass.async_block_till_done() await hass.async_block_till_done()
mock_modbus.write_coil.assert_called_with(11, value=1, slave=10) mock_modbus.write_coil.assert_called_with(11, value=1, device_id=10)
await hass.services.async_call( await hass.services.async_call(
CLIMATE_DOMAIN, CLIMATE_DOMAIN,
@@ -516,7 +516,7 @@ async def test_hvac_onoff_coil(hass: HomeAssistant, mock_modbus) -> None:
) )
await hass.async_block_till_done() await hass.async_block_till_done()
mock_modbus.write_coil.assert_called_with(11, value=0, slave=10) mock_modbus.write_coil.assert_called_with(11, value=0, device_id=10)
@pytest.mark.parametrize( @pytest.mark.parametrize(

View File

@@ -63,6 +63,7 @@ from homeassistant.components.modbus.const import (
CONF_SWING_MODE_VALUES, CONF_SWING_MODE_VALUES,
CONF_VIRTUAL_COUNT, CONF_VIRTUAL_COUNT,
DEFAULT_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL,
DEVICE_ID,
MODBUS_DOMAIN as DOMAIN, MODBUS_DOMAIN as DOMAIN,
RTUOVERTCP, RTUOVERTCP,
SERIAL, SERIAL,
@@ -867,7 +868,7 @@ async def test_pb_service_write(
assert func_name[do_write[FUNC]].called assert func_name[do_write[FUNC]].called
assert func_name[do_write[FUNC]].call_args.args == (data[ATTR_ADDRESS],) assert func_name[do_write[FUNC]].call_args.args == (data[ATTR_ADDRESS],)
assert func_name[do_write[FUNC]].call_args.kwargs == { assert func_name[do_write[FUNC]].call_args.kwargs == {
"slave": 17, DEVICE_ID: 17,
value_arg_name[do_write[FUNC]]: data[do_write[DATA]], value_arg_name[do_write[FUNC]]: data[do_write[DATA]],
} }
@@ -1326,7 +1327,7 @@ async def test_check_default_slave(
"""Test default slave.""" """Test default slave."""
assert mock_modbus.read_holding_registers.mock_calls assert mock_modbus.read_holding_registers.mock_calls
first_call = mock_modbus.read_holding_registers.mock_calls[0] first_call = mock_modbus.read_holding_registers.mock_calls[0]
assert first_call.kwargs["slave"] == expected_slave_value assert first_call.kwargs[DEVICE_ID] == expected_slave_value
@pytest.mark.parametrize( @pytest.mark.parametrize(
@@ -1407,7 +1408,7 @@ async def test_pb_service_write_no_slave(
assert func_name[do_write[FUNC]].called assert func_name[do_write[FUNC]].called
assert func_name[do_write[FUNC]].call_args.args == (data[ATTR_ADDRESS],) assert func_name[do_write[FUNC]].call_args.args == (data[ATTR_ADDRESS],)
assert func_name[do_write[FUNC]].call_args.kwargs == { assert func_name[do_write[FUNC]].call_args.kwargs == {
"slave": 1, DEVICE_ID: 1,
value_arg_name[do_write[FUNC]]: data[do_write[DATA]], value_arg_name[do_write[FUNC]]: data[do_write[DATA]],
} }