Difficulty in reading values Modbus application in Python(Pyserial) On Energy meter (EM6400)
You could try using pymodbus instead. This is a layer that sits on top of pyserial that handles the complexities for you. It depends on twisted, but it will work without twisted for this simple case.

from pymodbus.client.sync import ModbusSerialClient as ModbusClient
modbus = ModbusClient(method='rtu', port='/dev/ttyUSB3', baudrate=9600, timeout=1)
modbus.connect()
r = modbus.read_holding_registers(0x0F56, 2, unit=1)


The data you're looking for should then be in r.registers[0] and r.registers[1].