Add Proxon Heating System to HA via Modbus

Hallo Steffen,
Danke hat funktioniert - so einfach kann es sein :slight_smile:

Grüße Knoxilein

Great thanks, that’s it! So the actual current ventilation level is modbus input address 3x0154 (“Akt.Ventilator Stufe Zuluft”), seems like I have overseen that :slight_smile:

Hi Heiko,

We use an older PROXON p2 and at the moment I do not know where to connect the modbus.

Do you anything more until now?

Hallo,

Ich wollte heute eigentlich den Modbus an unserer PROXON p2 anschließen. Allerdings weiß ich nicht, an welchem Anschluß der Bus verfügbar ist. Wie hattest Du das gemacht?

tut mir Leid … deine Platine sieht ganz anders aus als meine

Die hab ich auch, geht nur mit dem Modbus Adapter und der kostete um die 400 und ist nicht mehr zu bekommen.

Hi @PapaJo,

did you solved the problem with reading the values from T300?
I have the same issue.

Robert

Hallo zusammen,

ich versuche aktuell, meine Proxon-Anlage (FWT2) über Modbus in Home Assistant zu integrieren und stoße dabei auf ein sehr spezifisches Problem, das ich trotz umfangreicher Tests nicht lösen kann.

Ich habe die gesamte Kommunikation systematisch geprüft und würde mich sehr über Rückmeldungen von jemandem freuen, bei dem das Setup tatsächlich funktioniert :pray:


Setup:

  • Proxon Anlage mit RS485-Schnittstelle (X6)
  • USR-DR302 (RS485 ↔ Ethernet Gateway)
  • Modbus TCP (Port 502)
  • Tests mit QModMaster und Home Assistant

Konfiguration:

  • Baudrate: 19200
  • Datenbits: 8
  • Parität: EVEN
  • Stopbits: 1
  • Getestete Unit IDs: 1, 2, 10, 41, 100, 255
  • Function Codes: 0x03 (Holding), 0x04 (Input)
  • Verschiedene Registerbereiche getestet (0, 1, 100, 1000 etc.)

Was ich bereits geprüft habe:

  • RS485-Verkabelung ist korrekt (A/B wurden testweise getauscht → Signalaktivität bestätigt)
  • Der Bus ist physikalisch aktiv (messbare Spannungsänderungen zwischen A und B bei Anfragen)
  • Das Gateway funktioniert (TX-Aktivität sichtbar)
  • Modbus TCP Verbindung funktioniert (Requests werden gesendet)
  • Unterschiedliche Hardware getestet (USB-RS485 sowie Gateway)

Das Problem:

  • TX ist aktiv (Anfragen gehen auf den Bus)
  • ABER:
    • keinerlei RX-Aktivität
    • ausschließlich Timeouts
    • keine Exception Frames, keine Antwort

Zusätzliche Info aus der Hersteller-Kommunikation:

Ich habe bereits Rücksprache mit dem Hersteller gehalten.
Dort wurde bestätigt, dass:

  • X6 der korrekte RS485/Modbus-Anschluss ist
  • Modbus werkseitig aktiv sein soll
  • Parameter wie Baudrate (19200) und Adresse genannt wurden

:point_right: Das reale Verhalten passt jedoch nicht dazu, da keinerlei Antworttelegramme zurückkommen, obwohl der Bus nachweislich aktiv ist.


Meine aktuelle Einschätzung:

Die Anlage scheint:

  • die Anfragen zu empfangen (Bus reagiert messbar)
  • aber keine Modbus-konforme Antwort zurückzugeben

Meine Fragen an euch:

  1. Ist X6 bei allen Proxon-Anlagen wirklich als aktiver Modbus RTU Slave nutzbar?
  2. Muss Modbus ggf. im Service-Menü explizit aktiviert werden?
  3. Gibt es Zustände, in denen die RS485-Schnittstelle elektrisch aktiv ist, aber logisch nicht antwortet?
  4. Gibt es Unterschiede je nach Firmware oder Anlagenversion?
  5. Hat jemand schon erlebt, dass X6 vorhanden ist, aber praktisch nicht nutzbar für Modbus ist?

Ich habe aus meiner Sicht folgende Fehlerquellen ausgeschlossen:

  • Verkabelung
  • Gateway / Hardware
  • Modbus Master / Software

Daher vermute ich aktuell entweder:

  • Modbus ist nicht wirklich aktiviert :x:
  • oder X6 arbeitet nicht als klassischer Modbus-Slave
  • oder es gibt eine Einschränkung auf Geräte-/Firmware-Ebene

