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._structure: str = config[CONF_STRUCTURE]
|
||||||
self._precision = config[CONF_PRECISION]
|
self._precision = config[CONF_PRECISION]
|
||||||
self._scale = config[CONF_SCALE]
|
self._scale = config[CONF_SCALE]
|
||||||
|
if self._scale < 1 and not self._precision:
|
||||||
|
self._precision = 2
|
||||||
self._offset = config[CONF_OFFSET]
|
self._offset = config[CONF_OFFSET]
|
||||||
self._slave_count = config.get(CONF_SLAVE_COUNT, 0)
|
self._slave_count = config.get(CONF_SLAVE_COUNT, 0)
|
||||||
self._slave_size = self._count = config[CONF_COUNT]
|
self._slave_size = self._count = config[CONF_COUNT]
|
||||||
|
|
|
@ -596,6 +596,38 @@ async def test_config_wrong_struct_sensor(
|
||||||
False,
|
False,
|
||||||
"1.23",
|
"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:
|
async def test_all_sensor(hass: HomeAssistant, mock_do_cycle, expected) -> None:
|
||||||
|
|
Loading…
Add table
Reference in a new issue