mirror of
https://github.com/home-assistant/core.git
synced 2025-04-24 17:27:52 +00:00
Add test for modbus CONF_DEVICE_ADDR (#100435)
This commit is contained in:
parent
b329439fff
commit
fd83f7d87f
@ -312,7 +312,7 @@ SENSOR_SCHEMA = vol.All(
|
||||
vol.Optional(CONF_STATE_CLASS): SENSOR_STATE_CLASSES_SCHEMA,
|
||||
vol.Optional(CONF_UNIT_OF_MEASUREMENT): cv.string,
|
||||
vol.Exclusive(CONF_VIRTUAL_COUNT, "vir_sen_count"): cv.positive_int,
|
||||
vol.Optional(CONF_SLAVE_COUNT, "vir_sen_count"): cv.positive_int,
|
||||
vol.Exclusive(CONF_SLAVE_COUNT, "vir_sen_count"): cv.positive_int,
|
||||
vol.Optional(CONF_MIN_VALUE): number_validator,
|
||||
vol.Optional(CONF_MAX_VALUE): number_validator,
|
||||
vol.Optional(CONF_NAN_VALUE): nan_validator,
|
||||
|
@ -10,7 +10,7 @@ from pymodbus.exceptions import ModbusException
|
||||
import pytest
|
||||
|
||||
from homeassistant.components.modbus.const import MODBUS_DOMAIN as DOMAIN, TCP
|
||||
from homeassistant.const import CONF_HOST, CONF_NAME, CONF_PORT, CONF_SLAVE, CONF_TYPE
|
||||
from homeassistant.const import CONF_HOST, CONF_NAME, CONF_PORT, CONF_TYPE
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.setup import async_setup_component
|
||||
import homeassistant.util.dt as dt_util
|
||||
@ -87,9 +87,6 @@ async def mock_modbus_fixture(
|
||||
for key in conf:
|
||||
if 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)
|
||||
config = {
|
||||
DOMAIN: [
|
||||
|
@ -8,6 +8,7 @@ from homeassistant.components.modbus.const import (
|
||||
CALL_TYPE_DISCRETE,
|
||||
CALL_TYPE_REGISTER_HOLDING,
|
||||
CALL_TYPE_REGISTER_INPUT,
|
||||
CONF_DEVICE_ADDRESS,
|
||||
CONF_INPUT_TYPE,
|
||||
CONF_LAZY_ERROR,
|
||||
CONF_SLAVE_COUNT,
|
||||
@ -60,6 +61,18 @@ SLAVE_UNIQUE_ID = "ground_floor_sensor"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
CONF_BINARY_SENSORS: [
|
||||
{
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 51,
|
||||
CONF_DEVICE_ADDRESS: 10,
|
||||
CONF_INPUT_TYPE: CALL_TYPE_DISCRETE,
|
||||
CONF_DEVICE_CLASS: "door",
|
||||
CONF_LAZY_ERROR: 10,
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
CONF_BINARY_SENSORS: [
|
||||
{
|
||||
@ -70,6 +83,16 @@ SLAVE_UNIQUE_ID = "ground_floor_sensor"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
CONF_BINARY_SENSORS: [
|
||||
{
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 51,
|
||||
CONF_DEVICE_ADDRESS: 10,
|
||||
CONF_INPUT_TYPE: CALL_TYPE_REGISTER_INPUT,
|
||||
}
|
||||
]
|
||||
},
|
||||
],
|
||||
)
|
||||
async def test_config_binary_sensor(hass: HomeAssistant, mock_modbus) -> None:
|
||||
@ -299,7 +322,7 @@ TEST_NAME = "test_sensor"
|
||||
CONF_BINARY_SENSORS: [
|
||||
{
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 51,
|
||||
CONF_ADDRESS: 52,
|
||||
CONF_VIRTUAL_COUNT: 3,
|
||||
}
|
||||
]
|
||||
|
@ -11,6 +11,7 @@ from homeassistant.components.climate.const import (
|
||||
from homeassistant.components.modbus.const import (
|
||||
CONF_CLIMATES,
|
||||
CONF_DATA_TYPE,
|
||||
CONF_DEVICE_ADDRESS,
|
||||
CONF_HVAC_MODE_AUTO,
|
||||
CONF_HVAC_MODE_COOL,
|
||||
CONF_HVAC_MODE_DRY,
|
||||
@ -57,6 +58,16 @@ ENTITY_ID = f"{CLIMATE_DOMAIN}.{TEST_ENTITY_NAME}".replace(" ", "_")
|
||||
}
|
||||
],
|
||||
},
|
||||
{
|
||||
CONF_CLIMATES: [
|
||||
{
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_TARGET_TEMP: 117,
|
||||
CONF_ADDRESS: 117,
|
||||
CONF_DEVICE_ADDRESS: 10,
|
||||
}
|
||||
],
|
||||
},
|
||||
{
|
||||
CONF_CLIMATES: [
|
||||
{
|
||||
|
@ -7,6 +7,7 @@ from homeassistant.components.cover import DOMAIN as COVER_DOMAIN
|
||||
from homeassistant.components.modbus.const import (
|
||||
CALL_TYPE_COIL,
|
||||
CALL_TYPE_REGISTER_HOLDING,
|
||||
CONF_DEVICE_ADDRESS,
|
||||
CONF_INPUT_TYPE,
|
||||
CONF_LAZY_ERROR,
|
||||
CONF_STATE_CLOSED,
|
||||
@ -62,6 +63,18 @@ ENTITY_ID2 = f"{ENTITY_ID}_2"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
CONF_COVERS: [
|
||||
{
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_INPUT_TYPE: CALL_TYPE_REGISTER_HOLDING,
|
||||
CONF_DEVICE_ADDRESS: 10,
|
||||
CONF_SCAN_INTERVAL: 20,
|
||||
CONF_LAZY_ERROR: 10,
|
||||
}
|
||||
]
|
||||
},
|
||||
],
|
||||
)
|
||||
async def test_config_cover(hass: HomeAssistant, mock_modbus) -> None:
|
||||
|
@ -8,6 +8,7 @@ from homeassistant.components.modbus.const import (
|
||||
CALL_TYPE_DISCRETE,
|
||||
CALL_TYPE_REGISTER_HOLDING,
|
||||
CALL_TYPE_REGISTER_INPUT,
|
||||
CONF_DEVICE_ADDRESS,
|
||||
CONF_FANS,
|
||||
CONF_INPUT_TYPE,
|
||||
CONF_LAZY_ERROR,
|
||||
@ -75,6 +76,24 @@ ENTITY_ID2 = f"{ENTITY_ID}_2"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
CONF_FANS: [
|
||||
{
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_DEVICE_ADDRESS: 1,
|
||||
CONF_COMMAND_OFF: 0x00,
|
||||
CONF_COMMAND_ON: 0x01,
|
||||
CONF_LAZY_ERROR: 10,
|
||||
CONF_VERIFY: {
|
||||
CONF_INPUT_TYPE: CALL_TYPE_REGISTER_HOLDING,
|
||||
CONF_ADDRESS: 1235,
|
||||
CONF_STATE_OFF: 0,
|
||||
CONF_STATE_ON: 1,
|
||||
},
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
CONF_FANS: [
|
||||
{
|
||||
|
@ -41,6 +41,7 @@ from homeassistant.components.modbus.const import (
|
||||
CONF_BAUDRATE,
|
||||
CONF_BYTESIZE,
|
||||
CONF_DATA_TYPE,
|
||||
CONF_DEVICE_ADDRESS,
|
||||
CONF_INPUT_TYPE,
|
||||
CONF_MSG_WAIT,
|
||||
CONF_PARITY,
|
||||
@ -517,6 +518,20 @@ async def test_duplicate_entity_validator(do_config) -> None:
|
||||
}
|
||||
],
|
||||
},
|
||||
{
|
||||
# Special test for scan_interval validator with scan_interval: 0
|
||||
CONF_TYPE: TCP,
|
||||
CONF_HOST: TEST_MODBUS_HOST,
|
||||
CONF_PORT: TEST_PORT_TCP,
|
||||
CONF_SENSORS: [
|
||||
{
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 117,
|
||||
CONF_DEVICE_ADDRESS: 0,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
}
|
||||
],
|
||||
},
|
||||
],
|
||||
)
|
||||
async def test_config_modbus(
|
||||
|
@ -8,6 +8,7 @@ from homeassistant.components.modbus.const import (
|
||||
CALL_TYPE_DISCRETE,
|
||||
CALL_TYPE_REGISTER_HOLDING,
|
||||
CALL_TYPE_REGISTER_INPUT,
|
||||
CONF_DEVICE_ADDRESS,
|
||||
CONF_INPUT_TYPE,
|
||||
CONF_LAZY_ERROR,
|
||||
CONF_STATE_OFF,
|
||||
@ -75,6 +76,23 @@ ENTITY_ID2 = f"{ENTITY_ID}_2"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
CONF_LIGHTS: [
|
||||
{
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_DEVICE_ADDRESS: 1,
|
||||
CONF_COMMAND_OFF: 0x00,
|
||||
CONF_COMMAND_ON: 0x01,
|
||||
CONF_VERIFY: {
|
||||
CONF_INPUT_TYPE: CALL_TYPE_REGISTER_HOLDING,
|
||||
CONF_ADDRESS: 1235,
|
||||
CONF_STATE_OFF: 0,
|
||||
CONF_STATE_ON: 1,
|
||||
},
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
CONF_LIGHTS: [
|
||||
{
|
||||
|
@ -8,6 +8,7 @@ from homeassistant.components.modbus.const import (
|
||||
CALL_TYPE_REGISTER_HOLDING,
|
||||
CALL_TYPE_REGISTER_INPUT,
|
||||
CONF_DATA_TYPE,
|
||||
CONF_DEVICE_ADDRESS,
|
||||
CONF_INPUT_TYPE,
|
||||
CONF_LAZY_ERROR,
|
||||
CONF_MAX_VALUE,
|
||||
@ -86,6 +87,23 @@ SLAVE_UNIQUE_ID = "ground_floor_sensor"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
CONF_SENSORS: [
|
||||
{
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 51,
|
||||
CONF_DEVICE_ADDRESS: 10,
|
||||
CONF_DATA_TYPE: DataType.INT16,
|
||||
CONF_PRECISION: 0,
|
||||
CONF_SCALE: 1,
|
||||
CONF_OFFSET: 0,
|
||||
CONF_STATE_CLASS: SensorStateClass.MEASUREMENT,
|
||||
CONF_LAZY_ERROR: 10,
|
||||
CONF_INPUT_TYPE: CALL_TYPE_REGISTER_HOLDING,
|
||||
CONF_DEVICE_CLASS: "battery",
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
CONF_SENSORS: [
|
||||
{
|
||||
|
@ -11,6 +11,7 @@ from homeassistant.components.modbus.const import (
|
||||
CALL_TYPE_DISCRETE,
|
||||
CALL_TYPE_REGISTER_HOLDING,
|
||||
CALL_TYPE_REGISTER_INPUT,
|
||||
CONF_DEVICE_ADDRESS,
|
||||
CONF_INPUT_TYPE,
|
||||
CONF_LAZY_ERROR,
|
||||
CONF_STATE_OFF,
|
||||
@ -85,6 +86,24 @@ ENTITY_ID2 = f"{ENTITY_ID}_2"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
CONF_SWITCHES: [
|
||||
{
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_DEVICE_ADDRESS: 1,
|
||||
CONF_COMMAND_OFF: 0x00,
|
||||
CONF_COMMAND_ON: 0x01,
|
||||
CONF_DEVICE_CLASS: "switch",
|
||||
CONF_VERIFY: {
|
||||
CONF_INPUT_TYPE: CALL_TYPE_REGISTER_HOLDING,
|
||||
CONF_ADDRESS: 1235,
|
||||
CONF_STATE_OFF: 0,
|
||||
CONF_STATE_ON: 1,
|
||||
},
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
CONF_SWITCHES: [
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user