Ich wäre sehr dankbar für jede Rückmeldung – insbesondere von jemandem, bei dem die Kommunikation über X6 tatsächlich funktioniert :raised_hands:

Vielen Dank!

Hi charly166
das Dashboard sieht super aus - alles drin! Klasse!
Ich bin mit der Integration nicht so weit, da ich zwar die Modbus Liste von Zimmermann habe, aber die Entitäten dann nicht steuerbar sind.
egal ob als Binärsensor / Sensor oder Switch angelegt. Entweder ich bekomme nur den Satus der Anlage übermittelt (nur lesen nicht schreiben) oder nichts.
Wie hast du dein Dashboard so gebaut? Kannst du damit alles steuern?
Grüße

Hallo Andreas,
zu deinen Verbindungsproblemen kann ich leider nichts sagen - ich hab aber mal einen Screenshot von meinen Einstellung des Waveshare-Converters gemacht:


Konnte bei dir z.B. keinen Port entdecken!

Die Einstellungen werden dann auch nicht von Schalter direkt an die Wärmepumpe gesendet, sondern über Automations. Steffen (STROETT) hat das ziemlich gut erklärt und ich lediglich partizipiert und die Oberfläche ein wenig angepasst.
Viele Grüße
Charly

Hallo,

ich bin neu hier in der Community, lese hier in dem Thema seit über einem Jahr mit und bin seit März voll im Home Assistant Thema.

Ich habe (leider) auch eine Proxon und würde sie auch gerne in HA bringen.

Die Basics bekomme ich ganz sicher hin, YAML strukturen usw. habe ich verstanden, programmieren klappt mithilfe von KI auch.

Angst vor Kabeln hab ich auch keine, also den Adapter einzubauen wäre sicher auch möglich.

Haltet ihr es für realistisch, dass ich als "noob" die Proxon FWT integriert bekomme?

Ich möchte nicht Stunden und Tage in ein aussichtsloses Projekt stecken, aber die Proxon mit meiner PV zu steuern bzw. zu optimieren wäre schon cool.

Danke euch schon einmal im Vorraus

Grüße

Julian

Hallo Julian,
also ich würde mich zwar nicht als noob bezeichnen, aber mega Profi auch net. Und es war null Problem. Also ich würde sagen -> machen, es lohnt sich.
Grüße
Steffen

Guten Morgen Julian,
ja da kann ich Steffen nur beipflichten - es lohnt sich wirklich. Ein bisschen Pionierarbeit ist halt notwendig, um zu verstehen, welches Zimmer sich hinter welchem Register versteckt. Wenn man mal die Reihenfolge anhand der Ist-Temperatur erfasst hat, ist diese immer gleich.
Viele Grüße
charly

Hi charly,

Und selbst die Raumzuordnung steht irgendwo. Ich meine in den Unterlagen auf der Proxon. Müsste aber auch nochmal nachschauen. Aber klar, verschiedene Temperaturen einstellen geht auch mit vertretbarem Aufwand.
Grüße

Hallo zusammen,
mich interessiert das Thema auch sehr und ich habe erste Anfänge bereits erfolgreich abgeschlossen. Habe mir dabei aus diversen Quellen im Internet alles zusammenkopiert.
Weil das dann doch recht schwer war, habe ich beschlossen mein Wissen zu sammeln und unter github bereitzustellen: GitHub - charma/proxon-homeassistant: Full integration guide of Proxon heat pump into Home Assistant · GitHub

Ich konnte bisher die Temperaturen auslesen und ein paar weitere Werte sowie die Kühlung ein-ausschalten.
@charly166 Vielleicht magst du mir helfen dein dashboard mit all den anderen Werten auch zu integrieren. Kannst du mir deine modbus-configuration usw bereitstellen?

Ich würde anschließend alles was ich funktionierend getestet habe wieder in github veröffentlichen, dann kann die Nachwelt davon profitieren.
Ich habe überlegt eventuell sogar eine HACS-Integration zu schreiben wenn ich mit allem fertig bin.

@Stroett Vielleicht magst du auch deine vollständigen yaml-konfigurationen teilen? Vielen Dank!

Hi, bereits erledigt :wink: jetzt schon alt. Aber ich glaube sooooo viel hat sich net geändert

Wow echt Klasse, vielen Dank

