Good question, that does get a bit tricky but your suggestion might work, these settings are all internal to the modbus interfacer and so it can choose to handle these in the way you suggest without requiring changes elsewhere in emonhub…
I wonder if this might work, might be easier to manage in terms on the implementation?:
[[SDM120]]
Type = EmonHubMinimalModbusInterfacer
[[[init_settings]]]
device = /dev/ttyUSB0
baud = 9600
bytesize = 8
parity = PARITY_NONE
stopbits = 1
timeout = 1
[[[runtimesettings]]]
pubchannels = ToEmonCMS,
read_interval = 10
[[[[devices]]]]
[[[[[heatpump]]]]]
modbus_addr = 1
registers = 0,6,12,18,30,70,72,74,76
names = V,I,P,VA,PF,FR,EI,EE,RI
precision = 2,3,1,1,3,3,3,3,3
[[[[[pv]]]]]
modbus_addr = 2
registers = 0,6,12,18,30,70,72,74,76
names = V,I,P,VA,PF,FR,EI,EE,RI
precision = 2,3,1,1,3,3,3,3,3