Blueprint for Paradigma SystaSmartC or Systa Comfort 2 (Modbus)

Hello,

does everyone use the full requests of

Paradigma
→ SystaSmartC

or
→ Systa Comfort II ?

Maybe someone can help me with a yaml script so that I will not have to do it (create) again.

Best regards

Tim

Blunt reply: No.

Exactly what is your issue? What are you creating again?

Would using something like this help?

With the information i could find i made 2 templates for the protocol_wizard.
(below an example part)
You could runtime add all these registers in one go via the integration and presto have all the registers.
GitHub - partach/protocol_wizard: The Protocol Wizard helps you build your home assistant devices without need for any yaml!.
Will add the templates in the next release (can make today if requested)

[
  {
    "name": "Boiler Status",
    "address": 0,
    "data_type": "uint16",
    "register_type": "holding",
    "rw": "read",
    "unit": "",
    "scale": 1.0,
    "offset": 0.0,
    "byte_order": "big",
    "word_order": "big",
    "allow_bits": false,
    "options": "{\"0\": \"Standby\", \"1\": \"Heating\", \"2\": \"Error\"}"
  },
  {
    "name": "Current Boiler Temperature",
    "address": 1,
    "data_type": "float32",
    "register_type": "holding",
    "rw": "read",
    "unit": "°C",
    "scale": 0.1,
    "offset": 0.0,
    "byte_order": "big",
    "word_order": "big",
    "allow_bits": false
  },
  {
    "name": "Set Boiler Temperature",
    "address": 2,
    "data_type": "float32",
    "register_type": "holding",
    "rw": "rw",
    "unit": "°C",
    "scale": 0.1,
    "offset": 0.0,
    "byte_order": "big",
    "word_order": "big",
    "allow_bits": false
  },
  {
    "name": "Pump Status",
    "address": 10,
    "data_type": "uint16",
    "register_type": "holding",
    "rw": "read",
    "unit": "",
    "scale": 1.0,
    "offset": 0.0,
    "byte_order": "big",
    "word_order": "big",
    "allow_bits": false,
    "options": "{\"0\": \"Off\", \"1\": \"On\"}"
  },
  {
    "name": "Outdoor Temperature",
    "address": 20,
    "data_type": "float32",
    "register_type": "holding",
    "rw": "read",
    "unit": "°C",
    "scale": 0.1,
    "offset": 0.0,
    "byte_order": "big",
    "word_order": "big",
    "allow_bits": false
  },
  {
    "name": "Total Operating Hours",
    "address": 30,
    "data_type": "uint32",
    "register_type": "holding",
    "rw": "read",
    "unit": "h",
    "scale": 1.0,
    "offset": 0.0,
    "byte_order": "big",
    "word_order": "big",
    "allow_bits": false
  },
  {
    "name": "Fault Code",
    "address": 40,
    "data_type": "uint16",
    "register_type": "holding",
    "rw": "read",
    "unit": "",
    "scale": 1.0,
    "offset": 0.0,
    "byte_order": "big",
    "word_order": "big",
    "allow_bits": false
  }
]```

Hello partach,

thanks for answering my request.

I need both blueprints because I have both heatings.

What I wanted to have is something like ths;

- name: "SystaComfort"
  type: tcp
  host: 192.XXX.XXX.XX
  port: 5XX 
  sensors:
    - name: "Außentemperatur_Heizungsregler-SystaComfort2"
      unique_id: Außentemperatur_Heizungsregler-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 0
      data_type: int16

    - name: "Vorlauftemperatur Heizkreis 1_Heizungsregler-SystaComfort2"
      unique_id: Vorlauftemperatur Heizkreis 1_Heizungsregler-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 1
      data_type: int16

    - name: "Rücklauftemperatur Heizkreis 1_Heizungsregler-SystaComfort2"
      unique_id: Rücklauftemperatur Heizkreis 1_Heizungsregler-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 2
      data_type: int16

    - name: "Warmwassertemperatur oben_Heizungsregler-SystaComfort2"
      unique_id: Warmwassertemperatur oben_Heizungsregler-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 3
      data_type: int16

    - name: "Puffertemperatur oben_Heizungsregler-SystaComfort2"
      unique_id: Puffertemperatur oben_Heizungsregler-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 4
      data_type: int16

    - name: "Puffertemperatur unten_Heizungsregler-SystaComfort2"
      unique_id: Puffertemperatur unten_Heizungsregler-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 5
      data_type: int16

    - name: "Temperatur Zirkulationsrücklauf_Heizungsregler-SystaComfort2"
      unique_id: Temperatur Zirkulationsrücklauf_Heizungsregler-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 6
      data_type: int16

    - name: "Vorlauftemperatur Heizkreis 2_Heizungsregler-SystaComfort2"
      unique_id: Vorlauftemperatur Heizkreis 2_Heizungsregler-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 7
      data_type: int16

    - name: "Rücklauftemperatur Heizkreis 2_Heizungsregler-SystaComfort2"
      unique_id: Rücklauftemperatur Heizkreis 2_Heizungsregler-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 8
      data_type: int16

    - name: "Raumtemperatur Heizkreis 1_Heizungsregler-SystaComfort2"
      unique_id: Raumtemperatur Heizkreis 1_Heizungsregler-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 9
      data_type: int16

    - name: "Raumtemperatur Heizkreis 2_Heizungsregler-SystaComfort2"
      unique_id: Raumtemperatur Heizkreis 2_Heizungsregler-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 10
      data_type: int16

    - name: "_SystaSolar Aqua II-SystaComfort2"
      unique_id: _SystaSolar Aqua II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 11
      data_type: int16

    - name: "Vorlauftemperatur Kessel_Kessel (OT/LAN)-SystaComfort2"
      unique_id: Vorlauftemperatur Kessel_Kessel (OT/LAN)-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 12
      data_type: int16

    - name: "Rücklauftemperatur Kessel_Kessel (OT/LAN)-SystaComfort2"
      unique_id: Rücklauftemperatur Kessel_Kessel (OT/LAN)-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 13
      data_type: int16

    - name: "Vorlauftemperatur Holzkessel_SystaComfort Wood-SystaComfort2"
      unique_id: Vorlauftemperatur Holzkessel_SystaComfort Wood-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 14
      data_type: int16

    - name: "Rücklauftemperatur Holzkessel_SystaComfort Wood-SystaComfort2"
      unique_id: Rücklauftemperatur Holzkessel_SystaComfort Wood-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 15
      data_type: int16

    - name: "Puffertemperatur oben Holzkessel_SystaComfort Wood-SystaComfort2"
      unique_id: Puffertemperatur oben Holzkessel_SystaComfort Wood-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 16
      data_type: int16

    - name: "Vorlauftemperatur Heizkreis 3_SystaComfort Heat-SystaComfort2"
      unique_id: Vorlauftemperatur Heizkreis 3_SystaComfort Heat-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 17
      data_type: int16

    - name: "Rücklauftemperatur Heizkreis 3 _SystaComfort Heat-SystaComfort2"
      unique_id: Rücklauftemperatur Heizkreis 3 _SystaComfort Heat-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 18
      data_type: int16

    - name: "Schwimmbad-Temperatur_SystaComfort Pool-SystaComfort2"
      unique_id: Schwimmbad-Temperatur_SystaComfort Pool-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 19
      data_type: int16

    - name: "Vorlauftemperatur Schwimmbad-_SystaComfort Pool-SystaComfort2"
      unique_id: Vorlauftemperatur Schwimmbad-_SystaComfort Pool-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 20
      data_type: int16

    - name: "Rücklauftemperatur_SystaComfort Pool-SystaComfort2"
      unique_id: Rücklauftemperatur_SystaComfort Pool-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 21
      data_type: int16

    - name: "Einschaltfühler Schichtenspeicher_SystaComfort SI/KAS-SystaComfort2"
      unique_id: Einschaltfühler Schichtenspeicher_SystaComfort SI/KAS-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 22
      data_type: int16

    - name: "Ausschaltfühler Schichtenspeicher_SystaComfort SI/KAS-SystaComfort2"
      unique_id: Ausschaltfühler Schichtenspeicher_SystaComfort SI/KAS-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 23
      data_type: int16

    - name: "Einschichttemperatur Schichtenspeicher_SystaComfort SI/KAS-SystaComfort2"
      unique_id: Einschichttemperatur Schichtenspeicher_SystaComfort SI/KAS-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 24
      data_type: int16

    - name: "Vorlauftemperatur Schichtenspeicher_SystaComfort SI/KAS-SystaComfort2"
      unique_id: Vorlauftemperatur Schichtenspeicher_SystaComfort SI/KAS-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 25
      data_type: int16

    - name: "Temperatur Kaskade_SystaComfort SI/KAS-SystaComfort2"
      unique_id: Temperatur Kaskade_SystaComfort SI/KAS-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 26
      data_type: int16

    - name: "Vorlauftemperatur Kessel 1 (Kaskade)_Kessel (OT/LAN)-SystaComfort2"
      unique_id: Vorlauftemperatur Kessel 1 (Kaskade)_Kessel (OT/LAN)-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 27
      data_type: int16

    - name: "Vorlauftemperatur Kessel 2 (Kaskade)_Kessel (OT/LAN)-SystaComfort2"
      unique_id: Vorlauftemperatur Kessel 2 (Kaskade)_Kessel (OT/LAN)-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 28
      data_type: int16

    - name: "Vorlauftemperatur Kessel 3 (Kaskade)_Kessel (OT/LAN)-SystaComfort2"
      unique_id: Vorlauftemperatur Kessel 3 (Kaskade)_Kessel (OT/LAN)-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 29
      data_type: int16

    - name: "Vorlauftemperatur Kessel 4 (Kaskade)_Kessel (OT/LAN)-SystaComfort2"
      unique_id: Vorlauftemperatur Kessel 4 (Kaskade)_Kessel (OT/LAN)-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 30
      data_type: int16

    - name: "Solare Eintrittstemperatur_SystaSolar Aqua II-SystaComfort2"
      unique_id: Solare Eintrittstemperatur_SystaSolar Aqua II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 31
      data_type: int16

    - name: "Temperatur Speicher oben_SystaSolar Aqua II-SystaComfort2"
      unique_id: Temperatur Speicher oben_SystaSolar Aqua II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 32
      data_type: int16

    - name: "Temperatur Solarverlauf_SystaSolar Aqua II-SystaComfort2"
      unique_id: Temperatur Solarverlauf_SystaSolar Aqua II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 33
      data_type: int16

    - name: "Temperatur Speicher 2 oben_SystaSolar Aqua II-SystaComfort2"
      unique_id: Temperatur Speicher 2 oben_SystaSolar Aqua II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 34
      data_type: int16

    - name: "Volumenstrom Solar_SystaSolar Aqua II-SystaComfort2"
      unique_id: Volumenstrom Solar_SystaSolar Aqua II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: l/min
      address: 35
      data_type: int16

    - name: "Außentemperatur am Kollektor 1_SystaSolar Aqua II-SystaComfort2"
      unique_id: Außentemperatur am Kollektor 1_SystaSolar Aqua II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 36
      data_type: int16

    - name: "Außentemperatur am Kollektor 2_SystaSolar Aqua II-SystaComfort2"
      unique_id: Außentemperatur am Kollektor 2_SystaSolar Aqua II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 37
      data_type: int16

    - name: "Kollektortemperatur 1_SystaSolar Aqua II-SystaComfort2"
      unique_id: Kollektortemperatur 1_SystaSolar Aqua II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 38
      data_type: int16

    - name: "Kollektortemperatur 2_SystaSolar Aqua II-SystaComfort2"
      unique_id: Kollektortemperatur 2_SystaSolar Aqua II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 39
      data_type: int16

    - name: "Eintrittstemperatur Speicher in die Frischwasserstation_SystaExpresso II-SystaComfort2"
      unique_id: Eintrittstemperatur Speicher in die Frischwasserstation_SystaExpresso II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 40
      data_type: int16

    - name: "Austrittstemperatur Warmwasser Frischwasserstation_SystaExpresso II-SystaComfort2"
      unique_id: Austrittstemperatur Warmwasser Frischwasserstation_SystaExpresso II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 41
      data_type: int16

    - name: "Eintrittstemperatur Kaltwasser Frischwasserstation_SystaExpresso II-SystaComfort2"
      unique_id: Eintrittstemperatur Kaltwasser Frischwasserstation_SystaExpresso II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 42
      data_type: int16

    - name: "Volumenstrom Kaltwasser_SystaExpresso II-SystaComfort2"
      unique_id: Volumenstrom Kaltwasser_SystaExpresso II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: l/min
      address: 43
      data_type: int16

    - name: "Volumenstrom Speicherseite_SystaExpresso II-SystaComfort2"
      unique_id: Volumenstrom Speicherseite_SystaExpresso II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: l/min
      address: 44
      data_type: int16

    - name: "Test-Register,_ -SystaComfort2"
      unique_id: Test-Register,_ -SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 1
      precision: 1 
      unit_of_measurement: 1
      address: 9995
      data_type: int16

    - name: "Test-Register,_ -SystaComfort2"
      unique_id: Test-Register,_ -SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 1
      precision: 1 
      unit_of_measurement: 1
      address: 9996
      data_type: int16

    - name: "Test-Register, Wert -7,2°C_ -SystaComfort2"
      unique_id: Test-Register, Wert -7,2°C_ -SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 9997
      data_type: int16

    - name: "Test-Register, Wert +54,3°C_-SystaComfort2"
      unique_id: Test-Register, Wert +54,3°C_-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 9998
      data_type: int16

    - name: "Störcode des Leitsystems_Leitsystem-SystaComfort2"
      unique_id: Störcode des Leitsystems_Leitsystem-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 1
      precision: 1 
      unit_of_measurement: " "
      address: 1
      data_type: uint16

    - name: "Sollwert Vorlauftemperatur Heizkreis 1_SystaComfort II-SystaComfort2"
      unique_id: Sollwert Vorlauftemperatur Heizkreis 1_SystaComfort II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 2
      data_type: int16

    - name: "Sollwert Vorlauftemperatur Heizkreis 2_SystaComfort II-SystaComfort2"
      unique_id: Sollwert Vorlauftemperatur Heizkreis 2_SystaComfort II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 3
      data_type: int16

    - name: "Sollwert Vorlauftemperatur Heizkreis 3_SystaComfort II-SystaComfort2"
      unique_id: Sollwert Vorlauftemperatur Heizkreis 3_SystaComfort II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 4
      data_type: int16

    - name: "Sollwert Leistung Heizkreis 1_SystaComfort II-SystaComfort2"
      unique_id: Sollwert Leistung Heizkreis 1_SystaComfort II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 1
      precision: 1 
      unit_of_measurement: "%"
      address: 5
      data_type: uint16

    - name: "Sollwert Leistung Heizkreis 2_SystaComfort II-SystaComfort2"
      unique_id: Sollwert Leistung Heizkreis 2_SystaComfort II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 1
      precision: 1 
      unit_of_measurement: "%"
      address: 6
      data_type: uint16

    - name: "Sollwert Leistung Heizkreis 3_SystaComfort Heat-SystaComfort2"
      unique_id: Sollwert Leistung Heizkreis 3_SystaComfort Heat-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 1
      precision: 1 
      unit_of_measurement: "%"
      address: 7
      data_type: uint16

    - name: "Trinkwassertemperatur_SystaComfort II / SystaExpresso II-SystaComfort2"
      unique_id: Trinkwassertemperatur_SystaComfort II / SystaExpresso II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 8
      data_type: int16

    - name: "maximale Vorlauftemperatur Heizkreis 1_SystaComfort II-SystaComfort2"
      unique_id: maximale Vorlauftemperatur Heizkreis 1_SystaComfort II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 9
      data_type: int16

    - name: "maximale Vorlauftemperatur Heizkreis 2_SystaComfort II-SystaComfort2"
      unique_id: maximale Vorlauftemperatur Heizkreis 2_SystaComfort II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 10
      data_type: int16

    - name: "maximale Vorlauftemperatur Heizkreis 3_SystaComfort Heat-SystaComfort2"
      unique_id: maximale Vorlauftemperatur Heizkreis 3_SystaComfort Heat-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 11
      data_type: int16

    - name: "Störcode Heizungsregler 0 = keine Störung_SystaComfort II-SystaComfort2"
      unique_id: Störcode Heizungsregler 0 = keine Störung_SystaComfort II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 1
      unit_of_measurement: 1
      address: 12
      data_type: uint16

    - name: "Störcode Solarregler 0 = keine Störung_SystaSolar Aqua II-SystaComfort2"
      unique_id: Störcode Solarregler 0 = keine Störung_SystaSolar Aqua II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 1
      unit_of_measurement: 1
      address: 13
      data_type: uint16

    - name: "Störung Wärmeerzeuger 1 _Kessel (OT/LAN)-SystaComfort2"
      unique_id: Störung Wärmeerzeuger 1 _Kessel (OT/LAN)-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 1
      unit_of_measurement: 1
      address: 14
      data_type: uint16

    - name: "Störung Wärmeerzeuger 1 _Kessel (OT/LAN)-SystaComfort2"
      unique_id: Störung Wärmeerzeuger 1 _Kessel (OT/LAN)-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 1
      unit_of_measurement: 1
      address: 15
      data_type: uint16


    - name: "Status Heizkreis 1_SystaComfort II-SystaComfort2"
      unique_id: Status Heizkreis 1_SystaComfort II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 1
      unit_of_measurement: 1
      address: 36
      data_type: uint16

    - name: "Status Heizkreis 2_SystaComfort II-SystaComfort2"
      unique_id: Status Heizkreis 2_SystaComfort II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 1
      unit_of_measurement: 1
      address: 37
      data_type: uint16

    - name: "Status Heizkreis 3_SystaComfort Heat-SystaComfort2"
      unique_id: Status Heizkreis 3_SystaComfort Heat-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 1
      unit_of_measurement: 1
      address: 38
      data_type: uint16

    - name: "Status Solar_SystaSolar Aqua II-SystaComfort2"
      unique_id: Status Solar_SystaSolar Aqua II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 1
      unit_of_measurement: 1
      address: 39
      data_type: uint16

    - name: "Status Schwimmbad_SystaComfort Pool-SystaComfort2"
      unique_id: Status Schwimmbad_SystaComfort Pool-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 1
      unit_of_measurement: 1
      address: 40
      data_type: uint16

    - name: "Status Heizkessel_SystaComfort II-SystaComfort2"
      unique_id: Status Heizkessel_SystaComfort II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 1
      unit_of_measurement: 1
      address: 41
      data_type: uint16

    - name: "Status Wodtke Pelletsofen_SystaComfort Stove-SystaComfort2"
      unique_id: Status Wodtke Pelletsofen_SystaComfort Stove-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 1
      unit_of_measurement: 1
      address: 42
      data_type: uint16

    - name: "Status Holzkessel_SystaComfort Stove-SystaComfort2"
      unique_id: Status Holzkessel_SystaComfort Stove-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 1
      unit_of_measurement: 1
      address: 43
      data_type: uint16

    - name: "Solltemperatur Puffer oben _SystaComfort II-SystaComfort2"
      unique_id: Solltemperatur Puffer oben _SystaComfort II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 44
      data_type: int16

    - name: "Kesselsolltemperatur _SystaComfort II-SystaComfort2"
      unique_id: Kesselsolltemperatur _SystaComfort II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 45
      data_type: int16

    - name: "Solltemperatur Schwimmbad bei Erwärmung durch Heizkessel_SystaComfort Pool-SystaComfort2"
      unique_id: Solltemperatur Schwimmbad bei Erwärmung durch Heizkessel_SystaComfort Pool-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 46
      data_type: int16

    - name: "Solltemperatur Schwimmbad beim Heizen mit solarer Überschusswärme_SystaComfort Pool-SystaComfort2"
      unique_id: Solltemperatur Schwimmbad beim Heizen mit solarer Überschusswärme_SystaComfort Pool-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 47
      data_type: int16

    - name: "Betriebsart Heizkreis 1_SystaComfort II-SystaComfort2"
      unique_id: Betriebsart Heizkreis 1_SystaComfort II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 1
      unit_of_measurement: 1
      address: 48
      data_type: uint16

    - name: "Betriebsart Heizkreis 2_SystaComfort II-SystaComfort2"
      unique_id: Betriebsart Heizkreis 2_SystaComfort II-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 1 
      unit_of_measurement: 1
      address: 49
      data_type: uint16

    - name: "Betriebsart Heizkreis 3_SystaComfort Heat-SystaComfort2"
      unique_id: Betriebsart Heizkreis 3_SystaComfort Heat-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 1
      unit_of_measurement: 1
      address: 50
      data_type: uint16



    - name: "Test-Register +47,2@C_ -SystaComfort2"
      unique_id: Test-Register +47,2@C_ -SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 9992
      data_type: int16

    - name: "Test-Register, Wert 81327,5 kWh_ -SystaComfort2"
      unique_id: Test-Register, Wert 81327,5 kWh_ -SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 0.1
      precision: 1 
      unit_of_measurement: kWh
      address: 9993
      data_type: uint32

    - name: "Test-Register, Wert 0x7FFF = +32767_ -SystaComfort2"
      unique_id: Test-Register, Wert 0x7FFF = +32767_ -SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 1
      precision: 1 
      unit_of_measurement: 1
      address: 9995
      data_type: int16

    - name: "Test-Register, Wert 0x8000 = -32768_ -SystaComfort2"
      unique_id: Test-Register, Wert 0x8000 = -32768_ -SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 1
      precision: 1 
      unit_of_measurement: 1
      address: 9996
      data_type: int16

    - name: "Test-Register, Wert -7,2°C_ -SystaComfort2"
      unique_id: Test-Register, Wert -7,2°C_ -SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 9997
      data_type: int16

    - name: "Test-Register, Wert +54,3°C_-SystaComfort2"
      unique_id: Test-Register, Wert +54,3°C_-SystaComfort2
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 0.1
      precision: 1 
      unit_of_measurement: °C
      address: 9998
      data_type: int16


      
  binary_sensors:
    - name: Leitsystem aktiv_systacomfort2
      address: 0
      input_type: coil
      scan_interval: 60
      slave: 1
      unique_id: Leitsystem aktiv_systacomfort2
    - name: Heizkreis 1 vorhanden_systacomfort2
      unique_id: Heizkreis 1 vorhanden_systacomfort2
      slave: 1
      address: 1
      scan_interval: 60
      input_type: coil
    - name: Heizkreis 2 vorhanden_systacomfort2
      unique_id: Heizkreis 2 vorhanden_systacomfort2
      slave: 1
      address: 2
      scan_interval: 60
      input_type: coil
    - name: Heizkreis 3 vorhanden_systacomfort2
      unique_id: Heizkreis 3 vorhanden_systacomfort2
      slave: 1
      address: 3
      scan_interval: 60
      input_type: coil
    - name: Schwimmbadheizkreis_vorhanden_systacomfort2
      unique_id: Heizkreis 3 vorhanden_systacomfort2
      slave: 1
      address: 8
      input_type: coil
    - name: Testbit_nicht_schreibbar_Wert_0_systacomfort2
      unique_id: Testbit_nicht_schreibbar_Wert_0_systacomfort2
      slave: 1
      address: 9995
      input_type: coil
    - name: Testbit_nicht_schreibbar_Wert_1_systacomfort2
      unique_id:  Testbit_nicht_schreibbar_Wert_1_systacomfort2
      slave: 1
      address: 9996
      input_type: coil

  switches:
    - name: Trinkwassererwaermung_freigeben_systacomfort2
      unique_id: Trinkwassererwaermung_freigeben_systacomfort2
      slave: 1
      address: 4
      write_type: coil
      command_on: 1
      command_off: 0
      scan_interval: 60
    - name: Trinkwassererwaermung_sperren_systacomfort2
      unique_id: Trinkwassererwaermung_sperren_systacomfort2
      slave: 1
      address: 5
      write_type: coil
      command_on: 1
      command_off: 0
      scan_interval: 60
    - name: Trinkwasserzirkulation_freigeben_systacomfort2
      unique_id: Trinkwasserzirkulation_freigeben_systacomfort2
      slave: 1
      address: 6
      write_type: coil
      command_on: 1
      command_off: 0
      scan_interval: 60
    - name: Trinkwasserzirkulation_sperren_systacomfort2
      unique_id: Trinkwasserzirkulation_sperren_systacomfort2
      slave: 1
      address: 7
      write_type: coil
      command_on: 1
      command_off: 0
      scan_interval: 60
    - name: Testbit_schreibbar_Wert_0_systacomfort2
      unique_id: Testbit_schreibbar_Wert_0_systacomfort2
      slave: 1
      address: 9997
      write_type: coil
      command_on: 1
      command_off: 0
      scan_interval: 60
    - name: Testbit_schreibbar_Wert_1_systacomfort2
      unique_id: Testbit_schreibbar_Wert_1_systacomfort2
      slave: 1
      address: 9998
      write_type: coil
      command_on: 1
      command_off: 0
      scan_interval: 60

It is done for alle values. I think the most users will not need all values.
https://forum.iobroker.net/assets/uploads/files/1674034323539-th-3000_v1.1_0321_systacomfort_ii_compactc_modbus_informationen_b_fhw.pdf

For SystaComfort2 I have done it the last days. It will work but it take some time tp programm.
Next I have to do the automation, so that I can put in values the into holdings. The switches are working. I can put my files into the post if someone is interessted in.

I think it could be very helpfull when you can put in the settings to ModbusWizard. It take a lot of time to do it from scratch. Thats why I asked in the chat for help, I am sure a lot of people are using Paradigma.

Now I will do the next files for SystaSmartC.

Best regards

Tim

Hey make sure to take a look at my new Integration, it may help you. I’m also in contat with the engineers from Ritter to make an update as soon as the new Modbus Update ist published.

2 Likes

nice work, @nussfuellung !
are you aware of this modbus documentation from paradigma?
It’s from 2023 but from what i’ve tried in regards of my marin-series heatpump it seems to be accurate.
https://dam.ritter-energie.de/pinaccess/pinaccess.do?pinCode=KJx68pzqFP39

if you need someone to test the heat pump integration, just let me know

Got it installed but still cannot connect to unit. I think its related to my systacomfort beeing hardware version 1. Software 1.34 (latest) with the old 2 row LCD.

just noticed, that you have already implemeted everything that is being shared via modbus in their v1.1 doc and you are just waiting for the update on their modbus implementation.
Any ideas, by when the will publish the update?

Q2 - 2026 thats the information i got from ritter