Guten Morgen charma,
klar kannst du meine config haben - ist aber eigentlich in weiten Teilen von Steffen kopiert :face_with_hand_over_mouth:
Nur im Dashboard habe ich wohl eine andere Darstellung gewählt.
Aber nun erstmal von vorne (habe exemplarisch nur 3 Räume aufgeführt):

### configuration.yaml
##############
### PROXON ### 
##############
modbus: !include proxon.yaml
climate: !include climate.yaml
#input number
input_number:
  proxon_luefterstufe_slider:
    name: Proxon Lüfterstufe - Slider
    min: 1
    max: 4
    step: 1
  proxon_sollwert_wassertemperatur_slider:
    name: Proxon Sollwert Wassertemperatur - Slider
    min: 40
    max: 55
    step: 1
  proxon_sollwert_freigabe_heizstab_slider:
    name: Proxon Freigabetemperatur Heizstab - Slider
    min: 40
    max: 70
    step: 1
input_select:
  proxon_betriebsart_select:
    name: Proxon Betriebsart - Select
    options:
      - "Aus"
      - "Sommerbetrieb"
      - "Winterbetrieb"
      - "ECO Komfortbetrieb"
      - "Ofenbetrieb"
    icon: mdi:heat-pump
###################################################################

### proxon.yaml
# modbus: proxon.yaml
- name: proxon
  type: tcp
  host: 192.168.4.19
  port: 4196
  switches:
    - name: "Proxon Heizelemente Global"
      unique_id: proxon_heizelemente_global
      scan_interval: 10
      slave: 41
      address: 325
      verify:
        delay: 1
    - name: "Proxon Heizelement Wohnzimmer"
      unique_id: proxon_heizelement_wohnzimmer
      scan_interval: 10
      slave: 41
      address: 187
      verify:
        delay: 1
    - name: "Proxon Heizelement Büro"
      unique_id: proxon_heizelement_buro
      scan_interval: 10
      slave: 41
      address: 256
      verify:
        delay: 1
    - name: "Proxon Heizelement Vorraum"
      unique_id: proxon_heizelement_vorraum
      scan_interval: 10
      slave: 41
      address: 258
      verify:
        delay: 1

    - name: "Proxon Kuehlung"
      unique_id: proxon_kuehlung
      slave: 41
      address: 62
      scan_interval: 5
      verify:
        delay: 1
      ### T300 ###
    - name: "T300 Heizstab"
      unique_id: proxon_heizstab
      scan_interval: 5
      slave: 41
      address: 2001
      verify:
        delay: 1
      ### Bedienelemente ###
    - name: "Proxon Tastensperre Büro"
      unique_id: proxon_tastensperre_buro
      slave: 41
      address: 276
      scan_interval: 15
      verify:
        delay: 1
    - name: "Proxon Tastensperre Vorraum"
      unique_id: proxon_tastensperre_vorraum
      slave: 41
      address: 278
      scan_interval: 15
      verify:
        delay: 1

  sensors:
    - name: "Proxon Modbus Status"
      unique_id: proxon_status_modbus
      scan_interval: 10
      slave: 41
      address: 438
      input_type: holding
      data_type: uint16
      ### PTC's ###
    - name: "Proxon Heizelement Status"
      unique_id: proxon_heizelement_status
      address: 574
      scan_interval: 15
      data_type: int16
      input_type: input
      slave: 41
    - name: "Proxon Heizelement Status 2"
      unique_id: proxon_heizelement_status_2
      address: 583
      scan_interval: 15
      data_type: int16
      input_type: input
      slave: 41
      ### Temperaturen ###
    - name: "Proxon Ist-Temperatur Wohnzimmer"
      unique_id: proxon_ist_temperatur_wohnzimmer
      scan_interval: 10
      slave: 41
      address: 41
      input_type: input
      scale: 0.01
      precision: 1
      unit_of_measurement: °C
      data_type: uint16
      device_class: temperature
    - name: "Proxon Ist-Temperatur Büro"
      unique_id: proxon_ist_temperatur_buro
      scan_interval: 10
      slave: 41
      address: 599
      input_type: input
      scale: 0.1
      precision: 1
      unit_of_measurement: °C
      data_type: int16
      device_class: temperature
    - name: "Proxon Ist-Temperatur Vorraum"
      unique_id: proxon_ist_temperatur_vorraum
      scan_interval: 10
      slave: 41
      address: 605
      input_type: input
      scale: 0.1
      precision: 1
      unit_of_measurement: °C
      data_type: int16
      device_class: temperature

      ### Offset-Temperaturen ###
    - name: "Proxon Offsettemperatur Wohnzimmer"
      unique_id: proxon_offsettemperatur_wohnzimmer
      scan_interval: 10
      slave: 41
      address: 70
      scale: 0.01
      precision: 1
      input_type: holding
      data_type: int16

    - name: "Proxon Offsettemperatur Büro"
      unique_id: proxon_offsettemperatur_buro
      scan_interval: 10
      slave: 41
      address: 216
      input_type: holding
      data_type: int16
    - name: "Proxon Offsettemperatur Vorraum"
      unique_id: proxon_offsettemperatur_vorraum
      scan_interval: 10
      slave: 41
      address: 218
      input_type: holding
      data_type: int16

    - name: "Proxon Mitteltemperatur Büro"
      unique_id: proxon_mitteltemperatur_buro
      scan_interval: 30
      slave: 41
      address: 236
      input_type: holding
      data_type: int16
    - name: "Proxon Mitteltemperatur Vorraum"
      unique_id: proxon_mitteltemperatur_vorraum
      scan_interval: 30
      slave: 41
      address: 238
      input_type: holding
      data_type: int16

    ### Sonstiges ###
    - name: "Proxon Betriebsart"
      unique_id: proxon_betriebsart
      scan_interval: 5
      slave: 41
      address: 16
      input_type: holding
      data_type: uint16
    - name: "Proxon Lüfterstufe"
      unique_id: proxon_luefterstufe
      scan_interval: 5
      slave: 41
      address: 22
      input_type: holding
      data_type: uint16
    - name: "Proxon Temperatur Frischluft"
      unique_id: proxon_temperatur_frischluft
      scan_interval: 15
      slave: 41
      address: 198
      input_type: input
      unit_of_measurement: °C
      scale: 0.01
      precision: 1
      data_type: int16
    - name: "Proxon Temperatur Zuluft"
      unique_id: proxon_temperatur_zuluft
      scan_interval: 15
      slave: 41
      address: 195
      input_type: input
      unit_of_measurement: °C
      scale: 0.01
      precision: 1
      data_type: int16
    - name: "Proxon Temperatur Fortluft"
      unique_id: proxon_temperatur_fortluft
      scan_interval: 15
      slave: 41
      address: 197
      input_type: input
      unit_of_measurement: °C
      scale: 0.01
      precision: 1
      data_type: int16
    - name: "Proxon Temperatur Abluft"
      unique_id: proxon_temperatur_abluft
      scan_interval: 15
      slave: 41
      address: 196
      input_type: input
      unit_of_measurement: °C
      scale: 0.01
      precision: 1
      data_type: int16
    - name: "Proxon CO2 Wohnzimmer"
      unique_id: proxon_co2_wohnzimmer
      scan_interval: 15
      slave: 41
      address: 21
      input_type: input
      device_class: aqi
      unit_of_measurement: ppm
      data_type: int16 #das muss noch verifiziert werden
    - name: "Proxon Luftfeuchte Wohnzimmer"
      unique_id: proxon_luftfeuchte_wohnzimmer
      scan_interval: 15
      slave: 41
      address: 22
      input_type: input
      device_class: humidity
      unit_of_measurement: "%"
      data_type: int16 #das muss noch verifiziert werden
    - name: "Proxon Lüftungsstufe Ventilator Zuluft"
      unique_id: proxon_lueftungsstufe_ventilator_zuluft
      scan_interval: 5
      slave: 41
      address: 154
      input_type: input
      data_type: int16
    - name: "Proxon aktueller Betrieb"
      unique_id: proxon_akteller_betrieb
      scan_interval: 5
      slave: 41
      address: 241
      input_type: input
      data_type: int16
    - name: "Proxon Stromaufnahme Total"
      unique_id: proxon_stromaufnahme_total
      scan_interval: 10
      slave: 41
      address: 25
      input_type: input
      unit_of_measurement: W
      scale: 0.1
      precision: 1
      data_type: int16
    #T300
    - name: "Proxon Ist-Temperatur Wasser"
      unique_id: proxon_ist_temperatur_wasser
      scan_interval: 5
      slave: 41
      address: 814
      input_type: input
      scale: 0.1
      offset: -100
      precision: 1
      unit_of_measurement: °C
      data_type: uint16
    - name: "Proxon Soll-Temperatur Wasser"
      unique_id: proxon_soll_temperatur_wasser
      scan_interval: 5
      slave: 41
      address: 2000
      input_type: holding
      scale: 0.1
      precision: 1
      unit_of_measurement: °C
      data_type: uint16
    - name: "Proxon Temperatur Wasser Unten"
      unique_id: proxon_ist_temperatur_wasser_unten
      scan_interval: 15
      slave: 41
      address: 813
      input_type: input
      scale: 0.1
      offset: -100
      precision: 1
      unit_of_measurement: °C
      data_type: uint16
    - name: "Proxon Heizstab Temperatur"
      unique_id: proxon_heizstab_temperatur
      scan_interval: 5
      slave: 41
      address: 2003
      input_type: holding
      scale: 0.1
      precision: 1
      unit_of_measurement: °C
      data_type: uint16
    ### Gerätefilter ###
    - name: "Proxon Standzeit FWT Gerätefilter"
      unique_id: proxon_standzeit_fwt_geraetefilter
      scan_interval: 30
      slave: 41
      address: 460
      input_type: holding
      device_class: duration
      unit_of_measurement: d
      data_type: uint16
    - name: "Proxon Nutzzeit FWT Gerätefilter"
      unique_id: proxon_nutzzeit_fwt_geraetefilter
      scan_interval: 30
      slave: 41
      address: 469
      input_type: holding
      unit_of_measurement: std
      data_type: uint16
      ### Intensivlüftung ###
    - name: "Proxon Intensivlüftung Restzeit"
      unique_id: proxon_intensivlueftung_restzeit
      scan_interval: 5
      slave: 41
      address: 133
      input_type: holding
      unit_of_measurement: min
      data_type: uint16
    - name: "Proxon Intensivlüftung Sollzeit"
      unique_id: proxon_intensivlueftung_sollzeit
      scan_interval: 5
      slave: 41
      address: 189
      input_type: holding
      unit_of_measurement: min
      data_type: uint16
  binary_sensors:
    #T300
    - name: "Proxon Heizstab Status"
      unique_id: proxon_heizstab_status
      scan_interval: 5
      slave: 41
      address: 826
      input_type: input
    - name: "Proxon Kompressor Status"
      unique_id: proxon_kompressor_status
      scan_interval: 5
      slave: 41
      address: 824
      input_type: input
