MODBUS RTU reading on Jetson Nano over RS485
EDIT
========================================================================
I'm keeping this answer just in case somebody stumbles on something similar for other devices. But for the particular device of the question, it seems it is actually smart enough to answer queries to registers with and without offset (the devices answers the same when you query register 0 and register 30000).
========================================================================
You are facing what is probably the number one problem with pymodbus: register addresses must be referred to with no offset.
So when your device's manufacturer says you need to read register 30000 you should consider register 0 in pymodbus. I know, it sounds confusing and it is. For holding registers the same rule applies but the offset is 40000.
To add up to an already confusing subject some devices have offsets of 30001 and 40001 instead. Sometimes this means some trial and error will be involved if you want to find the right registers.
Just change this line:
res = client.read_input_registers(address = 30000  , count = 20 , unit = 1 )

to:
res = client.read_input_registers(address = 0  , count = 20 , unit = 1 )

and you are done.
Once you are able to read the correct registers you will probably need to take a look at how to read a float value that spans two registers. In your device, flow rate, for instance, will be received within registers 0 and 1 (or 30000 and 30001 in the manual). But that's for a different question, I guess...