Modbus TCP binding with heatpump

when I create a poll I get Error with read: Slave responded with error=2 (ILLEGAL_DATA_ACCESS)
my setup:
UID: modbus:tcp:492aca8f58
label: Modbus TCP Slave
thingTypeUID: modbus:tcp
rtuEncoded: false
timeBetweenTransactionsMillis: 60
connectMaxTries: 1
reconnectAfterMillis: 0
port: 502
timeBetweenReconnectMillis: 0
connectTimeoutMillis: 10000
id: 1
enableDiscovery: false
UID: modbus:poller:492aca8f58:a544477aec
label: Regular Poll
thingTypeUID: modbus:poller
start: 1
length: 2
refresh: 1000
maxTries: 3
cacheMillis: 50
type: input
bridgeUID: modbus:tcp:492aca8f58

Bridge is shown as Online but trying several combinations for the poller with start,length and type I always get the error=2
I also have this specsheet of my heatpump

You are likely accessing a wrong modbus id or register.
Validate you are using the correct id.
Also check if you need to use a -1 offset like you do for many modbus devices.
(bridge online means little essentially just that the TCP connect worked)

The good news is that you have the correct IP address and Modbus ID - the remote device is responding.
The bad news it is saying “No, I won’t do that”.

As @mstormi says, review your poller config - start address being odd or even numbers, length sometimes only supported in multiples of two or four, type of register is important, decimal or hex addresses confusion.

The code says 1 but the table says to use 241

you mean the ID from the bridge? Thought this has only identity reasons for OH

Wow it works! thank you - I will try now to write data

Good point. Something is responding on ID1 (maybe this is one of those devices with mutiple IDs e.g. 1 for admin and 241 for data)

one maybe basic thing: I now get 170 as value (Item is set to number:temp) but it should be 17.0
maybe this is a “,” and “.” thing as I am in Europe and we use comma decimal sign. how can I get the raw data what the poller is responding?

This is the raw data that you get unless you’ve applied a transformation which I guess you didn’t. I’d guess there should be some remark in your manufacturer’s doc stating the unit is tenth of. If so you should use a JS transformation to divide the raw value by 10 before assigning it to your item.
You can log:set debug org.openhab.binding.modbus in OH console to see all raw communication to confirm.

You should also step back from Modbus for a minute and revisit your understanding of OH as a whole system. Representation (, . etc) has nothing to do with Modbus. Misunderstandings about general OH concepts will lead to many more problems and frustration on everybody’s part.

Modbus - Bindings | openHAB
here is my problem listed - but thanks anyway for your help

The problem behind is the same; solution, too (a transformation) - just applied on a different level.