I was looking at the source code of dbus-modbus-client and there's one thing I don't understand.
In the code, there's this line:
def phase_regs(self, n): s = 2 * (n - 1) return [ ... Reg_s32l(0x0040 + s, '/Ac/L%d/Energy/Forward' % n, 10, '%.1f kWh'), ]
where n 1-3 and `s` can be from 0 to 2, and therefore it will read registers 0x40, 0x42, 0x44.
But according to the device documentation, these are:
300065 0040h 2 kvarh(+) TOT INT32 Value weight: kvarh*10 300067 0042h 2 KWh(+) PAR INT32 Value weight: kWh*10 300069 0044h 2 kvarh(+) PAR INT32 Value weight: kvarh*10
And the values we need are in:
300071 0046h 2 kWh(+) L1 INT32 Value weight: kWh*10 300073 0048h 2 kWh(+) L2 INT32 Value weight: kWh*10 300075 004Ah 2 kWh(+) L3 INT32 Value weight: kWh*10
Am I misunderstanding something or this is bug ?
Thank you.