Update modbus.py (#11238)
Support of MODBUS RTU over TCP ethernet mode. See more description here: https://www.eltima.com/modbus-over-ethernet/pull/11357/head
parent
3203849b60
commit
9a34e7174c
|
@ -40,7 +40,7 @@ SERIAL_SCHEMA = {
|
|||
ETHERNET_SCHEMA = {
|
||||
vol.Required(CONF_HOST): cv.string,
|
||||
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,
|
||||
}
|
||||
|
||||
|
@ -92,6 +92,13 @@ def setup(hass, config):
|
|||
bytesize=config[DOMAIN][CONF_BYTESIZE],
|
||||
parity=config[DOMAIN][CONF_PARITY],
|
||||
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':
|
||||
from pymodbus.client.sync import ModbusTcpClient as ModbusClient
|
||||
client = ModbusClient(host=config[DOMAIN][CONF_HOST],
|
||||
|
|
Loading…
Reference in New Issue