Modbus RTU dimmer, write multiple registers

Hello everybody. My last post solved my problem very well so I’m trying again :slight_smile:

I have modbus dimmer for my leds, this is my lights code and it work very well, too:

- platform: template
  scan_interval: 5
  lights:
    led1:
      friendly_name: "Led Sala"
      level_template: "{{ (states('sensor.ledsala1') | int(0) * 1.0) | round(0) | int(0) }}"
      value_template: "{{ states('sensor.ledsala1') | int(0) > 0 }}"
      turn_on:
        - service: modbus.write_register
          data_template:
            hub: "hub1"
            unit: 5
            address: 0
            value: 255
      turn_off:
        - service: modbus.write_register
          data_template:
            hub: "hub1"
            unit: 5
            address: 0
            value: 0
      set_level:
        - service: modbus.write_register
          data_template:
            hub: "hub1"
            unit: 5
            address: 0
            value: "{{ brightness }}"

How I can overwrite a few registers in few values in one time? for example in set_level i have const value on address 3 (address3 = 250) and brigthness on addres 4 (address4 = "{{brigthness}}). Use this 2 registers at one time give me soft lighten and darken effect.

Thank You, and have a nice day.

I have no experience with modbus, I’m just looking at the documentation.
For consecutive registers, this should work:

modbus.write_register: Write register or registers
value: (write_register) A single value or an array of 16-bit values. Single value will call modbus function code 0x06. Array will call modbus function code 0x10. Values might need reverse ordering. E.g., to set 0x0004 you might need to set [4,0], this depend on the byte order of your CPU
Modbus - Home Assistant

If that doesn’t work, you can specify multiple service calls for your template light.

...
     set_level:
        - service: modbus.write_register
          data_template:
            hub: "hub1"
            unit: 5
            address: 3
            value: 250

        - service: modbus.write_register
          data_template:
            hub: "hub1"
            unit: 5
            address: 4
            value: "{{ brightness }}"

Thanks for Your answer, its working !