Ankündigung

Einklappen
Keine Ankündigung bisher.

Stiebel Eltron Wärmepumpe / Zehnder Lüftung in Home Assistant integrieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Stiebel Eltron Wärmepumpe / Zehnder Lüftung in Home Assistant integrieren

    Hallo zusammen,
    ich möchte meine Stiebel Eltron Wärmepumpe WPL-A 07 (via ISG) und meine Zehnder Comfoair Q350 (via Comfoconnect LAN C) in Home Assistant einbinden. Leider klappt es nicht.

    Über die Stiebel Eltron Integration bekomme ich keine Verbindung hin. Hier erscheint immer eine Fehlermeldung. IP Adresse passt und Port 502 sollte auch stimmen...

    Bei der Lüftung gehe ich laut dieser Anleitung vor:
    https://www.home-assistant.io/integr.../comfoconnect/
    Hier erscheint nach Neustart des Systems auch keine Entitäten hierfür.

    Vielleicht ist es ein offensichtlicher Fehler und ihr könnt mir einen Tipp geben. Danke schon mal.

    #2
    Hi,

    also Stiebel habe ich mehrfach am laufen. Welches ISG hast du??

    Zehnder habe nur mit dem Pro im Betrieb, da kann ich leider nicht viel zu sagen.

    Sicher das du keine Probleme im Netzwerk hast? Wo läuft HASS??

    Kommentar


      #3
      Hi,

      die Wärmepumpe habe ich inzwischen integrieren können.
      Die Lüftung prinzipiell auch. Hier hab ich jetzt nur noch das Problem, dass die Verbindung alle paar Sekunden abreißt. Ich denke es liegt am Netzwerk...

      Kommentar


        #4
        Hallo, ich hatte das selbe Problem mit den Verbindungsabbrüchen. Ich hatte immer das Gefühl, dass es an der Integration liegt. Ich bin dann direkt auf Modbus umgestiegen ganz ohne Integration. Seit dem läuft es einwandfrei:

        modbus:
        - name: zehnder_q350
        type: tcp
        host: 192.168.190.208
        port: 502
        timeout: 5
        message_wait_milliseconds: 50

        # --------------------------
        # DISCRETE INPUTS (read-only)
        # --------------------------
        binary_sensors:
        - name: "Zehnder Störmeldung aktiv"
        address: 0x0000 # Tabelle 0x0001 -> HA -1
        input_type: discrete_input
        scan_interval: 10

        - name: "Zehnder Filter verschmutzt"
        address: 0x0003 # Tabelle 0x0004 -> HA -1
        input_type: discrete_input
        scan_interval: 300

        # --------------------------
        # INPUT REGISTERS / HOLDING (read-only + holding read)
        # --------------------------
        sensors:
        - name: "Zehnder Luftvolumenstrom"
        address: 0x0006 # Tabelle 0x0007 -> HA -1
        input_type: input
        data_type: uint16
        unit_of_measurement: "m³/h"
        state_class: measurement
        scan_interval: 5

        - name: "Zehnder Ablufttemperatur"
        address: 0x0008 # Tabelle 0x0009 -> HA -1
        input_type: input
        data_type: int16
        unit_of_measurement: "°C"
        state_class: measurement
        scale: 0.1
        precision: 1
        scan_interval: 10

        - name: "Zehnder Fortlufttemperatur"
        address: 0x0009 # Tabelle 0x000A -> HA -1
        input_type: input
        data_type: int16
        unit_of_measurement: "°C"
        state_class: measurement
        scale: 0.1
        precision: 1
        scan_interval: 10

        - name: "Zehnder Außenlufttemperatur"
        address: 0x000A # Tabelle 0x000B -> HA -1
        input_type: input
        data_type: int16
        unit_of_measurement: "°C"
        state_class: measurement
        scale: 0.1
        precision: 1
        scan_interval: 10

        - name: "Zehnder Zulufttemperatur"
        address: 0x000B # Tabelle 0x000C -> HA -1
        input_type: input
        data_type: int16
        unit_of_measurement: "°C"
        state_class: measurement
        scale: 0.1
        precision: 1
        scan_interval: 10

        - name: "Zehnder Raumluftfeuchte"
        address: 0x000C # Tabelle 0x000D -> HA -1
        input_type: input
        data_type: uint16
        unit_of_measurement: "%"
        state_class: measurement
        scan_interval: 30

        - name: "Zehnder Abluftfeuchte"
        address: 0x000D # Tabelle 0x000E -> HA -1
        input_type: input
        data_type: uint16
        unit_of_measurement: "%"
        state_class: measurement
        scan_interval: 30

        - name: "Zehnder Fortluftfeuchte"
        address: 0x000E # Tabelle 0x000F -> HA -1
        input_type: input
        data_type: uint16
        unit_of_measurement: "%"
        state_class: measurement
        scan_interval: 30

        - name: "Zehnder Außenluftfeuchte"
        address: 0x000F # Tabelle 0x0010 -> HA -1
        input_type: input
        data_type: uint16
        unit_of_measurement: "%"
        state_class: measurement
        scan_interval: 30

        - name: "Zehnder Zuluftfeuchte"
        address: 0x0010 # Tabelle 0x0011 -> HA -1
        input_type: input
        data_type: uint16
        unit_of_measurement: "%"
        state_class: measurement
        scan_interval: 10

        - name: "Zehnder Filter Restlaufzeit"
        address: 0x0019 # Tabelle 0x001A -> HA -1
        input_type: input
        data_type: uint16
        unit_of_measurement: "d"
        state_class: measurement
        scan_interval: 300

        # Holding Register (Preset 0..3)
        - name: "Zehnder Lüftungsstufe (Preset)"
        address: 0x0000 # Tabelle 0x0001 -> HA -1
        input_type: holding
        data_type: uint16
        scan_interval: 5

        # --------------------------
        # COILS (read/write)
        # --------------------------
        switches:
        - name: "Zehnder Automatikbetrieb"
        address: 0x0005 # coil 0x0006
        write_type: coil
        verify:
        input_type: coil

        - name: "Zehnder Abwesend (Away)"
        address: 0x0007 # coil 0x0008
        write_type: coil
        verify:
        input_type: coil


        script:
        zehnder_setze_preset:
        alias: "Zehnder Preset setzen (0..3)"
        fields:
        preset:
        description: "0..3"
        example: 2
        sequence:
        - service: modbus.write_register
        data:
        hub: zehnder_q350
        slave: 1
        address: 0x0000
        value: "{{ preset | int }}"


        input_select:
        zehnder_preset:
        name: "Zehnder Preset"
        options:
        - "Abwesend"
        - "Stufe 1"
        - "Stufe 2"
        - "Stufe 3"
        icon: mdi:fan


        automation:
        - id: zehnder_preset_dropdown_to_modbus
        alias: "Zehnder Preset: Dropdown → Modbus"
        mode: single
        trigger:
        - platform: state
        entity_id: input_select.zehnder_preset
        variables:
        preset_map:
        "Abwesend": 0
        "Stufe 1": 1
        "Stufe 2": 2
        "Stufe 3": 3
        preset_value: "{{ preset_map.get(trigger.to_state.state, 1) }}"
        condition:
        - condition: template
        value_template: >
        {{ states('sensor.zehnder_luftungsstufe_preset')|int(-1) != preset_value|int }}
        action:
        - service: script.zehnder_setze_preset
        data:
        preset: "{{ preset_value }}"

        - id: zehnder_preset_modbus_to_dropdown
        alias: "Zehnder Preset: Modbus → Dropdown"
        mode: single
        trigger:
        - platform: state
        entity_id: sensor.zehnder_luftungsstufe_preset
        variables:
        label_map:
        0: "Abwesend"
        1: "Stufe 1"
        2: "Stufe 2"
        3: "Stufe 3"
        label: "{{ label_map.get(states('sensor.zehnder_luftungsstufe _preset')|int(-1), 'Stufe 1') }}"
        condition:
        - condition: template
        value_template: >
        {{ states('input_select.zehnder_preset') != label }}
        action:
        - service: input_select.select_option
        target:
        entity_id: input_select.zehnder_preset
        data:
        option: "{{ label }}"

        - id: zehnder_preset_sync_on_start
        alias: "Zehnder Preset: Sync beim Start"
        trigger:
        - platform: homeassistant
        event: start
        action:
        - delay: "00:00:10"
        - service: input_select.select_option
        target:
        entity_id: input_select.zehnder_preset
        data:
        option: >
        {% set v = states('sensor.zehnder_luftungsstufe_preset')|int( 1) %}
        {% if v == 0 %}Abwesend{% elif v == 1 %}Stufe 1{% elif v == 2 %}Stufe 2{% else %}Stufe 3{% endif %}

        Kommentar


          #5
          Hi,

          danke für die Info. Wo muss ich diesen Code integrieren?

          Kommentar

          Lädt...
          X