Yup.
The binding can only read consecutive blocks of registers, because that is all that Modbus standard allows.
The binding can only treat such blocks as the same datatype throughout (int32 in this case), because it would get really confusing if we mixed datatypes within a block
But there is nothing in OpenHAB to prevent you reading a block and not using all the registers in it.
So to poll 200, 202 and 216 you might have
serial.block1.start=200
serial.block1.length=18
serial.block1.valuetype=int32
This will read all Modbus 16-bit registers 200 to 217, and the binding will process them into 9 32-bit data elements
You would pick the three you want like
Number Aussen1_MB "data 200 raw" {modbus="block1:0"}
Number Aussen2_MB "data 202 raw" {modbus="block1:1"}
Number Aussen3_MB "data 216 raw" {modbus="block1:8"}
This would use the first, second, and ninth data pairs in OpenHAB and simply not use the others in-between - though they do get read over Modbus.
Unfortunately, there is a complication. Modbus slaves are NOT obliged to allow reads from registers that their designers have not defined. They might respond with null data, or they might reject the read altogether. Rejection might take the form of an error code response, or it might simply ignore it and produce a timeout.
So the technique above may or may not work with any given device, if the registers in-between are not defined by the designer.
It’s a case of try it and see.
If it doesn’t work, then you have to split the blocks. There is nothing to stop you defining more than one ‘virtual’ slave in the binding config for the same physical device.
Indeed, you have to do that where different datatypes are involved, such as input registers and holding registers, or 16 and 32 bit numbers.
So for your example we could define two slaves
serial.block1.connection=/dev/ttyAMA0:9600:8:none:1:rtu
serial.block1.id=1
serial.block1.type=input
serial.block1.start=200
serial.block1.length=4
serial.block1.valuetype=int32
serial.block2.connection=/dev/ttyAMA0:9600:8:none:1:rtu
serial.block2.id=1
serial.block2.type=input
serial.block2.start=216
serial.block2.length=2
serial.block2.valuetype=int32
This would read only the registers wanted, at the cost of polling the device twice instead of once.
Items would then be
Number Aussen1_MB "data 200 raw" {modbus="block1:0"}
Number Aussen2_MB "data 202 raw" {modbus="block1:1"}
Number Aussen3_MB "data 216 raw" {modbus="block2:0"}
for the first two pairs in block1 and the first pair in block2