Correct modbus serial method parameter (#89738)

This commit is contained in:
jan iversen 2023-03-15 12:27:45 +01:00 committed by GitHub
parent 9719f817c0
commit cd23caff58
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 3 deletions

View file

@ -16,7 +16,7 @@ from pymodbus.client import (
from pymodbus.constants import Defaults from pymodbus.constants import Defaults
from pymodbus.exceptions import ModbusException from pymodbus.exceptions import ModbusException
from pymodbus.pdu import ModbusResponse from pymodbus.pdu import ModbusResponse
from pymodbus.transaction import ModbusRtuFramer from pymodbus.transaction import ModbusAsciiFramer, ModbusRtuFramer, ModbusSocketFramer
import voluptuous as vol import voluptuous as vol
from homeassistant.const import ( from homeassistant.const import (
@ -279,9 +279,12 @@ class ModbusHub:
} }
if self._config_type == SERIAL: if self._config_type == SERIAL:
# serial configuration # serial configuration
if client_config[CONF_METHOD] == "ascii":
self._pb_params["framer"] = ModbusAsciiFramer
else:
self._pb_params["framer"] = ModbusRtuFramer
self._pb_params.update( self._pb_params.update(
{ {
"method": client_config[CONF_METHOD],
"baudrate": client_config[CONF_BAUDRATE], "baudrate": client_config[CONF_BAUDRATE],
"stopbits": client_config[CONF_STOPBITS], "stopbits": client_config[CONF_STOPBITS],
"bytesize": client_config[CONF_BYTESIZE], "bytesize": client_config[CONF_BYTESIZE],
@ -293,6 +296,8 @@ class ModbusHub:
self._pb_params["host"] = client_config[CONF_HOST] self._pb_params["host"] = client_config[CONF_HOST]
if self._config_type == RTUOVERTCP: if self._config_type == RTUOVERTCP:
self._pb_params["framer"] = ModbusRtuFramer self._pb_params["framer"] = ModbusRtuFramer
else:
self._pb_params["framer"] = ModbusSocketFramer
Defaults.Timeout = client_config[CONF_TIMEOUT] Defaults.Timeout = client_config[CONF_TIMEOUT]
if CONF_MSG_WAIT in client_config: if CONF_MSG_WAIT in client_config:

View file

@ -378,7 +378,7 @@ async def test_duplicate_entity_validator(do_config) -> None:
CONF_TYPE: SERIAL, CONF_TYPE: SERIAL,
CONF_BAUDRATE: 9600, CONF_BAUDRATE: 9600,
CONF_BYTESIZE: 8, CONF_BYTESIZE: 8,
CONF_METHOD: "rtu", CONF_METHOD: "ascii",
CONF_PORT: TEST_PORT_SERIAL, CONF_PORT: TEST_PORT_SERIAL,
CONF_PARITY: "E", CONF_PARITY: "E",
CONF_STOPBITS: 1, CONF_STOPBITS: 1,