mirror of
https://github.com/esphome/esphome.git
synced 2024-11-25 16:38:16 +01:00
[modbus_controller] fix incorrect start address for number write (#3073)
This commit is contained in:
parent
cb5f793ede
commit
434ab65c16
1 changed files with 4 additions and 2 deletions
|
@ -57,9 +57,11 @@ void ModbusNumber::control(float value) {
|
|||
// Create and send the write command
|
||||
ModbusCommandItem write_cmd;
|
||||
if (this->register_count == 1 && !this->use_write_multiple_) {
|
||||
write_cmd = ModbusCommandItem::create_write_single_command(parent_, this->start_address + this->offset, data[0]);
|
||||
// since offset is in bytes and a register is 16 bits we get the start by adding offset/2
|
||||
write_cmd =
|
||||
ModbusCommandItem::create_write_single_command(parent_, this->start_address + this->offset / 2, data[0]);
|
||||
} else {
|
||||
write_cmd = ModbusCommandItem::create_write_multiple_command(parent_, this->start_address + this->offset,
|
||||
write_cmd = ModbusCommandItem::create_write_multiple_command(parent_, this->start_address + this->offset / 2,
|
||||
this->register_count, data);
|
||||
}
|
||||
// publish new value
|
||||
|
|
Loading…
Reference in a new issue