Beginner tries to receive Modbus data

Hello everyone,

I finally received my heating update today. The Modbus interface was integrated through the update. Unfortunately there is no HACS solution for this (Paradigma - SystaComfort)

So today I tried to deal with Modbus to understand how I can get data here. A connection between heating and HA is already established - that works.

But I still do not understand how I say in the config which Modbus table I am referring to?
There are good instructions for the heater, where the individual addresses and tables are described. According to the instructions there are 4 Modbus tables:

  • Coils - Function Code 0x01 & 0x05
  • Discrete Inputs - (not used)
  • Input Registers - Function Code 0x04
  • Holding Registers - Function Code 0x03 & 0x10

There is a test register:

  • Register address: 9998
  • Value: 543
  • Data type: int16
  • Scale: 0.1
  • Unit: ° C
  • Function code: 0x04
  • Slave: 1
  • Modbus mode: TCP
  • Number of Register: 1

Now I have tried to call up this test register with the following code:

modbus:
  - name: systacomfort
    type: tcp
    host: 192.168.178.47
    port: 502
    sensors:
     - name: testdata
       scan_interval: 100
       slave: 1
       scale: 0.1
       unit_of_measurement: ° C
       address: 9998
       data_type: int16

I have read that it also happens that the different tables are defined by a longer address. According to this information, the address should have been 39998 or 309998. Unfortunately, I do not receive any data with this adjustment either.

I then tested it on the computer with QModMaster - here I get the test data:
image

Can someone help me how to get the test data in HA?

Thanks

input_type: input
1 Like

Hi @Yagyu,
I get my Paradigma heater in 3 weeks and am very interested in your project. My question: Do you really have the SystaComfort control? I thought the modBus api is only available with SystaSmartC?

Could you explain how you connected the SystaComfort with home assistant?

Thanks in advance and greetings

Hello @smartvoud ,

Yes the SystaComfort II have the Modbus API with V. 2.16.

Bottom of this Site: Modbus-Schnittstelle für Gebäudeleitsysteme

it’s very easy. You have to activate Modbus in the S-Touch and read out your IP in the settings.

Then you can simply query the data with the following config:

modbus:
  - name: systacomfort
    type: tcp
    host: ---- IP ------
    port: ----- PORT -----
    sensors:
     - name: "AuĂźentemperatur"
       scan_interval: 100
       slave: 1
       input_type: input
       scale: 0.1
       unit_of_measurement: °C
       address: 0
       data_type: int16
       precision: 2
     - name: "Vorlauftemp HK1"
       scan_interval: 100
       slave: 1
       input_type: input
       scale: 0.1
       unit_of_measurement: °C
       address: 1
       data_type: int16
       precision: 2
     - name: "RĂĽcklauftemp HK1"
       scan_interval: 100
       slave: 1
       input_type: input
       scale: 0.1
       unit_of_measurement: °C
       address: 2
       data_type: int16
       precision: 2
 [...]
   
## Writing
    climates:
      - name: "Sollwert Vorlauf HK1"
        scan_interval: 100
        slave: 1
        address: 2
        input_type: holding
        max_temp: 50
        min_temp: 25
        precision: 1
        scale: 0.1
        target_temp_register: 2

I have not yet used writing data. Here you have to make sure that the write command does not take place again for 5 minutes, the SystaComfort resets the settings to those set on the device.
All exact addresses can be found in the above-mentioned PDF on the Paradigm page

Thank you! I will dig into it when my heater is installed.

I am about to collect data of systa comfort 2 using the Modbus, which was mentioned above. The status data are displayed in the overview, but influxdb doesn`t collect any measurements see my post

how did solveyou it?

hello, were you able to write the data? I’m trying with the climates function, but at the holding register address 2 set point, it returns illegal function. Have you seen anything? I have yet to try and see what the requests are with wireshark.