######################################################################

### climate.yaml - setzt die HACS-Erweiterung "Template Climate" voraus
#################################
### PROXON Heizung Wohnzimmer ### 
#################################
- platform: climate_template
  name: Proxon Template Heizung Wohnzimmer
  unique_id: proxon_template_heizung_wohnzimmer
  modes:
    - "auto"
    - "heat"
  max_temp: 30
  min_temp: 10
  current_temperature_template: "{{ states('sensor.proxon_ist_temperatur_wohnzimmer') }}"
  current_humidity_template: "{{ states('sensor.proxon_luftfeuchte_wohnzimmer') }}"
  set_temperature:
    - service: modbus.write_register
      data_template:
        hub: proxon
        unit: 41
        address: 70
        value: "{{ (state_attr('climate.proxon_template_heizung_wohnzimmer', 'temperature') | int)*100}}"
  set_hvac_mode:
    - service: >
        {% if is_state('climate.proxon_template_heizung_wohnzimmer', 'auto') %}
        switch.turn_off
        {% elif is_state('climate.proxon_template_heizung_wohnzimmer', 'heat') %}
        switch.turn_on
        {% else %}
        switch.turn_off
        {% endif %}
      entity_id: switch.proxon_heizelement_wohnzimmer

###########################
### PROXON Heizung Büro ###
###########################
- platform: climate_template
  name: Proxon Template Heizung Büro
  unique_id: proxon_template_heizung_buro
  modes:
    - "auto"
    - "heat"
  max_temp: 23
  min_temp: 17
  current_temperature_template: "{{ states('sensor.proxon_ist_temperatur_buro') }}"
  set_temperature:
    - service: modbus.write_register
      data_template:
        hub: proxon
        unit: 41
        address: 216
        value: >
          {% if ((state_attr('climate.proxon_template_heizung_buro', 'temperature') | int) - (states('sensor.proxon_mitteltemperatur_buro') | int)) == -3 %}
          65533
          {% elif ((state_attr('climate.proxon_template_heizung_buro', 'temperature') | int) - (states('sensor.proxon_mitteltemperatur_buro') | int)) == -2 %}
          65534
          {% elif ((state_attr('climate.proxon_template_heizung_buro', 'temperature') | int) - (states('sensor.proxon_mitteltemperatur_buro') | int)) == -1 %}
          65535
          {% else %}
          {{ ((state_attr('climate.proxon_template_heizung_buro', 'temperature') | int) - (states('sensor.proxon_mitteltemperatur_buro') | int)) }}
          {% endif %}
  set_hvac_mode:
    - service: >
        {% if is_state('climate.proxon_template_heizung_buro', 'auto') %}
        switch.turn_off
        {% elif is_state('climate.proxon_template_heizung_buro', 'heat') %}
        switch.turn_on
        {% else %}
        switch.turn_off
        {% endif %}
      entity_id: switch.proxon_heizelement_buro

