Ankündigung

Einklappen

Serverwartung 21.2.



Am 21.2. im Laufe des späten Abends wird eine Serverwartung durchgeführt. Das Forum ist dadurch für gut zwei Stunden nicht erreichbar.
Es wird eine Wartungsseite geschaltet.

Mehr anzeigen
Weniger anzeigen

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