Modbus scale parameter cuts decimals (#99758)
This commit is contained in:
parent
1c27a0339d
commit
77180a73b7
2 changed files with 34 additions and 0 deletions
|
@ -160,6 +160,8 @@ class BaseStructPlatform(BasePlatform, RestoreEntity):
|
|||
self._structure: str = config[CONF_STRUCTURE]
|
||||
self._precision = config[CONF_PRECISION]
|
||||
self._scale = config[CONF_SCALE]
|
||||
if self._scale < 1 and not self._precision:
|
||||
self._precision = 2
|
||||
self._offset = config[CONF_OFFSET]
|
||||
self._slave_count = config.get(CONF_SLAVE_COUNT, 0)
|
||||
self._slave_size = self._count = config[CONF_COUNT]
|
||||
|
|
|
@ -596,6 +596,38 @@ async def test_config_wrong_struct_sensor(
|
|||
False,
|
||||
"1.23",
|
||||
),
|
||||
(
|
||||
{
|
||||
CONF_DATA_TYPE: DataType.INT32,
|
||||
CONF_SCALE: 10,
|
||||
CONF_OFFSET: 0,
|
||||
CONF_PRECISION: 0,
|
||||
},
|
||||
[0x00AB, 0xCDEF],
|
||||
False,
|
||||
"112593750",
|
||||
),
|
||||
(
|
||||
{
|
||||
CONF_DATA_TYPE: DataType.INT32,
|
||||
CONF_SCALE: 0.01,
|
||||
CONF_OFFSET: 0,
|
||||
CONF_PRECISION: 2,
|
||||
},
|
||||
[0x00AB, 0xCDEF],
|
||||
False,
|
||||
"112593.75",
|
||||
),
|
||||
(
|
||||
{
|
||||
CONF_DATA_TYPE: DataType.INT32,
|
||||
CONF_SCALE: 0.01,
|
||||
CONF_OFFSET: 0,
|
||||
},
|
||||
[0x00AB, 0xCDEF],
|
||||
False,
|
||||
"112593.75",
|
||||
),
|
||||
],
|
||||
)
|
||||
async def test_all_sensor(hass: HomeAssistant, mock_do_cycle, expected) -> None:
|
||||
|
|
Loading…
Add table
Reference in a new issue