##############################
### PROXON Heizung Vorraum ###
##############################
- platform: climate_template
  name: Proxon Template Heizung Vorraum
  unique_id: proxon_template_heizung_vorraum
  modes:
    - "auto"
    - "heat"
  max_temp: 23
  min_temp: 17
  current_temperature_template: "{{ states('sensor.proxon_ist_temperatur_vorraum') }}"
  set_temperature:
    - service: modbus.write_register
      data_template:
        hub: proxon
        unit: 41
        address: 218
        value: >
          {% if ((state_attr('climate.proxon_template_heizung_vorraum', 'temperature') | int) - (states('sensor.proxon_mitteltemperatur_vorraum') | int)) == -3 %}
          65533
          {% elif ((state_attr('climate.proxon_template_heizung_vorraum', 'temperature') | int) - (states('sensor.proxon_mitteltemperatur_vorraum') | int)) == -2 %}
          65534
          {% elif ((state_attr('climate.proxon_template_heizung_vorraum', 'temperature') | int) - (states('sensor.proxon_mitteltemperatur_vorraum') | int)) == -1 %}
          65535
          {% else %}
          {{ ((state_attr('climate.proxon_template_heizung_vorraum', 'temperature') | int) - (states('sensor.proxon_mitteltemperatur_vorraum') | int)) }}
          {% endif %}
  set_hvac_mode:
    - service: >
        {% if is_state('climate.proxon_template_heizung_vorraum', 'auto') %}
        switch.turn_off
        {% elif is_state('climate.proxon_template_heizung_vorraum', 'heat') %}
        switch.turn_on
        {% else %}
        switch.turn_off
        {% endif %}
      entity_id: switch.proxon_heizelement_vorraum

