mirror of
https://github.com/home-assistant/core.git
synced 2025-07-14 08:47:10 +00:00
Update modbus.py (#11238)
Support of MODBUS RTU over TCP ethernet mode. See more description here: https://www.eltima.com/modbus-over-ethernet/
This commit is contained in:
parent
3203849b60
commit
9a34e7174c
@ -40,7 +40,7 @@ SERIAL_SCHEMA = {
|
|||||||
ETHERNET_SCHEMA = {
|
ETHERNET_SCHEMA = {
|
||||||
vol.Required(CONF_HOST): cv.string,
|
vol.Required(CONF_HOST): cv.string,
|
||||||
vol.Required(CONF_PORT): cv.positive_int,
|
vol.Required(CONF_PORT): cv.positive_int,
|
||||||
vol.Required(CONF_TYPE): vol.Any('tcp', 'udp'),
|
vol.Required(CONF_TYPE): vol.Any('tcp', 'udp', 'rtuovertcp'),
|
||||||
vol.Optional(CONF_TIMEOUT, default=3): cv.socket_timeout,
|
vol.Optional(CONF_TIMEOUT, default=3): cv.socket_timeout,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -92,6 +92,13 @@ def setup(hass, config):
|
|||||||
bytesize=config[DOMAIN][CONF_BYTESIZE],
|
bytesize=config[DOMAIN][CONF_BYTESIZE],
|
||||||
parity=config[DOMAIN][CONF_PARITY],
|
parity=config[DOMAIN][CONF_PARITY],
|
||||||
timeout=config[DOMAIN][CONF_TIMEOUT])
|
timeout=config[DOMAIN][CONF_TIMEOUT])
|
||||||
|
elif client_type == 'rtuovertcp':
|
||||||
|
from pymodbus.client.sync import ModbusTcpClient as ModbusClient
|
||||||
|
from pymodbus.transaction import ModbusRtuFramer as ModbusFramer
|
||||||
|
client = ModbusClient(host=config[DOMAIN][CONF_HOST],
|
||||||
|
port=config[DOMAIN][CONF_PORT],
|
||||||
|
framer=ModbusFramer,
|
||||||
|
timeout=config[DOMAIN][CONF_TIMEOUT])
|
||||||
elif client_type == 'tcp':
|
elif client_type == 'tcp':
|
||||||
from pymodbus.client.sync import ModbusTcpClient as ModbusClient
|
from pymodbus.client.sync import ModbusTcpClient as ModbusClient
|
||||||
client = ModbusClient(host=config[DOMAIN][CONF_HOST],
|
client = ModbusClient(host=config[DOMAIN][CONF_HOST],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user