Perhaps you need to check those data_types and swap and there is also two registers L and H, this one is example for the older UPower taken from this thread EPEVER Modbus RS-485 Config - #67 by dylan
- name: "Solaire Watt L"
unique_id: epever.solarwatt
unit_of_measurement: W
slave: 1
address: 12546
input_type: input
data_type: int32
scale: 0.01
count: 2
precision: 2
swap: word
- name: "Solaire Watt H"
unique_id: epever.solarwatt2
unit_of_measurement: kWh
slave: 1
address: 12547
input_type: input
data_type: int32
scale: 0.01
count: 2
precision: 2
swap: word
Maybe the len value from perl scripts means that it reads also next register like this example 12546&12547. But how to get one value from those two registers, I don’t know.
Check from docs https://www.home-assistant.io/integrations/modbus/
Let me know if you get it working.