##################################################################

### automations.yaml
###########
### T300 ###
###########
- alias: Slider Heizstabtemperatur aktualisieren
  description: ''
  triggers:
  - trigger: state
    entity_id:
    - sensor.proxon_heizstab_temperatur
  conditions: []
  actions:
  - target:
      entity_id: input_number.proxon_sollwert_freigabe_heizstab_slider
    data:
      value: '{{ states(''sensor.proxon_heizstab_temperatur'') | int }}'
    action: input_number.set_value
  mode: single

- alias: Slider Heizstabtemperatur einstellen
  description: ''
  triggers:
  - trigger: state
    entity_id:
    - input_number.proxon_sollwert_freigabe_heizstab_slider
  conditions: []
  actions:
  - data:
      slave: 41
      address: 2003
      value: '{{ (states(''input_number.proxon_sollwert_freigabe_heizstab_slider'')
        | int)*10 }}'
      hub: proxon
    action: modbus.write_register
  mode: single

- alias: Slider Wassertemperatur aktualisieren
  description: ''
  triggers:
  - trigger: state
    entity_id:
    - sensor.proxon_soll_temperatur_wasser
  conditions: []
  actions:
  - target:
      entity_id: input_number.proxon_sollwert_wassertemperatur_slider
    data:
      value: '{{ states(''sensor.proxon_soll_temperatur_wasser'') | int }}'
    action: input_number.set_value
  mode: single

- alias: Slider Wassertemperatur einstellen
  description: ''
  triggers:
  - trigger: state
    entity_id:
    - input_number.proxon_sollwert_wassertemperatur_slider
  conditions: []
  actions:
  - data:
      slave: 41
      address: 2000
      value: '{{ (states(''input_number.proxon_sollwert_wassertemperatur_slider'')
        | int)*10 }}'
      hub: proxon
    action: modbus.write_register
  mode: single

#############
### Lüftung ###
#############
- alias: Intensivlüftung (60min)
  description: Starte Intensivlüftung (60min)
  triggers: []
  conditions: []
  actions:
  - action: modbus.write_register
    metadata: {}
    data:
      hub: proxon
      address: 133
      value: 60
      slave: 41
  mode: single

- alias: Intensivlüftung ausschalten
  description: Intensivlüftung ausschalten
  triggers: []
  conditions: []
  actions:
  - action: modbus.write_register
    metadata: {}
    data:
      hub: proxon
      address: 133
      slave: 41
      value: 0
  mode: single

