Ankündigung

Einklappen
Keine Ankündigung bisher.

Integration Drexel und Weiss x²A9

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

    Integration Drexel und Weiss x²A9

    Ich beschreibe hier den Weg wie ich meine Wärmepumpe (Smarterm A9) und Lüftung (Exos x²) unter Verwendung eines Modbus RTU/TCP Gateways (Waveshare ‎RS232 485 422 TO POE ETH B) in meine Home Assistant (HA) Instanz integrieren konnte.

    Voraussetzungen:
    Einstellungen am Touchdisplay von D&W:
    Betriebsparameter LU (D&W ID130)
    • Betriebsart: Serial Interface --> Modbus (RTU)
    • Schnittstelle seriell --> RS485
    • RS485 Endtermination --> Ein
    • Parität Serielle Schnittstelle --> keine Parität
    • Baudrate: Serial Interface --> 19200 baud
    • Modbus Adresse --> 2
    Betriebsparameter WP (D&W ID140)
    • Betriebsart: Serial Interface --> Modbus (RTU)
    • Schnittstelle seriell --> RS232 (vermutlich ist diese Einstellung ohnehin unwirksam)
    • Parität Serielle Schnittstelle --> keine Parität (vermutlich ist diese Einstellung ohnehin unwirksam)
    • Baudrate: Serial Interface --> 19200 baud (vermutlich ist diese Einstellung ohnehin unwirksam)
    • Modbus Adresse --> 1

    Gateway konfigurieren:​
    • Gateway an deinen PoE-Switch anschließen. Alternativ kannst du auch ein externes Netzteil verwenden.
    • Software „VirCom“ von der Herstellerhomepage herunterladen und starten:
    • ​​
    • Das Gateway sollte nach einem Klick auf „Device“ aufgelistet sein. Falls nicht, versuche „Auto Search“.
    • „Edit Device“ klicken.
    • Im Bereich „Network“ empfehle ich „IP Mode --> Static“ um dem Gateway eine fixe IP zu verpassen. Das hängt jedoch von deinen bevorzugten Netzwerkeinstellungen ab. Wichtig ist „Port: 502“ und „Work Mode: TCP Server“. Weitere Einstellungen wie „IP Adress; Net Mask und Gateway sollten soweit klar sein.
    • Im Bereich „Serial“ sind noch „Baud Rate: 19200; Data Bits: 8; Parity: None; Stop Bits: 1 und Flow Control: None einzustellen.
    • Im Bereich „Advanced Settings“ sollte noch dein DNS Server definiert werden und GANZ WICHTIG „Transfer Protocol: Modbus_TCP Protocol“
    • Danach noch in den „More Advanced Settings …“ im Bereich „RS485 Multi-Host Support Settings“ den „Modbus Gateway Type: Simple Modbus TCP to RTU“ einstellen.
    • Zum Schluss noch speichern „Save As Default“ und „Restart Dev“ klicken.

    Verkabelung an der Hauptplatine des Exos:
    • Pinbelegung (von oben nach unten)
    | RS485 - |
    | RS485 + |
    | GND |
    • ​Das Twisted-Pair Kabel (wichtig für Modbus, z.B. Cat5) kannst du im oberen, hinteren Bereich der Lüftung nach außen z.B. zu deinem Schaltschrank führen.

    Home Assistant konfigurieren:
    • Anlegen einer neuen Datei „modbus.yaml“
    • In der „configuration.yaml“ die Zeile „modbus: !include modbus.yaml“ einfügen.
    • Header der modbus.yaml
    Code:
    - name: modbus_gateway
      type: tcp
      host: 192.168.1.254
      port: 502
      message_wait_milliseconds: 100
      delay: 1
    ​
    Grundlegende Infos zur Entitäten-Konfiguration
    • ​D&W Geräte --> data_type: int32 (immer!)
    • Register lesen --> input_type: input
    • Register schreiben --> input_type: holding
    • Nachkommstellen aus der D&W Registertabelle müssen in HA bei „scale“ zusätzlich berücksichtigt werden: z.B. Divisor: 10; Komma: 2 --> scale: 0.001; precision: 2
    ​Beispiel Entität: Brauchwasser Temperatur oben
    Code:
    sensors:
      - name: wp_temp_speicher_oben
          unique_id: wp_temp_speicher_oben
          slave: 1
          data_type: int32
          address: 212
          input_type: input
          scale: 0.001
          precision: 1
          unit_of_measurement: °C
    ​
    Da D&W Geräte nur den Datentyp INT32 unterstützen ist es nicht möglich „Binary Sensors“, z.B. für „Anforderung Brauchwasser --> Vorhanden/Nicht vorhanden“ in der Modbus YAML zu nutzen.
    Es klappt jedoch über den Umweg eines Template: Dazu in der configuration.yaml den Eintrag "template: !include template_sensors.yaml“ einfügen und eine neue Datei „template_sensors.yaml“ anlegen.
    In dieser Datei kann z.B. folgendes stehen:
    Code:
    - binary_sensor:
        - name: "wp_anforderung_brauchwasser_binary"
          state: >
            {{ (states('sensor.wp_anforderung_brauchwasser') | int(0) // (2 ** 0)) % 2 == 1 }}
    ​
    ​
    Damit können z.B. im Dashboard die Zustände "Ein" und "Aus" angezeigt werden.

    Ähnlich klappt es auch mit der Anzeige z.B. von "Status Wärmepumpe". Dazu folgendes in der "template_sensors.yaml“ einfügen:
    Code:
    - sensor:
        - name: wp_status_waermepumpe_text
          state: >
            {% set mapping = {
              
              0: "Wiedereinschaltsperre",
              1: "Wärmepumpe aus",
              2: "Vorlaufzeit Solepumpe",
              3: "Vorlaufzeit Ventilatoren",
              4: "Öffnen Heißgasventil",
              5: "Öffnen Flüssiggasventil",
              6: "Start Kompressor",
              7: "Mindestlaufzeit Wärmepumpe",
              8: "Wärmepumpe ein",
              9: "Kältemittel absaugen",
              10: "Beim Abtauen Absaugen",
              11: "Abtauen ein",
              12: "Nach Abtauen abtropfen",
              13: "Pufferentladung",
              14: "Abtaumodus Definieren",
              15: "Abtauen Ventilatorlaufzeit",
              16: "Kühlen",
              17: "Ventilator Nachlaufzeit",
              18: "UP NT Vorlaufzeit",
              19: "Abtauen warten SEC",
              20: "Abtauen nur mit Ventilator",
              21: "Abtauen Stopp"
    
            } %}
            {{ mapping.get(states('sensor.wp_status_waermepumpe') | int, "Unbekannter Status") }}
          icon: mdi:heat-pump​​

    Beispiel Dashboard
    image.png

    ​Bitte gerne um deine Kommentare :-)
    Zuletzt geändert von martin3171; 26.12.2024, 18:00. Grund: Fehler ausgebessert (UINT32 --> INT32)
    lg Martin
Lädt...
X