mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 19:27:45 +00:00
Set slave default to 0, as already documented in Modbus (#66921)
This commit is contained in:
parent
6e5ae3e2e4
commit
4ca339c5b1
@ -118,7 +118,7 @@ BASE_COMPONENT_SCHEMA = vol.Schema(
|
|||||||
{
|
{
|
||||||
vol.Required(CONF_NAME): cv.string,
|
vol.Required(CONF_NAME): cv.string,
|
||||||
vol.Required(CONF_ADDRESS): cv.positive_int,
|
vol.Required(CONF_ADDRESS): cv.positive_int,
|
||||||
vol.Optional(CONF_SLAVE): cv.positive_int,
|
vol.Optional(CONF_SLAVE, default=0): cv.positive_int,
|
||||||
vol.Optional(
|
vol.Optional(
|
||||||
CONF_SCAN_INTERVAL, default=DEFAULT_SCAN_INTERVAL
|
CONF_SCAN_INTERVAL, default=DEFAULT_SCAN_INTERVAL
|
||||||
): cv.positive_int,
|
): cv.positive_int,
|
||||||
|
@ -209,8 +209,7 @@ def duplicate_entity_validator(config: dict) -> dict:
|
|||||||
addr += "_" + str(entry[CONF_COMMAND_ON])
|
addr += "_" + str(entry[CONF_COMMAND_ON])
|
||||||
if CONF_COMMAND_OFF in entry:
|
if CONF_COMMAND_OFF in entry:
|
||||||
addr += "_" + str(entry[CONF_COMMAND_OFF])
|
addr += "_" + str(entry[CONF_COMMAND_OFF])
|
||||||
if CONF_SLAVE in entry:
|
addr += "_" + str(entry[CONF_SLAVE])
|
||||||
addr += "_" + str(entry[CONF_SLAVE])
|
|
||||||
if addr in addresses:
|
if addr in addresses:
|
||||||
err = f"Modbus {component}/{name} address {addr} is duplicate, second entry not loaded!"
|
err = f"Modbus {component}/{name} address {addr} is duplicate, second entry not loaded!"
|
||||||
_LOGGER.warning(err)
|
_LOGGER.warning(err)
|
||||||
|
@ -9,7 +9,7 @@ from pymodbus.exceptions import ModbusException
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from homeassistant.components.modbus.const import MODBUS_DOMAIN as DOMAIN, TCP
|
from homeassistant.components.modbus.const import MODBUS_DOMAIN as DOMAIN, TCP
|
||||||
from homeassistant.const import CONF_HOST, CONF_NAME, CONF_PORT, CONF_TYPE
|
from homeassistant.const import CONF_HOST, CONF_NAME, CONF_PORT, CONF_SLAVE, CONF_TYPE
|
||||||
from homeassistant.setup import async_setup_component
|
from homeassistant.setup import async_setup_component
|
||||||
import homeassistant.util.dt as dt_util
|
import homeassistant.util.dt as dt_util
|
||||||
|
|
||||||
@ -82,9 +82,12 @@ async def mock_modbus_fixture(
|
|||||||
):
|
):
|
||||||
"""Load integration modbus using mocked pymodbus."""
|
"""Load integration modbus using mocked pymodbus."""
|
||||||
conf = copy.deepcopy(do_config)
|
conf = copy.deepcopy(do_config)
|
||||||
if config_addon:
|
for key in conf.keys():
|
||||||
for key in conf.keys():
|
if config_addon:
|
||||||
conf[key][0].update(config_addon)
|
conf[key][0].update(config_addon)
|
||||||
|
for entity in conf[key]:
|
||||||
|
if CONF_SLAVE not in entity:
|
||||||
|
entity[CONF_SLAVE] = 0
|
||||||
caplog.set_level(logging.WARNING)
|
caplog.set_level(logging.WARNING)
|
||||||
config = {
|
config = {
|
||||||
DOMAIN: [
|
DOMAIN: [
|
||||||
|
@ -76,6 +76,7 @@ from homeassistant.const import (
|
|||||||
CONF_PORT,
|
CONF_PORT,
|
||||||
CONF_SCAN_INTERVAL,
|
CONF_SCAN_INTERVAL,
|
||||||
CONF_SENSORS,
|
CONF_SENSORS,
|
||||||
|
CONF_SLAVE,
|
||||||
CONF_STRUCTURE,
|
CONF_STRUCTURE,
|
||||||
CONF_TIMEOUT,
|
CONF_TIMEOUT,
|
||||||
CONF_TYPE,
|
CONF_TYPE,
|
||||||
@ -272,10 +273,12 @@ async def test_duplicate_modbus_validator(do_config):
|
|||||||
{
|
{
|
||||||
CONF_NAME: TEST_ENTITY_NAME,
|
CONF_NAME: TEST_ENTITY_NAME,
|
||||||
CONF_ADDRESS: 117,
|
CONF_ADDRESS: 117,
|
||||||
|
CONF_SLAVE: 0,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
CONF_NAME: TEST_ENTITY_NAME,
|
CONF_NAME: TEST_ENTITY_NAME,
|
||||||
CONF_ADDRESS: 119,
|
CONF_ADDRESS: 119,
|
||||||
|
CONF_SLAVE: 0,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
@ -290,10 +293,12 @@ async def test_duplicate_modbus_validator(do_config):
|
|||||||
{
|
{
|
||||||
CONF_NAME: TEST_ENTITY_NAME,
|
CONF_NAME: TEST_ENTITY_NAME,
|
||||||
CONF_ADDRESS: 117,
|
CONF_ADDRESS: 117,
|
||||||
|
CONF_SLAVE: 0,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
CONF_NAME: TEST_ENTITY_NAME + "2",
|
CONF_NAME: TEST_ENTITY_NAME + "2",
|
||||||
CONF_ADDRESS: 117,
|
CONF_ADDRESS: 117,
|
||||||
|
CONF_SLAVE: 0,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
@ -409,6 +414,7 @@ async def test_duplicate_entity_validator(do_config):
|
|||||||
{
|
{
|
||||||
CONF_NAME: TEST_ENTITY_NAME,
|
CONF_NAME: TEST_ENTITY_NAME,
|
||||||
CONF_ADDRESS: 117,
|
CONF_ADDRESS: 117,
|
||||||
|
CONF_SLAVE: 0,
|
||||||
CONF_SCAN_INTERVAL: 0,
|
CONF_SCAN_INTERVAL: 0,
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -544,6 +550,7 @@ async def mock_modbus_read_pymodbus_fixture(
|
|||||||
CONF_INPUT_TYPE: do_type,
|
CONF_INPUT_TYPE: do_type,
|
||||||
CONF_NAME: TEST_ENTITY_NAME,
|
CONF_NAME: TEST_ENTITY_NAME,
|
||||||
CONF_ADDRESS: 51,
|
CONF_ADDRESS: 51,
|
||||||
|
CONF_SLAVE: 0,
|
||||||
CONF_SCAN_INTERVAL: do_scan_interval,
|
CONF_SCAN_INTERVAL: do_scan_interval,
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -688,6 +695,7 @@ async def test_delay(hass, mock_pymodbus):
|
|||||||
CONF_INPUT_TYPE: CALL_TYPE_COIL,
|
CONF_INPUT_TYPE: CALL_TYPE_COIL,
|
||||||
CONF_NAME: TEST_ENTITY_NAME,
|
CONF_NAME: TEST_ENTITY_NAME,
|
||||||
CONF_ADDRESS: 52,
|
CONF_ADDRESS: 52,
|
||||||
|
CONF_SLAVE: 0,
|
||||||
CONF_SCAN_INTERVAL: set_scan_interval,
|
CONF_SCAN_INTERVAL: set_scan_interval,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -736,6 +744,7 @@ async def test_delay(hass, mock_pymodbus):
|
|||||||
{
|
{
|
||||||
CONF_NAME: TEST_ENTITY_NAME,
|
CONF_NAME: TEST_ENTITY_NAME,
|
||||||
CONF_ADDRESS: 117,
|
CONF_ADDRESS: 117,
|
||||||
|
CONF_SLAVE: 0,
|
||||||
CONF_SCAN_INTERVAL: 0,
|
CONF_SCAN_INTERVAL: 0,
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -759,6 +768,7 @@ async def test_shutdown(hass, caplog, mock_pymodbus, mock_modbus_with_pymodbus):
|
|||||||
{
|
{
|
||||||
CONF_NAME: TEST_ENTITY_NAME,
|
CONF_NAME: TEST_ENTITY_NAME,
|
||||||
CONF_ADDRESS: 51,
|
CONF_ADDRESS: 51,
|
||||||
|
CONF_SLAVE: 0,
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user