- alias: Lüfterstufe aktualisieren
  description: Lüfterstufe in GUI anpassen / aktualisieren
  triggers:
  - trigger: state
    entity_id:
    - sensor.proxon_lufterstufe
  conditions: []
  actions:
  - target:
      entity_id: input_number.proxon_luefterstufe_slider
    data:
      value: '{{ states(''sensor.proxon_lufterstufe'') | int }}'
    action: input_number.set_value
  mode: single

- alias: Slider Lüfterstufe einstellen
  description: ''
  triggers:
  - trigger: state
    entity_id:
    - input_number.proxon_luefterstufe_slider
  conditions: []
  actions:
  - data:
      hub: proxon
      slave: 41
      address: 22
      value: '{{ states(''input_number.proxon_luefterstufe_slider'') | int }}'
    action: modbus.write_register
  mode: single

##############
### Heizung ###
##############
- alias: Select Betriebsart aktualisieren
  description: ''
  triggers:
  - trigger: state
    entity_id:
    - sensor.proxon_betriebsart
  conditions: []
  actions:
  - action: input_select.select_option
    metadata: {}
    data:
      option: '{{ state_attr(''input_select.proxon_betriebsart_select'',''options'')
        [states(trigger.entity_id) | int] }}'
    target:
      entity_id: input_select.proxon_betriebsart_select
  mode: single

- alias: Select Betriebsart einstellen
  description: ''
  triggers:
  - trigger: state
    entity_id:
    - input_select.proxon_betriebsart_select
  conditions: []
  actions:
  - action: modbus.write_register
    metadata: {}
    data:
      hub: proxon
      address: 16
      slave: 41
      value: '{{ state_attr(trigger.entity_id,''options'').index(states(trigger.entity_id))
        }}'
  mode: single

- alias: Thermostat (Heizelement) aktualisieren - Büro
  description: ''
  triggers:
  - trigger: state
    entity_id:
    - switch.proxon_heizelement_buro
  conditions: []
  actions:
  - if:
    - condition: state
      entity_id: switch.proxon_heizelement_buro
      state: 'on'
    then:
    - action: climate.set_hvac_mode
      metadata: {}
      data:
        hvac_mode: heat
      target:
        entity_id:
        - climate.proxon_template_heizung_buro
    else:
    - action: climate.set_hvac_mode
      metadata: {}
      data:
        hvac_mode: auto
      target:
        entity_id: climate.proxon_template_heizung_buro
  mode: single

- alias: Thermostat (Heizelement) aktualisieren - Vorraum
  description: ''
  triggers:
  - trigger: state
    entity_id:
    - switch.proxon_heizelement_vorraum
  conditions: []
  actions:
  - if:
    - condition: state
      entity_id: switch.proxon_heizelement_vorraum
      state: 'on'
    then:
    - action: climate.set_hvac_mode
      metadata: {}
      data:
        hvac_mode: heat
      target:
        entity_id: climate.proxon_template_heizung_vorraum
    else:
    - action: climate.set_hvac_mode
      metadata: {}
      data:
        hvac_mode: auto
      target:
        entity_id: climate.proxon_template_heizung_vorraum
  mode: single

- alias: Thermostat (Heizelement) aktualisieren - Wohnzimmer
  description: ''
  triggers:
  - trigger: state
    entity_id:
    - switch.proxon_heizelement_wohnzimmer
  conditions: []
  actions:
  - if:
    - condition: state
      entity_id: switch.proxon_heizelement_wohnzimmer
      state: 'on'
    then:
    - action: climate.set_hvac_mode
      metadata: {}
      data:
        hvac_mode: heat
      target:
        entity_id: climate.proxon_template_heizung_wohnzimmer
    else:
    - action: climate.set_hvac_mode
      metadata: {}
      data:
        hvac_mode: auto
      target:
        entity_id: climate.proxon_template_heizung_wohnzimmer
  mode: single

- alias: Thermostat aktualisieren - Büro
  description: ''
  triggers:
  - trigger: state
    entity_id:
    - sensor.proxon_offsettemperatur_buro
  conditions: []
  actions:
  - action: climate.set_temperature
    metadata: {}
    data:
      temperature: '{{ (states(''sensor.proxon_offsettemperatur_buro'') | int) + (states(''sensor.proxon_mitteltemperatur_buro'')
        | int)}}'
    target:
      entity_id: climate.proxon_template_heizung_buro
  mode: single

