Modbus - Pymodbus: Exception Response(131, 3, IllegalAddress)

I’m at my wits end trying to get a Modbus connection working with my Triangle Tube Prestige Boiler (page 43 is the start of the Modbus info). Using a known working RS485 USB module that is recognized in HAAS, I am getting the exception error no matter what I try. I can get results when connecting via my rPi and running tt-status. My configuration is below and you can see I’ve tried 2 different port options with the same results and I’ve tried register 0 with the same exception. Any help would be appreciated.

logger:
  default: info
  logs:
    homeassistant.components.modbus: debug
    pymodbus.client: debug

modbus:
    - type: serial
      baudrate: 38400
      bytesize: 8
      parity: N
      stopbits: 1
      method: rtu
      port: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
#      port: /dev/ttyUSB0
      name: "modbus_hub1"
#      close_comm_on_error: true
      delay: 5
    
      sensors:
        - name: "supply-temp"
          unit_of_measurement: °F
          slave: 1
          address: 768

Log output:

2021-07-18 15:56:54 DEBUG (SyncWorker_5) [pymodbus.client.sync] New Transaction state 'SENDING'
2021-07-18 15:56:54 DEBUG (SyncWorker_5) [homeassistant.components.modbus.modbus] Pymodbus: Exception Response(131, 3, IllegalAddress)

Looking at the docs, I think 768 is an input register, not holding (default).
Not much difference, input is read only, but the protocol uses a different function code for handling both.

input_type string (optional)
Modbus register type (holding, input), default holding.

I would try adding input_type: input to the sensor config.

Thanks!!
input_type: input ← solved the error.
The logs are now showing below, but I’m not seeing a response. Does this look normal or should I be seeing a response?

2021-07-18 17:23:05 DEBUG (SyncWorker_0) [pymodbus.client.sync] New Transaction state 'SENDING'
2021-07-18 17:23:20 DEBUG (SyncWorker_1) [pymodbus.client.sync] New Transaction state 'SENDING'
2021-07-18 17:23:35 DEBUG (SyncWorker_0) [pymodbus.client.sync] New Transaction state 'SENDING'
2021-07-18 17:23:50 DEBUG (SyncWorker_1) [pymodbus.client.sync] New Transaction state 'SENDING'

This looks normal to me, I’ve seen the same in my instance.

Thanks for the help on this. I was wondering if you could offer some assistance on one additional items?

Address 0 is the boiler status based on the bits. Do you have an idea how to address that? I did find a similar post but would require switching that one Address to a register. Is this the only way to get the results that you know of?

Yes according to your boiler docs, you again need to read a whole input register from address 0 (only modbus function 04 is supported). Up to you how to decode the bits.