- alias: Thermostat aktualisieren - Vorraum
  description: ''
  triggers:
  - trigger: state
    entity_id:
    - sensor.proxon_offsettemperatur_vorraum
  conditions: []
  actions:
  - action: climate.set_temperature
    metadata: {}
    data:
      temperature: '{{ (states(''sensor.proxon_offsettemperatur_vorraum'') | int)
        + (states(''sensor.proxon_mitteltemperatur_vorraum'') | int)}}'
    target:
      entity_id: climate.proxon_template_heizung_vorraum
  mode: single

- alias: Thermostat aktualisieren - Wohnzimmer
  description: ''
  triggers:
  - trigger: state
    entity_id:
    - sensor.proxon_offsettemperatur_wohnzimmer
  conditions: []
  actions:
  - action: climate.set_temperature
    metadata: {}
    data:
      temperature: '{{ (states(''sensor.proxon_offsettemperatur_wohnzimmer'') | int)
        }}'
    target:
      entity_id: climate.proxon_template_heizung_wohnzimmer
  mode: single

Anbei mal ein Screenshot aller Proxon-Controls, die ich mal irgendwie zusammengebaut habe:

Die kompakte Variante des Climate-Controls benötigt zusätzlich die HACS-Erweiterung ":
image
Code:

type: custom:mushroom-climate-card
entity: climate.proxon_template_heizung_wohnzimmer
name: Wohnzimmer
layout: horizontal
fill_container: false
show_temperature_control: true
collapsible_controls: false
hvac_modes:
  - heat
tap_action:
  action: perform-action
  perform_action: switch.toggle
  target:
    entity_id: switch.proxon_heizelement_wohnzimmer
icon: mdi:hvac

Solltest du noch weitere Infos brauchen, dann bitte kurz melden.

Ich habe noch z.B. Automationen gebaut, die im Sommer die Lüftungsstärke anhand der Außentemperatur absenkt bzw. erhöht - will ja nicht im Hochsommer die heiße Luft ins Haus holen!

Na dann viel Erfolg und viel Spaß!
Viele Grüße

Charly

Hi zusammen,

ich melde mich dann auch einmal aus der Versenkung. Bitte entschuldigt meine lange Abwesenheit, besonders diejenigen welche mich angeschrieben haben und ich nicht geantwortet habe. Leider gab es dafür diverse private wie auch berufliche Gründe und ich bin froh das alles größtenteils hinter mir zu lassen.

Ich hoffe ich kann mich nun wieder etwas reger beteiligen, insbesondere wenn es jemand auf sich nehmen möchte endlich eine HACS Integration zu dem Thema zu bauen.

Versteht mich nicht falsch, ich hab versucht dem Betrag hier immer ein bisschen lesend zu folgen und bin absolut beeindruckt was ihr alles schon erreicht habt. Hätte ich alleine nie hinbekommen. Wahrscheinlich hätte ich es noch nicht einmal versucht,… :wink:

Um mich mal wieder auf den aktuellsten Stand zu bringen, habe ich Freund KI mal den Beitrag hier zusammenfassen lassen und eine Konfig auf Basis meiner alten erstellen lassen. In meinem Testsystem läuft das ganz gut, daher hab ich das mal in ein Github Repo gepackt:

Ich hoffe ich habe nichts vergessen!

@charma Vielleicht kannst du ja damit was anfangen.

Grundlegend habe ich nur zwei Dinge festgestellt.

  1. Es scheint einen Bug zu geben wenn ich zum Beispiel für einen Raum das PCT Element über HA aktiviere und dann z.B über die Proxon App deaktviere bekommt HA das nicht sauber mit. Daher hat mir die KI empfohlen dieses Feature nicht einzubauen. Ist das immer noch ein Thema?
  2. Hängt vielleicht damit zusammen. Ich kann in HA zwar den Heater (PCT Element) aktivieren, kann dann aber innerhalb der Tile Card nicht wieder auf das Icon klicken zum ausschalten. Dazu muss ich auf das Icon von “Auto” klicken. Das gleiche gilt übrigens auch für “Auto” selbst. Ich kann es nicht deaktivieren. Kennt das Thema jemand oder hat die KI hier Mist gemacht?

Entschuldigt bitte die vielleicht blöden Fragen, eventuell wurden die schon beantwortet. Aber ich kam noch nicht dazu den gesamten Beitrag in aller Ruhe zu lesen und zu verstehen.

Vielen Dank
Joe